{"version":3,"file":"static/js/main.029ae2aa.js","mappings":"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","sources":["../node_modules/moment/moment.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-ga4/dist/format.js","../node_modules/react-ga4/dist/ga4.js","../node_modules/react-ga4/dist/gtag.js","../node_modules/react-ga4/dist/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","reportWebVitals.js","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-router/index.ts","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","components/breadcrumbs/index.js","layout/index.js","components/accordion/index.js","components/checkbox/index.js","../node_modules/idb/build/index.js","services/apiCourseProviders.js","services/apiCourses.js","services/apiCourseProviderStorage.js","pages/courses/index.js","../node_modules/tslib/tslib.es6.mjs","../node_modules/rxjs/src/internal/util/isFunction.ts","../node_modules/rxjs/src/internal/util/createErrorClass.ts","../node_modules/rxjs/src/internal/util/UnsubscriptionError.ts","../node_modules/rxjs/src/internal/util/arrRemove.ts","../node_modules/rxjs/src/internal/Subscription.ts","../node_modules/rxjs/src/internal/config.ts","../node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts","../node_modules/rxjs/src/internal/util/noop.ts","../node_modules/rxjs/src/internal/NotificationFactories.ts","../node_modules/rxjs/src/internal/util/errorContext.ts","../node_modules/rxjs/src/internal/Subscriber.ts","../node_modules/rxjs/src/internal/util/reportUnhandledError.ts","../node_modules/rxjs/src/internal/symbol/observable.ts","../node_modules/rxjs/src/internal/util/identity.ts","../node_modules/rxjs/src/internal/util/pipe.ts","../node_modules/rxjs/src/internal/Observable.ts","../node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts","../node_modules/rxjs/src/internal/Subject.ts","services/rxjsStoreCourseName.js","../node_modules/rxjs/src/internal/BehaviorSubject.ts","pages/course/index.js","index.js"],"sourcesContent":["//! moment.js\n//! version : 2.29.4\n//! authors : Tim Wood, Iskren Chernev, Moment.js contributors\n//! license : MIT\n//! momentjs.com\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks() {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return (\n input != null &&\n Object.prototype.toString.call(input) === '[object Object]'\n );\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return Object.getOwnPropertyNames(obj).length === 0;\n } else {\n var k;\n for (k in obj) {\n if (hasOwnProp(obj, k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function map(arr, fn) {\n var res = [],\n i,\n arrLen = arr.length;\n for (i = 0; i < arrLen; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty: false,\n unusedTokens: [],\n unusedInput: [],\n overflow: -2,\n charsLeftOver: 0,\n nullInput: false,\n invalidEra: null,\n invalidMonth: null,\n invalidFormat: false,\n userInvalidated: false,\n iso: false,\n parsedDateParts: [],\n era: null,\n meridiem: null,\n rfc2822: false,\n weekdayMismatch: false,\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this),\n len = t.length >>> 0,\n i;\n\n for (i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m),\n parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n }),\n isNowValid =\n !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidEra &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid =\n isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n } else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid(flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n } else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function copyConfig(to, from) {\n var i,\n prop,\n val,\n momentPropertiesLen = momentProperties.length;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentPropertiesLen > 0) {\n for (i = 0; i < momentPropertiesLen; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function warn(msg) {\n if (\n hooks.suppressDeprecationWarnings === false &&\n typeof console !== 'undefined' &&\n console.warn\n ) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [],\n arg,\n i,\n key,\n argLen = arguments.length;\n for (i = 0; i < argLen; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (key in arguments[0]) {\n if (hasOwnProp(arguments[0], key)) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(\n msg +\n '\\nArguments: ' +\n Array.prototype.slice.call(args).join('') +\n '\\n' +\n new Error().stack\n );\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function set(config) {\n var prop, i;\n for (i in config) {\n if (hasOwnProp(config, i)) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' +\n /\\d{1,2}/.source\n );\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig),\n prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (\n hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])\n ) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i,\n res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay: '[Today at] LT',\n nextDay: '[Tomorrow at] LT',\n nextWeek: 'dddd [at] LT',\n lastDay: '[Yesterday at] LT',\n lastWeek: '[Last] dddd [at] LT',\n sameElse: 'L',\n };\n\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (\n (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) +\n absNumber\n );\n }\n\n var formattingTokens =\n /(\\[[^\\[]*\\])|(\\\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,\n localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g,\n formatFunctions = {},\n formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken(token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(\n func.apply(this, arguments),\n token\n );\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens),\n i,\n length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '',\n i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i])\n ? array[i].call(mom, format)\n : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] =\n formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(\n localFormattingTokens,\n replaceLongDateFormatTokens\n );\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var defaultLongDateFormat = {\n LTS: 'h:mm:ss A',\n LT: 'h:mm A',\n L: 'MM/DD/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n };\n\n function longDateFormat(key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper\n .match(formattingTokens)\n .map(function (tok) {\n if (\n tok === 'MMMM' ||\n tok === 'MM' ||\n tok === 'DD' ||\n tok === 'dddd'\n ) {\n return tok.slice(1);\n }\n return tok;\n })\n .join('');\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future: 'in %s',\n past: '%s ago',\n s: 'a few seconds',\n ss: '%d seconds',\n m: 'a minute',\n mm: '%d minutes',\n h: 'an hour',\n hh: '%d hours',\n d: 'a day',\n dd: '%d days',\n w: 'a week',\n ww: '%d weeks',\n M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n };\n\n function relativeTime(number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return isFunction(output)\n ? output(number, withoutSuffix, string, isFuture)\n : output.replace(/%d/i, number);\n }\n\n function pastFuture(diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [],\n u;\n for (u in unitsObj) {\n if (hasOwnProp(unitsObj, u)) {\n units.push({ unit: u, priority: priorities[u] });\n }\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function absFloor(number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n function makeGetSet(unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function set$1(mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (\n unit === 'FullYear' &&\n isLeapYear(mom.year()) &&\n mom.month() === 1 &&\n mom.date() === 29\n ) {\n value = toInt(value);\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](\n value,\n mom.month(),\n daysInMonth(value, mom.month())\n );\n } else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function stringSet(units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units),\n i,\n prioritizedLen = prioritized.length;\n for (i = 0; i < prioritizedLen; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n var match1 = /\\d/, // 0 - 9\n match2 = /\\d\\d/, // 00 - 99\n match3 = /\\d{3}/, // 000 - 999\n match4 = /\\d{4}/, // 0000 - 9999\n match6 = /[+-]?\\d{6}/, // -999999 - 999999\n match1to2 = /\\d\\d?/, // 0 - 99\n match3to4 = /\\d\\d\\d\\d?/, // 999 - 9999\n match5to6 = /\\d\\d\\d\\d\\d\\d?/, // 99999 - 999999\n match1to3 = /\\d{1,3}/, // 0 - 999\n match1to4 = /\\d{1,4}/, // 0 - 9999\n match1to6 = /[+-]?\\d{1,6}/, // -999999 - 999999\n matchUnsigned = /\\d+/, // 0 - inf\n matchSigned = /[+-]?\\d+/, // -inf - inf\n matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi, // +00:00 -00:00 +0000 -0000 or Z\n matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi, // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/, // 123456789 123456789.123\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n matchWord =\n /[0-9]{0,256}['a-z\\u00A0-\\u05FF\\u0700-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFF07\\uFF10-\\uFFEF]{1,256}|[\\u0600-\\u06FF\\/]{1,256}(\\s*?[\\u0600-\\u06FF]{1,256}){1,2}/i,\n regexes;\n\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken(token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(\n s\n .replace('\\\\', '')\n .replace(\n /\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g,\n function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }\n )\n );\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken(token, callback) {\n var i,\n func = callback,\n tokenLen;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n tokenLen = token.length;\n for (i = 0; i < tokenLen; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken(token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0,\n MONTH = 1,\n DATE = 2,\n HOUR = 3,\n MINUTE = 4,\n SECOND = 5,\n MILLISECOND = 6,\n WEEK = 7,\n WEEKDAY = 8;\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1\n ? isLeapYear(year)\n ? 29\n : 28\n : 31 - ((modMonth % 7) % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var defaultLocaleMonths =\n 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n defaultLocaleMonthsShort =\n 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/,\n defaultMonthsShortRegex = matchWord,\n defaultMonthsRegex = matchWord;\n\n function localeMonths(m, format) {\n if (!m) {\n return isArray(this._months)\n ? this._months\n : this._months['standalone'];\n }\n return isArray(this._months)\n ? this._months[m.month()]\n : this._months[\n (this._months.isFormat || MONTHS_IN_FORMAT).test(format)\n ? 'format'\n : 'standalone'\n ][m.month()];\n }\n\n function localeMonthsShort(m, format) {\n if (!m) {\n return isArray(this._monthsShort)\n ? this._monthsShort\n : this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort)\n ? this._monthsShort[m.month()]\n : this._monthsShort[\n MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'\n ][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i,\n ii,\n mom,\n llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse(monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp(\n '^' + this.months(mom, '').replace('.', '') + '$',\n 'i'\n );\n this._shortMonthsParse[i] = new RegExp(\n '^' + this.monthsShort(mom, '').replace('.', '') + '$',\n 'i'\n );\n }\n if (!strict && !this._monthsParse[i]) {\n regex =\n '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'MMMM' &&\n this._longMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'MMM' &&\n this._shortMonthsParse[i].test(monthName)\n ) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth(mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth(value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function monthsShortRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict\n ? this._monthsShortStrictRegex\n : this._monthsShortRegex;\n }\n }\n\n function monthsRegex(isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict\n ? this._monthsStrictRegex\n : this._monthsRegex;\n }\n }\n\n function computeMonthsParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._monthsShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function createDate(y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date;\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n date = new Date(y + 400, m, d, h, M, s, ms);\n if (isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n } else {\n date = new Date(y, m, d, h, M, s, ms);\n }\n\n return date;\n }\n\n function createUTCDate(y) {\n var date, args;\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n args = Array.prototype.slice.call(arguments);\n // preserve leap years using a full 400 year cycle, then reset\n args[0] = y + 400;\n date = new Date(Date.UTC.apply(null, args));\n if (isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n } else {\n date = new Date(Date.UTC.apply(null, arguments));\n }\n\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear,\n resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear,\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek,\n resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear,\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(\n ['w', 'ww', 'W', 'WW'],\n function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n }\n );\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 6th is the first week of the year.\n };\n\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek(input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var defaultLocaleWeekdays =\n 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_'),\n defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n defaultWeekdaysRegex = matchWord,\n defaultWeekdaysShortRegex = matchWord,\n defaultWeekdaysMinRegex = matchWord;\n\n function localeWeekdays(m, format) {\n var weekdays = isArray(this._weekdays)\n ? this._weekdays\n : this._weekdays[\n m && m !== true && this._weekdays.isFormat.test(format)\n ? 'format'\n : 'standalone'\n ];\n return m === true\n ? shiftWeekdays(weekdays, this._week.dow)\n : m\n ? weekdays[m.day()]\n : weekdays;\n }\n\n function localeWeekdaysShort(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysShort, this._week.dow)\n : m\n ? this._weekdaysShort[m.day()]\n : this._weekdaysShort;\n }\n\n function localeWeekdaysMin(m) {\n return m === true\n ? shiftWeekdays(this._weekdaysMin, this._week.dow)\n : m\n ? this._weekdaysMin[m.day()]\n : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i,\n ii,\n mom,\n llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(\n mom,\n ''\n ).toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(\n mom,\n ''\n ).toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse(weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp(\n '^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._shortWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n this._minWeekdaysParse[i] = new RegExp(\n '^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$',\n 'i'\n );\n }\n if (!this._weekdaysParse[i]) {\n regex =\n '^' +\n this.weekdays(mom, '') +\n '|^' +\n this.weekdaysShort(mom, '') +\n '|^' +\n this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (\n strict &&\n format === 'dddd' &&\n this._fullWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'ddd' &&\n this._shortWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (\n strict &&\n format === 'dd' &&\n this._minWeekdaysParse[i].test(weekdayName)\n ) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek(input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n function weekdaysRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict\n ? this._weekdaysStrictRegex\n : this._weekdaysRegex;\n }\n }\n\n function weekdaysShortRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict\n ? this._weekdaysShortStrictRegex\n : this._weekdaysShortRegex;\n }\n }\n\n function weekdaysMinRegex(isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict\n ? this._weekdaysMinStrictRegex\n : this._weekdaysMinRegex;\n }\n }\n\n function computeWeekdaysParse() {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [],\n shortPieces = [],\n longPieces = [],\n mixedPieces = [],\n i,\n mom,\n minp,\n shortp,\n longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = regexEscape(this.weekdaysMin(mom, ''));\n shortp = regexEscape(this.weekdaysShort(mom, ''));\n longp = regexEscape(this.weekdays(mom, ''));\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp(\n '^(' + longPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysShortStrictRegex = new RegExp(\n '^(' + shortPieces.join('|') + ')',\n 'i'\n );\n this._weekdaysMinStrictRegex = new RegExp(\n '^(' + minPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function meridiem(token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(\n this.hours(),\n this.minutes(),\n lowercase\n );\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4,\n pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM(input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return (input + '').toLowerCase().charAt(0) === 'p';\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i,\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n getSetHour = makeGetSet('Hours', true);\n\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse,\n };\n\n // internal storage for locale config files\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function commonPrefix(arr1, arr2) {\n var i,\n minl = Math.min(arr1.length, arr2.length);\n for (i = 0; i < minl; i += 1) {\n if (arr1[i] !== arr2[i]) {\n return i;\n }\n }\n return minl;\n }\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0,\n j,\n next,\n locale,\n split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (\n next &&\n next.length >= j &&\n commonPrefix(split, next) >= j - 1\n ) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function isLocaleNameSane(name) {\n // Prevent names that look like filesystem paths, i.e contain '/' or '\\'\n return name.match('^[^/\\\\\\\\]*$') != null;\n }\n\n function loadLocale(name) {\n var oldLocale = null,\n aliasedRequire;\n // TODO: Find a better way to register and load all the locales in Node\n if (\n locales[name] === undefined &&\n typeof module !== 'undefined' &&\n module &&\n module.exports &&\n isLocaleNameSane(name)\n ) {\n try {\n oldLocale = globalLocale._abbr;\n aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {\n // mark as not found to avoid repeating expensive file require call causing high CPU\n // when trying to find en-US, en_US, en-us for every format call\n locales[name] = null; // null means not found\n }\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale(key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n } else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n } else {\n if (typeof console !== 'undefined' && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn(\n 'Locale ' + key + ' not found. Did you forget to load it?'\n );\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale(name, config) {\n if (config !== null) {\n var locale,\n parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple(\n 'defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.'\n );\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config,\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale,\n tmpLocale,\n parentConfig = baseConfig;\n\n if (locales[name] != null && locales[name].parentLocale != null) {\n // Update existing child locale in-place to avoid memory-leaks\n locales[name].set(mergeConfigs(locales[name]._config, config));\n } else {\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n if (tmpLocale == null) {\n // updateLocale is called for creating a new locale\n // Set abbr so it will have a name (getters return\n // undefined otherwise).\n config.abbr = name;\n }\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n }\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n if (name === getSetGlobalLocale()) {\n getSetGlobalLocale(name);\n }\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale(key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow(m) {\n var overflow,\n a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11\n ? MONTH\n : a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH])\n ? DATE\n : a[HOUR] < 0 ||\n a[HOUR] > 24 ||\n (a[HOUR] === 24 &&\n (a[MINUTE] !== 0 ||\n a[SECOND] !== 0 ||\n a[MILLISECOND] !== 0))\n ? HOUR\n : a[MINUTE] < 0 || a[MINUTE] > 59\n ? MINUTE\n : a[SECOND] < 0 || a[SECOND] > 59\n ? SECOND\n : a[MILLISECOND] < 0 || a[MILLISECOND] > 999\n ? MILLISECOND\n : -1;\n\n if (\n getParsingFlags(m)._overflowDayOfYear &&\n (overflow < YEAR || overflow > DATE)\n ) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})-(?:\\d\\d-\\d\\d|W\\d\\d-\\d|W\\d\\d|\\d\\d\\d|\\d\\d))(?:(T| )(\\d\\d(?::\\d\\d(?::\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n basicIsoRegex =\n /^\\s*((?:[+-]\\d{6}|\\d{4})(?:\\d\\d\\d\\d|W\\d\\d\\d|W\\d\\d|\\d\\d\\d|\\d\\d|))(?:(T| )(\\d\\d(?:\\d\\d(?:\\d\\d(?:[.,]\\d+)?)?)?)([+-]\\d\\d(?::?\\d\\d)?|\\s*Z)?)?$/,\n tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/,\n isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/],\n ['YYYYMM', /\\d{6}/, false],\n ['YYYY', /\\d{4}/, false],\n ],\n // iso time formats and regexes\n isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/],\n ],\n aspNetJsonRegex = /^\\/?Date\\((-?\\d+)/i,\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n rfc2822 =\n /^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\\s)?(\\d{1,2})\\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\\s(\\d{2,4})\\s(\\d\\d):(\\d\\d)(?::(\\d\\d))?\\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\\d{4}))$/,\n obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60,\n };\n\n // date from iso format\n function configFromISO(config) {\n var i,\n l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime,\n dateFormat,\n timeFormat,\n tzFormat,\n isoDatesLen = isoDates.length,\n isoTimesLen = isoTimes.length;\n\n if (match) {\n getParsingFlags(config).iso = true;\n for (i = 0, l = isoDatesLen; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimesLen; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n function extractFromRFC2822Strings(\n yearStr,\n monthStr,\n dayStr,\n hourStr,\n minuteStr,\n secondStr\n ) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10),\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s\n .replace(/\\([^()]*\\)|[\\n\\t]/g, ' ')\n .replace(/(\\s\\s+)/g, ' ')\n .replace(/^\\s\\s*/, '')\n .replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an independent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(\n parsedInput[0],\n parsedInput[1],\n parsedInput[2]\n ).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10),\n m = hm % 100,\n h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i)),\n parsedArray;\n if (match) {\n parsedArray = extractFromRFC2822Strings(\n match[4],\n match[3],\n match[2],\n match[5],\n match[6],\n match[7]\n );\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from 1) ASP.NET, 2) ISO, 3) RFC 2822 formats, or 4) optional fallback if parsing isn't strict\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n if (config._strict) {\n config._isValid = false;\n } else {\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [\n nowValue.getUTCFullYear(),\n nowValue.getUTCMonth(),\n nowValue.getUTCDate(),\n ];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray(config) {\n var i,\n date,\n input = [],\n currentDate,\n expectedWeekday,\n yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (\n config._dayOfYear > daysInYear(yearToUse) ||\n config._dayOfYear === 0\n ) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] =\n config._a[i] == null ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (\n config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0\n ) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(\n null,\n input\n );\n expectedWeekday = config._useUTC\n ? config._d.getUTCDay()\n : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (\n config._w &&\n typeof config._w.d !== 'undefined' &&\n config._w.d !== expectedWeekday\n ) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow, curWeek;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(\n w.GG,\n config._a[YEAR],\n weekOfYear(createLocal(), 1, 4).year\n );\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from beginning of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to beginning of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i,\n parsedInput,\n tokens,\n token,\n skipped,\n stringLength = string.length,\n totalParsedInputLength = 0,\n era,\n tokenLen;\n\n tokens =\n expandFormat(config._f, config._locale).match(formattingTokens) || [];\n tokenLen = tokens.length;\n for (i = 0; i < tokenLen; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) ||\n [])[0];\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(\n string.indexOf(parsedInput) + parsedInput.length\n );\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n } else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n } else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver =\n stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (\n config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0\n ) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(\n config._locale,\n config._a[HOUR],\n config._meridiem\n );\n\n // handle era\n era = getParsingFlags(config).era;\n if (era !== null) {\n config._a[YEAR] = config._locale.erasConvertYear(era, config._a[YEAR]);\n }\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n function meridiemFixWrap(locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n scoreToBeat,\n i,\n currentScore,\n validFormatFound,\n bestFormatIsValid = false,\n configfLen = config._f.length;\n\n if (configfLen === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < configfLen; i++) {\n currentScore = 0;\n validFormatFound = false;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (isValid(tempConfig)) {\n validFormatFound = true;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (!bestFormatIsValid) {\n if (\n scoreToBeat == null ||\n currentScore < scoreToBeat ||\n validFormatFound\n ) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n if (validFormatFound) {\n bestFormatIsValid = true;\n }\n }\n } else {\n if (currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i),\n dayOrDate = i.day === undefined ? i.date : i.day;\n config._a = map(\n [i.year, i.month, dayOrDate, i.hour, i.minute, i.second, i.millisecond],\n function (obj) {\n return obj && parseInt(obj, 10);\n }\n );\n\n configFromArray(config);\n }\n\n function createFromConfig(config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig(config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({ nullInput: true });\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC(input, format, locale, strict, isUTC) {\n var c = {};\n\n if (format === true || format === false) {\n strict = format;\n format = undefined;\n }\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if (\n (isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)\n ) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n ),\n prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function isDurationValid(m) {\n var key,\n unitHasDecimal = false,\n i,\n orderLen = ordering.length;\n for (key in m) {\n if (\n hasOwnProp(m, key) &&\n !(\n indexOf.call(ordering, key) !== -1 &&\n (m[key] == null || !isNaN(m[key]))\n )\n ) {\n return false;\n }\n }\n\n for (i = 0; i < orderLen; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration(duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || normalizedInput.isoWeek || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds =\n +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days + weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months + quarters * 3 + years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function absRound(number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if (\n (dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))\n ) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n // FORMATTING\n\n function offset(token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset(),\n sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return (\n sign +\n zeroFill(~~(offset / 60), 2) +\n separator +\n zeroFill(~~offset % 60, 2)\n );\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher),\n chunk,\n parts,\n minutes;\n\n if (matches === null) {\n return null;\n }\n\n chunk = matches[matches.length - 1] || [];\n parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ? 0 : parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff =\n (isMoment(input) || isDate(input)\n ? input.valueOf()\n : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset(m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset());\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset(input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(\n this,\n createDuration(input - offset, 'm'),\n 1,\n false\n );\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone(input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal(keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset() {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n } else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset(input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted() {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {},\n other;\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted =\n this.isValid() && compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(-|\\+)?(?:(\\d*)[. ])?(\\d+):(\\d+)(?::(\\d+)(\\.\\d*)?)?$/,\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n isoRegex =\n /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration(input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms: input._milliseconds,\n d: input._days,\n M: input._months,\n };\n } else if (isNumber(input) || !isNaN(+input)) {\n duration = {};\n if (key) {\n duration[key] = +input;\n } else {\n duration.milliseconds = +input;\n }\n } else if ((match = aspNetRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: 0,\n d: toInt(match[DATE]) * sign,\n h: toInt(match[HOUR]) * sign,\n m: toInt(match[MINUTE]) * sign,\n s: toInt(match[SECOND]) * sign,\n ms: toInt(absRound(match[MILLISECOND] * 1000)) * sign, // the millisecond decimal point is included in the match\n };\n } else if ((match = isoRegex.exec(input))) {\n sign = match[1] === '-' ? -1 : 1;\n duration = {\n y: parseIso(match[2], sign),\n M: parseIso(match[3], sign),\n w: parseIso(match[4], sign),\n d: parseIso(match[5], sign),\n h: parseIso(match[6], sign),\n m: parseIso(match[7], sign),\n s: parseIso(match[8], sign),\n };\n } else if (duration == null) {\n // checks for null or undefined\n duration = {};\n } else if (\n typeof duration === 'object' &&\n ('from' in duration || 'to' in duration)\n ) {\n diffRes = momentsDifference(\n createLocal(duration.from),\n createLocal(duration.to)\n );\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n if (isDuration(input) && hasOwnProp(input, '_isValid')) {\n ret._isValid = input._isValid;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso(inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {};\n\n res.months =\n other.month() - base.month() + (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +base.clone().add(res.months, 'M');\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return { milliseconds: 0, months: 0 };\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(\n name,\n 'moment().' +\n name +\n '(period, number) is deprecated. Please use moment().' +\n name +\n '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.'\n );\n tmp = val;\n val = period;\n period = tmp;\n }\n\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract(mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function isString(input) {\n return typeof input === 'string' || input instanceof String;\n }\n\n // type MomentInput = Moment | Date | string | number | (number | string)[] | MomentInputObject | void; // null | undefined\n function isMomentInput(input) {\n return (\n isMoment(input) ||\n isDate(input) ||\n isString(input) ||\n isNumber(input) ||\n isNumberOrStringArray(input) ||\n isMomentInputObject(input) ||\n input === null ||\n input === undefined\n );\n }\n\n function isMomentInputObject(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'years',\n 'year',\n 'y',\n 'months',\n 'month',\n 'M',\n 'days',\n 'day',\n 'd',\n 'dates',\n 'date',\n 'D',\n 'hours',\n 'hour',\n 'h',\n 'minutes',\n 'minute',\n 'm',\n 'seconds',\n 'second',\n 's',\n 'milliseconds',\n 'millisecond',\n 'ms',\n ],\n i,\n property,\n propertyLen = properties.length;\n\n for (i = 0; i < propertyLen; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function isNumberOrStringArray(input) {\n var arrayTest = isArray(input),\n dataTypeTest = false;\n if (arrayTest) {\n dataTypeTest =\n input.filter(function (item) {\n return !isNumber(item) && isString(input);\n }).length === 0;\n }\n return arrayTest && dataTypeTest;\n }\n\n function isCalendarSpec(input) {\n var objectTest = isObject(input) && !isObjectEmpty(input),\n propertyTest = false,\n properties = [\n 'sameDay',\n 'nextDay',\n 'lastDay',\n 'nextWeek',\n 'lastWeek',\n 'sameElse',\n ],\n i,\n property;\n\n for (i = 0; i < properties.length; i += 1) {\n property = properties[i];\n propertyTest = propertyTest || hasOwnProp(input, property);\n }\n\n return objectTest && propertyTest;\n }\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6\n ? 'sameElse'\n : diff < -1\n ? 'lastWeek'\n : diff < 0\n ? 'lastDay'\n : diff < 1\n ? 'sameDay'\n : diff < 2\n ? 'nextDay'\n : diff < 7\n ? 'nextWeek'\n : 'sameElse';\n }\n\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else if (isMomentInput(arguments[0])) {\n time = arguments[0];\n formats = undefined;\n } else if (isCalendarSpec(arguments[0])) {\n formats = arguments[0];\n time = undefined;\n }\n }\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse',\n output =\n formats &&\n (isFunction(formats[format])\n ? formats[format].call(this, now)\n : formats[format]);\n\n return this.format(\n output || this.localeData().calendar(format, this, createLocal(now))\n );\n }\n\n function clone() {\n return new Moment(this);\n }\n\n function isAfter(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween(from, to, units, inclusivity) {\n var localFrom = isMoment(from) ? from : createLocal(from),\n localTo = isMoment(to) ? to : createLocal(to);\n if (!(this.isValid() && localFrom.isValid() && localTo.isValid())) {\n return false;\n }\n inclusivity = inclusivity || '()';\n return (\n (inclusivity[0] === '('\n ? this.isAfter(localFrom, units)\n : !this.isBefore(localFrom, units)) &&\n (inclusivity[1] === ')'\n ? this.isBefore(localTo, units)\n : !this.isAfter(localTo, units))\n );\n }\n\n function isSame(input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units) || 'millisecond';\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return (\n this.clone().startOf(units).valueOf() <= inputMs &&\n inputMs <= this.clone().endOf(units).valueOf()\n );\n }\n }\n\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function diff(input, units, asFloat) {\n var that, zoneDelta, output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year':\n output = monthDiff(this, that) / 12;\n break;\n case 'month':\n output = monthDiff(this, that);\n break;\n case 'quarter':\n output = monthDiff(this, that) / 3;\n break;\n case 'second':\n output = (this - that) / 1e3;\n break; // 1000\n case 'minute':\n output = (this - that) / 6e4;\n break; // 1000 * 60\n case 'hour':\n output = (this - that) / 36e5;\n break; // 1000 * 60 * 60\n case 'day':\n output = (this - that - zoneDelta) / 864e5;\n break; // 1000 * 60 * 60 * 24, negate dst\n case 'week':\n output = (this - that - zoneDelta) / 6048e5;\n break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default:\n output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff(a, b) {\n if (a.date() < b.date()) {\n // end-of-month calculations work correct when the start month has more\n // days than the end month.\n return -monthDiff(b, a);\n }\n // difference in months\n var wholeMonthDiff = (b.year() - a.year()) * 12 + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2,\n adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true,\n m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(\n m,\n utc\n ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]'\n : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000)\n .toISOString()\n .replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(\n m,\n utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ'\n );\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect() {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment',\n zone = '',\n prefix,\n year,\n datetime,\n suffix;\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n prefix = '[' + func + '(\"]';\n year = 0 <= this.year() && this.year() <= 9999 ? 'YYYY' : 'YYYYYY';\n datetime = '-MM-DD[T]HH:mm:ss.SSS';\n suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format(inputString) {\n if (!inputString) {\n inputString = this.isUtc()\n ? hooks.defaultFormatUtc\n : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ to: this, from: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to(time, withoutSuffix) {\n if (\n this.isValid() &&\n ((isMoment(time) && time.isValid()) || createLocal(time).isValid())\n ) {\n return createDuration({ from: this, to: time })\n .locale(this.locale())\n .humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow(withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale(key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData() {\n return this._locale;\n }\n\n var MS_PER_SECOND = 1000,\n MS_PER_MINUTE = 60 * MS_PER_SECOND,\n MS_PER_HOUR = 60 * MS_PER_MINUTE,\n MS_PER_400_YEARS = (365 * 400 + 97) * 24 * MS_PER_HOUR;\n\n // actual modulo - handles negative numbers (for dates before 1970):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function localStartOfDate(y, m, d) {\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return new Date(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return new Date(y, m, d).valueOf();\n }\n }\n\n function utcStartOfDate(y, m, d) {\n // Date.UTC remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0) {\n // preserve leap years using a full 400 year cycle, then reset\n return Date.UTC(y + 400, m, d) - MS_PER_400_YEARS;\n } else {\n return Date.UTC(y, m, d);\n }\n }\n\n function startOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year(), 0, 1);\n break;\n case 'quarter':\n time = startOfDate(\n this.year(),\n this.month() - (this.month() % 3),\n 1\n );\n break;\n case 'month':\n time = startOfDate(this.year(), this.month(), 1);\n break;\n case 'week':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday()\n );\n break;\n case 'isoWeek':\n time = startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1)\n );\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date());\n break;\n case 'hour':\n time = this._d.valueOf();\n time -= mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n );\n break;\n case 'minute':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_MINUTE);\n break;\n case 'second':\n time = this._d.valueOf();\n time -= mod$1(time, MS_PER_SECOND);\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function endOf(units) {\n var time, startOfDate;\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond' || !this.isValid()) {\n return this;\n }\n\n startOfDate = this._isUTC ? utcStartOfDate : localStartOfDate;\n\n switch (units) {\n case 'year':\n time = startOfDate(this.year() + 1, 0, 1) - 1;\n break;\n case 'quarter':\n time =\n startOfDate(\n this.year(),\n this.month() - (this.month() % 3) + 3,\n 1\n ) - 1;\n break;\n case 'month':\n time = startOfDate(this.year(), this.month() + 1, 1) - 1;\n break;\n case 'week':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - this.weekday() + 7\n ) - 1;\n break;\n case 'isoWeek':\n time =\n startOfDate(\n this.year(),\n this.month(),\n this.date() - (this.isoWeekday() - 1) + 7\n ) - 1;\n break;\n case 'day':\n case 'date':\n time = startOfDate(this.year(), this.month(), this.date() + 1) - 1;\n break;\n case 'hour':\n time = this._d.valueOf();\n time +=\n MS_PER_HOUR -\n mod$1(\n time + (this._isUTC ? 0 : this.utcOffset() * MS_PER_MINUTE),\n MS_PER_HOUR\n ) -\n 1;\n break;\n case 'minute':\n time = this._d.valueOf();\n time += MS_PER_MINUTE - mod$1(time, MS_PER_MINUTE) - 1;\n break;\n case 'second':\n time = this._d.valueOf();\n time += MS_PER_SECOND - mod$1(time, MS_PER_SECOND) - 1;\n break;\n }\n\n this._d.setTime(time);\n hooks.updateOffset(this, true);\n return this;\n }\n\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function toArray() {\n var m = this;\n return [\n m.year(),\n m.month(),\n m.date(),\n m.hour(),\n m.minute(),\n m.second(),\n m.millisecond(),\n ];\n }\n\n function toObject() {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds(),\n };\n }\n\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict,\n };\n }\n\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(\n ['N', 'NN', 'NNN', 'NNNN', 'NNNNN'],\n function (input, array, config, token) {\n var era = config._locale.erasParse(input, token, config._strict);\n if (era) {\n getParsingFlags(config).era = era;\n } else {\n getParsingFlags(config).invalidEra = input;\n }\n }\n );\n\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['yo'], function (input, array, config, token) {\n var match;\n if (config._locale._eraYearOrdinalRegex) {\n match = input.match(config._locale._eraYearOrdinalRegex);\n }\n\n if (config._locale.eraYearOrdinalParse) {\n array[YEAR] = config._locale.eraYearOrdinalParse(input, match);\n } else {\n array[YEAR] = parseInt(input, 10);\n }\n });\n\n function localeEras(m, format) {\n var i,\n l,\n date,\n eras = this._eras || getLocale('en')._eras;\n for (i = 0, l = eras.length; i < l; ++i) {\n switch (typeof eras[i].since) {\n case 'string':\n // truncate time\n date = hooks(eras[i].since).startOf('day');\n eras[i].since = date.valueOf();\n break;\n }\n\n switch (typeof eras[i].until) {\n case 'undefined':\n eras[i].until = +Infinity;\n break;\n case 'string':\n // truncate time\n date = hooks(eras[i].until).startOf('day').valueOf();\n eras[i].until = date.valueOf();\n break;\n }\n }\n return eras;\n }\n\n function localeErasParse(eraName, format, strict) {\n var i,\n l,\n eras = this.eras(),\n name,\n abbr,\n narrow;\n eraName = eraName.toUpperCase();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n name = eras[i].name.toUpperCase();\n abbr = eras[i].abbr.toUpperCase();\n narrow = eras[i].narrow.toUpperCase();\n\n if (strict) {\n switch (format) {\n case 'N':\n case 'NN':\n case 'NNN':\n if (abbr === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNN':\n if (name === eraName) {\n return eras[i];\n }\n break;\n\n case 'NNNNN':\n if (narrow === eraName) {\n return eras[i];\n }\n break;\n }\n } else if ([name, abbr, narrow].indexOf(eraName) >= 0) {\n return eras[i];\n }\n }\n }\n\n function localeErasConvertYear(era, year) {\n var dir = era.since <= era.until ? +1 : -1;\n if (year === undefined) {\n return hooks(era.since).year();\n } else {\n return hooks(era.since).year() + (year - era.offset) * dir;\n }\n }\n\n function getEraName() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].name;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].name;\n }\n }\n\n return '';\n }\n\n function getEraNarrow() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].narrow;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].narrow;\n }\n }\n\n return '';\n }\n\n function getEraAbbr() {\n var i,\n l,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (eras[i].since <= val && val <= eras[i].until) {\n return eras[i].abbr;\n }\n if (eras[i].until <= val && val <= eras[i].since) {\n return eras[i].abbr;\n }\n }\n\n return '';\n }\n\n function getEraYear() {\n var i,\n l,\n dir,\n val,\n eras = this.localeData().eras();\n for (i = 0, l = eras.length; i < l; ++i) {\n dir = eras[i].since <= eras[i].until ? +1 : -1;\n\n // truncate time\n val = this.clone().startOf('day').valueOf();\n\n if (\n (eras[i].since <= val && val <= eras[i].until) ||\n (eras[i].until <= val && val <= eras[i].since)\n ) {\n return (\n (this.year() - hooks(eras[i].since).year()) * dir +\n eras[i].offset\n );\n }\n }\n\n return this.year();\n }\n\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function computeErasParse() {\n var abbrPieces = [],\n namePieces = [],\n narrowPieces = [],\n mixedPieces = [],\n i,\n l,\n eras = this.eras();\n\n for (i = 0, l = eras.length; i < l; ++i) {\n namePieces.push(regexEscape(eras[i].name));\n abbrPieces.push(regexEscape(eras[i].abbr));\n narrowPieces.push(regexEscape(eras[i].narrow));\n\n mixedPieces.push(regexEscape(eras[i].name));\n mixedPieces.push(regexEscape(eras[i].abbr));\n mixedPieces.push(regexEscape(eras[i].narrow));\n }\n\n this._erasRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._erasNameRegex = new RegExp('^(' + namePieces.join('|') + ')', 'i');\n this._erasAbbrRegex = new RegExp('^(' + abbrPieces.join('|') + ')', 'i');\n this._erasNarrowRegex = new RegExp(\n '^(' + narrowPieces.join('|') + ')',\n 'i'\n );\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(\n ['gggg', 'ggggg', 'GGGG', 'GGGGG'],\n function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n }\n );\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy\n );\n }\n\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter(input) {\n return input == null\n ? Math.ceil((this.month() + 1) / 3)\n : this.month((input - 1) * 3 + (this.month() % 3));\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict\n ? locale._dayOfMonthOrdinalParse || locale._ordinalParse\n : locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear(input) {\n var dayOfYear =\n Math.round(\n (this.clone().startOf('day') - this.clone().startOf('year')) / 864e5\n ) + 1;\n return input == null ? dayOfYear : this.add(input - dayOfYear, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl(format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i,\n out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl(localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0,\n i,\n out = [];\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n eras: [\n {\n since: '0001-01-01',\n until: +Infinity,\n offset: 1,\n name: 'Anno Domini',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'Before Christ',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n toInt((number % 100) / 10) === 1\n ? 'th'\n : b === 1\n ? 'st'\n : b === 2\n ? 'nd'\n : b === 3\n ? 'rd'\n : 'th';\n return number + output;\n },\n });\n\n // Side effect imports\n\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function abs() {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1(duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1(input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble() {\n var milliseconds = this._milliseconds,\n days = this._days,\n months = this._months,\n data = this._data,\n seconds,\n minutes,\n hours,\n years,\n monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (\n !(\n (milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0)\n )\n ) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths(days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return (days * 4800) / 146097;\n }\n\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function as(units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days,\n months,\n milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'quarter' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n switch (units) {\n case 'month':\n return months;\n case 'quarter':\n return months / 3;\n case 'year':\n return months / 12;\n }\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week':\n return days / 7 + milliseconds / 6048e5;\n case 'day':\n return days + milliseconds / 864e5;\n case 'hour':\n return days * 24 + milliseconds / 36e5;\n case 'minute':\n return days * 1440 + milliseconds / 6e4;\n case 'second':\n return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond':\n return Math.floor(days * 864e5) + milliseconds;\n default:\n throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1() {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms'),\n asSeconds = makeAs('s'),\n asMinutes = makeAs('m'),\n asHours = makeAs('h'),\n asDays = makeAs('d'),\n asWeeks = makeAs('w'),\n asMonths = makeAs('M'),\n asQuarters = makeAs('Q'),\n asYears = makeAs('y');\n\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds'),\n seconds = makeGetter('seconds'),\n minutes = makeGetter('minutes'),\n hours = makeGetter('hours'),\n days = makeGetter('days'),\n months = makeGetter('months'),\n years = makeGetter('years');\n\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round,\n thresholds = {\n ss: 44, // a few seconds to seconds\n s: 45, // seconds to minute\n m: 45, // minutes to hour\n h: 22, // hours to day\n d: 26, // days to month/week\n w: null, // weeks to month\n M: 11, // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1(posNegDuration, withoutSuffix, thresholds, locale) {\n var duration = createDuration(posNegDuration).abs(),\n seconds = round(duration.as('s')),\n minutes = round(duration.as('m')),\n hours = round(duration.as('h')),\n days = round(duration.as('d')),\n months = round(duration.as('M')),\n weeks = round(duration.as('w')),\n years = round(duration.as('y')),\n a =\n (seconds <= thresholds.ss && ['s', seconds]) ||\n (seconds < thresholds.s && ['ss', seconds]) ||\n (minutes <= 1 && ['m']) ||\n (minutes < thresholds.m && ['mm', minutes]) ||\n (hours <= 1 && ['h']) ||\n (hours < thresholds.h && ['hh', hours]) ||\n (days <= 1 && ['d']) ||\n (days < thresholds.d && ['dd', days]);\n\n if (thresholds.w != null) {\n a =\n a ||\n (weeks <= 1 && ['w']) ||\n (weeks < thresholds.w && ['ww', weeks]);\n }\n a = a ||\n (months <= 1 && ['M']) ||\n (months < thresholds.M && ['MM', months]) ||\n (years <= 1 && ['y']) || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding(roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof roundingFunction === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold(threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize(argWithSuffix, argThresholds) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var withSuffix = false,\n th = thresholds,\n locale,\n output;\n\n if (typeof argWithSuffix === 'object') {\n argThresholds = argWithSuffix;\n argWithSuffix = false;\n }\n if (typeof argWithSuffix === 'boolean') {\n withSuffix = argWithSuffix;\n }\n if (typeof argThresholds === 'object') {\n th = Object.assign({}, thresholds, argThresholds);\n if (argThresholds.s != null && argThresholds.ss == null) {\n th.ss = argThresholds.s - 1;\n }\n }\n\n locale = this.localeData();\n output = relativeTime$1(this, !withSuffix, th, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000,\n days = abs$1(this._days),\n months = abs$1(this._months),\n minutes,\n hours,\n years,\n s,\n total = this.asSeconds(),\n totalSign,\n ymSign,\n daysSign,\n hmsSign;\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n\n totalSign = total < 0 ? '-' : '';\n ymSign = sign(this._months) !== sign(total) ? '-' : '';\n daysSign = sign(this._days) !== sign(total) ? '-' : '';\n hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return (\n totalSign +\n 'P' +\n (years ? ymSign + years + 'Y' : '') +\n (months ? ymSign + months + 'M' : '') +\n (days ? daysSign + days + 'D' : '') +\n (hours || minutes || seconds ? 'T' : '') +\n (hours ? hmsSign + hours + 'H' : '') +\n (minutes ? hmsSign + minutes + 'M' : '') +\n (seconds ? hmsSign + s + 'S' : '')\n );\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.4';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n return hooks;\n\n})));\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 0 && index + match.length !== title.length && match.search(smallWords) > -1 && title.charAt(index - 2) !== \":\" && (title.charAt(index + match.length) !== \"-\" || title.charAt(index - 1) === \"-\") && title.charAt(index - 1).search(/[^\\s-]/) < 0) {\n return match.toLowerCase();\n }\n if (match.substr(1).search(/[A-Z]|\\../) > -1) {\n return match;\n }\n return match.charAt(0).toUpperCase() + match.substr(1);\n });\n}\n\n// See if s could be an email address. We don't want to send personal data like email.\n// https://support.google.com/analytics/answer/2795983?hl=en\nfunction mightBeEmail(s) {\n // There's no point trying to validate rfc822 fully, just look for ...@...\n return typeof s === \"string\" && s.indexOf(\"@\") !== -1;\n}\nvar redacted = \"REDACTED (Potential Email Address)\";\nfunction redactEmail(string) {\n if (mightBeEmail(string)) {\n console.warn(\"This arg looks like an email address, redacting.\");\n return redacted;\n }\n return string;\n}\nfunction format() {\n var s = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"\";\n var titleCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var redactingEmail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var _str = s || \"\";\n if (titleCase) {\n _str = toTitleCase(s);\n }\n if (redactingEmail) {\n _str = redactEmail(_str);\n }\n return _str;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.GA4 = void 0;\nvar _gtag = _interopRequireDefault(require(\"./gtag\"));\nvar _format = _interopRequireDefault(require(\"./format\"));\nvar _excluded = [\"eventCategory\", \"eventAction\", \"eventLabel\", \"eventValue\", \"hitType\"],\n _excluded2 = [\"title\", \"location\"],\n _excluded3 = [\"page\", \"hitType\"];\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { \"default\": obj }; }\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }\nfunction _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return _typeof(key) === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (_typeof(input) !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (_typeof(res) !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\n/*\nLinks\nhttps://developers.google.com/gtagjs/reference/api\nhttps://developers.google.com/tag-platform/gtagjs/reference\n*/\n/**\n * @typedef GaOptions\n * @type {Object}\n * @property {boolean} [cookieUpdate=true]\n * @property {number} [cookieExpires=63072000] Default two years\n * @property {string} [cookieDomain=\"auto\"]\n * @property {string} [cookieFlags]\n * @property {string} [userId]\n * @property {string} [clientId]\n * @property {boolean} [anonymizeIp]\n * @property {string} [contentGroup1]\n * @property {string} [contentGroup2]\n * @property {string} [contentGroup3]\n * @property {string} [contentGroup4]\n * @property {string} [contentGroup5]\n * @property {boolean} [allowAdFeatures=true]\n * @property {boolean} [allowAdPersonalizationSignals]\n * @property {boolean} [nonInteraction]\n * @property {string} [page]\n */\n/**\n * @typedef UaEventOptions\n * @type {Object}\n * @property {string} action\n * @property {string} category\n * @property {string} [label]\n * @property {number} [value]\n * @property {boolean} [nonInteraction]\n * @property {('beacon'|'xhr'|'image')} [transport]\n */\n/**\n * @typedef InitOptions\n * @type {Object}\n * @property {string} trackingId\n * @property {GaOptions|any} [gaOptions]\n * @property {Object} [gtagOptions] New parameter\n */\nvar GA4 = /*#__PURE__*/function () {\n function GA4() {\n var _this = this;\n _classCallCheck(this, GA4);\n _defineProperty(this, \"reset\", function () {\n _this.isInitialized = false;\n _this._testMode = false;\n _this._currentMeasurementId;\n _this._hasLoadedGA = false;\n _this._isQueuing = false;\n _this._queueGtag = [];\n });\n _defineProperty(this, \"_gtag\", function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (!_this._testMode) {\n if (_this._isQueuing) {\n _this._queueGtag.push(args);\n } else {\n _gtag[\"default\"].apply(void 0, args);\n }\n } else {\n _this._queueGtag.push(args);\n }\n });\n _defineProperty(this, \"_loadGA\", function (GA_MEASUREMENT_ID, nonce) {\n var gtagUrl = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : \"https://www.googletagmanager.com/gtag/js\";\n if (typeof window === \"undefined\" || typeof document === \"undefined\") {\n return;\n }\n if (!_this._hasLoadedGA) {\n // Global Site Tag (gtag.js) - Google Analytics\n var script = document.createElement(\"script\");\n script.async = true;\n script.src = \"\".concat(gtagUrl, \"?id=\").concat(GA_MEASUREMENT_ID);\n if (nonce) {\n script.setAttribute(\"nonce\", nonce);\n }\n document.body.appendChild(script);\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n _this._hasLoadedGA = true;\n }\n });\n _defineProperty(this, \"_toGtagOptions\", function (gaOptions) {\n if (!gaOptions) {\n return;\n }\n var mapFields = {\n // Old https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#cookieUpdate\n // New https://developers.google.com/analytics/devguides/collection/gtagjs/cookies-user-id#cookie_update\n cookieUpdate: \"cookie_update\",\n cookieExpires: \"cookie_expires\",\n cookieDomain: \"cookie_domain\",\n cookieFlags: \"cookie_flags\",\n // must be in set method?\n userId: \"user_id\",\n clientId: \"client_id\",\n anonymizeIp: \"anonymize_ip\",\n // https://support.google.com/analytics/answer/2853546?hl=en#zippy=%2Cin-this-article\n contentGroup1: \"content_group1\",\n contentGroup2: \"content_group2\",\n contentGroup3: \"content_group3\",\n contentGroup4: \"content_group4\",\n contentGroup5: \"content_group5\",\n // https://support.google.com/analytics/answer/9050852?hl=en\n allowAdFeatures: \"allow_google_signals\",\n allowAdPersonalizationSignals: \"allow_ad_personalization_signals\",\n nonInteraction: \"non_interaction\",\n page: \"page_path\",\n hitCallback: \"event_callback\"\n };\n var gtagOptions = Object.entries(gaOptions).reduce(function (prev, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n key = _ref2[0],\n value = _ref2[1];\n if (mapFields[key]) {\n prev[mapFields[key]] = value;\n } else {\n prev[key] = value;\n }\n return prev;\n }, {});\n return gtagOptions;\n });\n _defineProperty(this, \"initialize\", function (GA_MEASUREMENT_ID) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (!GA_MEASUREMENT_ID) {\n throw new Error(\"Require GA_MEASUREMENT_ID\");\n }\n var initConfigs = typeof GA_MEASUREMENT_ID === \"string\" ? [{\n trackingId: GA_MEASUREMENT_ID\n }] : GA_MEASUREMENT_ID;\n _this._currentMeasurementId = initConfigs[0].trackingId;\n var gaOptions = options.gaOptions,\n gtagOptions = options.gtagOptions,\n nonce = options.nonce,\n _options$testMode = options.testMode,\n testMode = _options$testMode === void 0 ? false : _options$testMode,\n gtagUrl = options.gtagUrl;\n _this._testMode = testMode;\n if (!testMode) {\n _this._loadGA(_this._currentMeasurementId, nonce, gtagUrl);\n }\n if (!_this.isInitialized) {\n _this._gtag(\"js\", new Date());\n initConfigs.forEach(function (config) {\n var mergedGtagOptions = _objectSpread(_objectSpread(_objectSpread({}, _this._toGtagOptions(_objectSpread(_objectSpread({}, gaOptions), config.gaOptions))), gtagOptions), config.gtagOptions);\n if (Object.keys(mergedGtagOptions).length) {\n _this._gtag(\"config\", config.trackingId, mergedGtagOptions);\n } else {\n _this._gtag(\"config\", config.trackingId);\n }\n });\n }\n _this.isInitialized = true;\n if (!testMode) {\n var queues = _toConsumableArray(_this._queueGtag);\n _this._queueGtag = [];\n _this._isQueuing = false;\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n if (queue[0] === \"get\") {\n _this._isQueuing = true;\n }\n }\n }\n });\n _defineProperty(this, \"set\", function (fieldsObject) {\n if (!fieldsObject) {\n console.warn(\"`fieldsObject` is required in .set()\");\n return;\n }\n if (_typeof(fieldsObject) !== \"object\") {\n console.warn(\"Expected `fieldsObject` arg to be an Object\");\n return;\n }\n if (Object.keys(fieldsObject).length === 0) {\n console.warn(\"empty `fieldsObject` given to .set()\");\n }\n _this._gaCommand(\"set\", fieldsObject);\n });\n _defineProperty(this, \"_gaCommandSendEvent\", function (eventCategory, eventAction, eventLabel, eventValue, fieldsObject) {\n _this._gtag(\"event\", eventAction, _objectSpread(_objectSpread({\n event_category: eventCategory,\n event_label: eventLabel,\n value: eventValue\n }, fieldsObject && {\n non_interaction: fieldsObject.nonInteraction\n }), _this._toGtagOptions(fieldsObject)));\n });\n _defineProperty(this, \"_gaCommandSendEventParameters\", function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendEvent.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$ = args[0],\n eventCategory = _args$.eventCategory,\n eventAction = _args$.eventAction,\n eventLabel = _args$.eventLabel,\n eventValue = _args$.eventValue,\n hitType = _args$.hitType,\n rest = _objectWithoutProperties(_args$, _excluded);\n _this._gaCommandSendEvent(eventCategory, eventAction, eventLabel, eventValue, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSendTiming\", function (timingCategory, timingVar, timingValue, timingLabel) {\n _this._gtag(\"event\", \"timing_complete\", {\n name: timingVar,\n value: timingValue,\n event_category: timingCategory,\n event_label: timingLabel\n });\n });\n _defineProperty(this, \"_gaCommandSendPageview\", function (page, fieldsObject) {\n if (fieldsObject && Object.keys(fieldsObject).length) {\n var _this$_toGtagOptions = _this._toGtagOptions(fieldsObject),\n title = _this$_toGtagOptions.title,\n location = _this$_toGtagOptions.location,\n rest = _objectWithoutProperties(_this$_toGtagOptions, _excluded2);\n _this._gtag(\"event\", \"page_view\", _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, page && {\n page_path: page\n }), title && {\n page_title: title\n }), location && {\n page_location: location\n }), rest));\n } else if (page) {\n _this._gtag(\"event\", \"page_view\", {\n page_path: page\n });\n } else {\n _this._gtag(\"event\", \"page_view\");\n }\n });\n _defineProperty(this, \"_gaCommandSendPageviewParameters\", function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommandSendPageview.apply(_this, _toConsumableArray(args.slice(1)));\n } else {\n var _args$2 = args[0],\n page = _args$2.page,\n hitType = _args$2.hitType,\n rest = _objectWithoutProperties(_args$2, _excluded3);\n _this._gaCommandSendPageview(page, rest);\n }\n });\n _defineProperty(this, \"_gaCommandSend\", function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n var hitType = typeof args[0] === \"string\" ? args[0] : args[0].hitType;\n switch (hitType) {\n case \"event\":\n _this._gaCommandSendEventParameters.apply(_this, args);\n break;\n case \"pageview\":\n _this._gaCommandSendPageviewParameters.apply(_this, args);\n break;\n case \"timing\":\n _this._gaCommandSendTiming.apply(_this, _toConsumableArray(args.slice(1)));\n break;\n case \"screenview\":\n case \"transaction\":\n case \"item\":\n case \"social\":\n case \"exception\":\n console.warn(\"Unsupported send command: \".concat(hitType));\n break;\n default:\n console.warn(\"Send command doesn't exist: \".concat(hitType));\n }\n });\n _defineProperty(this, \"_gaCommandSet\", function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n if (typeof args[0] === \"string\") {\n args[0] = _defineProperty({}, args[0], args[1]);\n }\n _this._gtag(\"set\", _this._toGtagOptions(args[0]));\n });\n _defineProperty(this, \"_gaCommand\", function (command) {\n for (var _len6 = arguments.length, args = new Array(_len6 > 1 ? _len6 - 1 : 0), _key6 = 1; _key6 < _len6; _key6++) {\n args[_key6 - 1] = arguments[_key6];\n }\n switch (command) {\n case \"send\":\n _this._gaCommandSend.apply(_this, args);\n break;\n case \"set\":\n _this._gaCommandSet.apply(_this, args);\n break;\n default:\n console.warn(\"Command doesn't exist: \".concat(command));\n }\n });\n _defineProperty(this, \"ga\", function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n if (typeof args[0] === \"string\") {\n _this._gaCommand.apply(_this, args);\n } else {\n var readyCallback = args[0];\n _this._gtag(\"get\", _this._currentMeasurementId, \"client_id\", function (clientId) {\n _this._isQueuing = false;\n var queues = _this._queueGtag;\n readyCallback({\n get: function get(property) {\n return property === \"clientId\" ? clientId : property === \"trackingId\" ? _this._currentMeasurementId : property === \"apiVersion\" ? \"1\" : undefined;\n }\n });\n while (queues.length) {\n var queue = queues.shift();\n _this._gtag.apply(_this, _toConsumableArray(queue));\n }\n });\n _this._isQueuing = true;\n }\n return _this.ga;\n });\n _defineProperty(this, \"event\", function (optionsOrName, params) {\n if (typeof optionsOrName === \"string\") {\n _this._gtag(\"event\", optionsOrName, _this._toGtagOptions(params));\n } else {\n var action = optionsOrName.action,\n category = optionsOrName.category,\n label = optionsOrName.label,\n value = optionsOrName.value,\n nonInteraction = optionsOrName.nonInteraction,\n transport = optionsOrName.transport;\n if (!category || !action) {\n console.warn(\"args.category AND args.action are required in event()\");\n return;\n }\n\n // Required Fields\n var fieldObject = {\n hitType: \"event\",\n eventCategory: (0, _format[\"default\"])(category),\n eventAction: (0, _format[\"default\"])(action)\n };\n\n // Optional Fields\n if (label) {\n fieldObject.eventLabel = (0, _format[\"default\"])(label);\n }\n if (typeof value !== \"undefined\") {\n if (typeof value !== \"number\") {\n console.warn(\"Expected `args.value` arg to be a Number.\");\n } else {\n fieldObject.eventValue = value;\n }\n }\n if (typeof nonInteraction !== \"undefined\") {\n if (typeof nonInteraction !== \"boolean\") {\n console.warn(\"`args.nonInteraction` must be a boolean.\");\n } else {\n fieldObject.nonInteraction = nonInteraction;\n }\n }\n if (typeof transport !== \"undefined\") {\n if (typeof transport !== \"string\") {\n console.warn(\"`args.transport` must be a string.\");\n } else {\n if ([\"beacon\", \"xhr\", \"image\"].indexOf(transport) === -1) {\n console.warn(\"`args.transport` must be either one of these values: `beacon`, `xhr` or `image`\");\n }\n fieldObject.transport = transport;\n }\n }\n _this._gaCommand(\"send\", fieldObject);\n }\n });\n _defineProperty(this, \"send\", function (fieldObject) {\n _this._gaCommand(\"send\", fieldObject);\n });\n this.reset();\n }\n _createClass(GA4, [{\n key: \"gtag\",\n value: function gtag() {\n this._gtag.apply(this, arguments);\n }\n }]);\n return GA4;\n}();\nexports.GA4 = GA4;\nvar _default = new GA4();\nexports[\"default\"] = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = void 0;\nvar gtag = function gtag() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n if (typeof window !== \"undefined\") {\n var _window;\n if (typeof window.gtag === \"undefined\") {\n window.dataLayer = window.dataLayer || [];\n window.gtag = function gtag() {\n window.dataLayer.push(arguments);\n };\n }\n (_window = window).gtag.apply(_window, args);\n }\n};\nvar _default = gtag;\nexports[\"default\"] = _default;","\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports[\"default\"] = exports.ReactGAImplementation = void 0;\nvar _ga = _interopRequireWildcard(require(\"./ga4\"));\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") { return { \"default\": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj[\"default\"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ReactGAImplementation = _ga.GA4;\nexports.ReactGAImplementation = ReactGAImplementation;\nvar _default = _ga[\"default\"];\nexports[\"default\"] = _default;","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + chunkId + \".\" + \"174b949a\" + \".chunk.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"wmca-course-finder:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t179: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkwmca_course_finder\"] = self[\"webpackChunkwmca_course_finder\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n// TODO: (v7) Change the Location generic default from `any` to `unknown` and\n// remove Remix `useLocation` wrapper.\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: State;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. This may be either a URL or the pieces\n * of a URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n\n // Hash URL should always have a leading / just like window.location.pathname\n // does, so if an app ends up at a route like /#something then we add a\n // leading slash so all of our path-matching behaves the same as if it would\n // in a browser router. This is particularly important when there exists a\n // root splat route () since that matches internally against\n // \"/*\" and we'd expect /#something to 404 in a hash router app.\n if (!pathname.startsWith(\"/\") && !pathname.startsWith(\".\")) {\n pathname = \"/\" + pathname;\n }\n\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nexport function warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience, so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // If the exception is because `state` can't be serialized, let that throw\n // outwards just like a replace call would so the dev knows the cause\n // https://html.spec.whatwg.org/multipage/nav-history-apis.html#shared-history-push/replace-state-steps\n // https://html.spec.whatwg.org/multipage/structured-data.html#structuredserializeinternal\n if (error instanceof DOMException && error.name === \"DataCloneError\") {\n throw error;\n }\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath, warning } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n reloadDocument?: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\ntype LowerCaseFormMethod = \"get\" | \"post\" | \"put\" | \"patch\" | \"delete\";\ntype UpperCaseFormMethod = Uppercase;\n\n/**\n * Users can specify either lowercase or uppercase form methods on `
`,\n * useSubmit(), ``, etc.\n */\nexport type HTMLFormMethod = LowerCaseFormMethod | UpperCaseFormMethod;\n\n/**\n * Active navigation/fetcher form methods are exposed in lowercase on the\n * RouterState\n */\nexport type FormMethod = LowerCaseFormMethod;\nexport type MutationFormMethod = Exclude;\n\n/**\n * In v7, active navigation/fetcher form methods are exposed in uppercase on the\n * RouterState. This is to align with the normalization done via fetch().\n */\nexport type V7_FormMethod = UpperCaseFormMethod;\nexport type V7_MutationFormMethod = Exclude;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\"\n | \"application/json\"\n | \"text/plain\";\n\n// Thanks https://github.com/sindresorhus/type-fest!\ntype JsonObject = { [Key in string]: JsonValue } & {\n [Key in string]?: JsonValue | undefined;\n};\ntype JsonArray = JsonValue[] | readonly JsonValue[];\ntype JsonPrimitive = string | number | boolean | null;\ntype JsonValue = JsonPrimitive | JsonObject | JsonArray;\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport type Submission =\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n json: undefined;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: JsonValue;\n text: undefined;\n }\n | {\n formMethod: FormMethod | V7_FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: undefined;\n json: undefined;\n text: string;\n };\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: Context;\n}\n\n// TODO: (v7) Change the defaults from any to unknown in and remove Remix wrappers:\n// ActionFunction, ActionFunctionArgs, LoaderFunction, LoaderFunctionArgs\n// Also, make them a type alias instead of an interface\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs\n extends DataFunctionArgs {}\n\n/**\n * Loaders and actions can return anything except `undefined` (`null` is a\n * valid return value if there is no data to return). Responses are preferred\n * and will ease any future migration to Remix\n */\ntype DataFunctionValue = Response | NonNullable | null;\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs):\n | Promise\n | DataFunctionValue;\n}\n\n/**\n * Arguments passed to shouldRevalidate function\n */\nexport interface ShouldRevalidateFunctionArgs {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n text?: Submission[\"text\"];\n formData?: Submission[\"formData\"];\n json?: Submission[\"json\"];\n actionResult?: any;\n defaultShouldRevalidate: boolean;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: ShouldRevalidateFunctionArgs): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set `hasErrorBoundary`\n * from the framework-aware `errorElement` prop\n *\n * @deprecated Use `mapRouteProperties` instead\n */\nexport interface DetectErrorBoundaryFunction {\n (route: AgnosticRouteObject): boolean;\n}\n\n/**\n * Function provided by the framework-aware layers to set any framework-specific\n * properties from framework-agnostic properties\n */\nexport interface MapRoutePropertiesFunction {\n (route: AgnosticRouteObject): {\n hasErrorBoundary: boolean;\n } & Record;\n}\n\n/**\n * Keys we cannot change from within a lazy() function. We spread all other keys\n * onto the route. Either they're meaningful to the router, or they'll get\n * ignored.\n */\nexport type ImmutableRouteKey =\n | \"lazy\"\n | \"caseSensitive\"\n | \"path\"\n | \"id\"\n | \"index\"\n | \"children\";\n\nexport const immutableRouteKeys = new Set([\n \"lazy\",\n \"caseSensitive\",\n \"path\",\n \"id\",\n \"index\",\n \"children\",\n]);\n\ntype RequireOne = Exclude<\n {\n [K in keyof T]: K extends Key ? Omit & Required> : never;\n }[keyof T],\n undefined\n>;\n\n/**\n * lazy() function to load a route definition, which can add non-matching\n * related properties to a route\n */\nexport interface LazyRouteFunction {\n (): Promise>>;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n lazy?: LazyRouteFunction;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\nexport type RouteManifest = Record;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\" | \"/*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise, return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if you could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary, so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n mapRouteProperties: MapRoutePropertiesFunction,\n parentPath: number[] = [],\n manifest: RouteManifest = {}\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !manifest[id],\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n };\n manifest[id] = indexRoute;\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n ...mapRouteProperties(route),\n id,\n children: undefined,\n };\n manifest[id] = pathOrLayoutRoute;\n\n if (route.children) {\n pathOrLayoutRoute.children = convertRoutesToDataRoutes(\n route.children,\n mapRouteProperties,\n treePath,\n manifest\n );\n }\n\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\nexport interface UIMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: Data;\n handle: Handle;\n}\n\nexport function convertRouteMatchToUiMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UIMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle,\n };\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array, so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children, so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explode _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then, if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path: string = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n // ensure `/` is added at the beginning if the path is absolute\n const prefix = path.startsWith(\"/\") ? \"/\" : \"\";\n\n const stringify = (p: any) =>\n p == null ? \"\" : typeof p === \"string\" ? p : String(p);\n\n const segments = path\n .split(/\\/+/)\n .map((segment, index, array) => {\n const isLastSegment = index === array.length - 1;\n\n // only apply the splat if it's the last segment\n if (isLastSegment && segment === \"*\") {\n const star = \"*\" as PathParam;\n // Apply the splat\n return stringify(params[star]);\n }\n\n const keyMatch = segment.match(/^:(\\w+)(\\??)$/);\n if (keyMatch) {\n const [, key, optional] = keyMatch;\n let param = params[key as PathParam];\n invariant(optional === \"?\" || param != null, `Missing \":${key}\" param`);\n return stringify(param);\n }\n\n // Remove any optional markers from optional static segments\n return segment.replace(/\\?$/g, \"\");\n })\n // Remove empty segments\n .filter((segment) => !!segment);\n\n return prefix + segments.join(\"/\");\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, compiledParams] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = compiledParams.reduce>(\n (memo, { paramName, isOptional }, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n const value = captureGroups[index];\n if (isOptional && !value) {\n memo[paramName] = undefined;\n } else {\n memo[paramName] = safelyDecodeURIComponent(value || \"\", paramName);\n }\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\ntype CompiledPathParam = { paramName: string; isOptional?: boolean };\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, CompiledPathParam[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let params: CompiledPathParam[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^${}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)(\\?)?/g, (_: string, paramName: string, isOptional) => {\n params.push({ paramName, isOptional: isOptional != null });\n return isOptional ? \"/?([^\\\\/]+)?\" : \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n params.push({ paramName: \"*\" });\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex, so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, params];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, undefined, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n // If the promise was resolved/rejected with undefined, we'll throw an error as you\n // should always resolve with a value or null\n if (error === undefined && data === undefined) {\n let undefinedError = new Error(\n `Deferred data for key \"${key}\" resolved/rejected with \\`undefined\\`, ` +\n `you must resolve/reject with a value or \\`null\\`.`\n );\n Object.defineProperty(promise, \"_error\", { get: () => undefinedError });\n this.emit(false, key);\n return Promise.reject(undefinedError);\n }\n\n if (data === undefined) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * A redirect response that will force a document reload to the new location.\n * Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirectDocument: RedirectFunction = (url, init) => {\n let response = redirect(url, init);\n response.headers.set(\"X-Remix-Reload-Document\", \"true\");\n return response;\n};\n\nexport type ErrorResponse = {\n status: number;\n statusText: string;\n data: any;\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n *\n * We don't export the class for public use since it's an implementation\n * detail, but we export the interface above so folks can build their own\n * abstractions around instances via isRouteErrorResponse()\n */\nexport class ErrorResponseImpl implements ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n private error?: Error;\n private internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n warning,\n} from \"./history\";\nimport type {\n ActionFunction,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n AgnosticRouteObject,\n DataResult,\n DeferredData,\n DeferredResult,\n DetectErrorBoundaryFunction,\n ErrorResult,\n FormEncType,\n FormMethod,\n HTMLFormMethod,\n ImmutableRouteKey,\n LoaderFunction,\n MapRoutePropertiesFunction,\n MutationFormMethod,\n RedirectResult,\n RouteData,\n RouteManifest,\n ShouldRevalidateFunctionArgs,\n Submission,\n SuccessResult,\n UIMatch,\n V7_FormMethod,\n V7_MutationFormMethod,\n} from \"./utils\";\nimport {\n ErrorResponseImpl,\n ResultType,\n convertRouteMatchToUiMatch,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n immutableRouteKeys,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n stripBasename,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the window associated with the router\n */\n get window(): RouterInit[\"window\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To | null, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * HMR needs to pass in-flight route updates to React Router\n * TODO: Replace this with granular route update APIs (addRoute, updateRoute, deleteRoute)\n */\n _internalSetRoutes(routes: AgnosticRouteObject[]): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface FutureConfig {\n v7_fetcherPersist: boolean;\n v7_normalizeFormMethod: boolean;\n v7_prependBasename: boolean;\n}\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n routes: AgnosticRouteObject[];\n history: History;\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\n hydrationData?: HydrationState;\n window?: Window;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\ntype ViewTransitionOpts = {\n currentLocation: Location;\n nextLocation: Location;\n};\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (\n state: RouterState,\n opts: {\n deletedFetchers: string[];\n unstable_viewTransitionOpts?: ViewTransitionOpts;\n }\n ): void;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UIMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\nexport type RelativeRoutingType = \"route\" | \"path\";\n\n// Allowed for any navigation or fetch\ntype BaseNavigateOrFetchOptions = {\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n};\n\n// Only allowed for navigations\ntype BaseNavigateOptions = BaseNavigateOrFetchOptions & {\n replace?: boolean;\n state?: any;\n fromRouteId?: string;\n unstable_viewTransition?: boolean;\n};\n\n// Only allowed for submission navigations\ntype BaseSubmissionOptions = {\n formMethod?: HTMLFormMethod;\n formEncType?: FormEncType;\n} & (\n | { formData: FormData; body?: undefined }\n | { formData?: undefined; body: any }\n);\n\n/**\n * Options for a navigate() call for a normal (non-submission) navigation\n */\ntype LinkNavigateOptions = BaseNavigateOptions;\n\n/**\n * Options for a navigate() call for a submission navigation\n */\ntype SubmissionNavigateOptions = BaseNavigateOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to navigate() for a navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options for a fetch() load\n */\ntype LoadFetchOptions = BaseNavigateOrFetchOptions;\n\n/**\n * Options for a fetch() submission\n */\ntype SubmitFetchOptions = BaseNavigateOrFetchOptions & BaseSubmissionOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions = LoadFetchOptions | SubmitFetchOptions;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n json: undefined;\n text: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n text: Submission[\"text\"] | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n text: Submission[\"text\"];\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n text: undefined;\n formData: undefined;\n json: undefined;\n data: TData | undefined;\n };\n Loading: {\n state: \"loading\";\n formMethod: Submission[\"formMethod\"] | undefined;\n formAction: Submission[\"formAction\"] | undefined;\n formEncType: Submission[\"formEncType\"] | undefined;\n text: Submission[\"text\"] | undefined;\n formData: Submission[\"formData\"] | undefined;\n json: Submission[\"json\"] | undefined;\n data: TData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: Submission[\"formMethod\"];\n formAction: Submission[\"formAction\"];\n formEncType: Submission[\"formEncType\"];\n text: Submission[\"text\"];\n formData: Submission[\"formData\"];\n json: Submission[\"json\"];\n data: TData | undefined;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n match: AgnosticDataRouteMatch | null;\n matches: AgnosticDataRouteMatch[] | null;\n controller: AbortController | null;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst defaultMapRouteProperties: MapRoutePropertiesFunction = (route) => ({\n hasErrorBoundary: Boolean(route.hasErrorBoundary),\n});\n\nconst TRANSITIONS_STORAGE_KEY = \"remix-router-transitions\";\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n const routerWindow = init.window\n ? init.window\n : typeof window !== \"undefined\"\n ? window\n : undefined;\n const isBrowser =\n typeof routerWindow !== \"undefined\" &&\n typeof routerWindow.document !== \"undefined\" &&\n typeof routerWindow.document.createElement !== \"undefined\";\n const isServer = !isBrowser;\n\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (init.mapRouteProperties) {\n mapRouteProperties = init.mapRouteProperties;\n } else if (init.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = init.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n // Routes keyed by ID\n let manifest: RouteManifest = {};\n // Routes in tree format for matching\n let dataRoutes = convertRoutesToDataRoutes(\n init.routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n let inFlightDataRoutes: AgnosticDataRouteObject[] | undefined;\n let basename = init.basename || \"/\";\n // Config driven behavior flags\n let future: FutureConfig = {\n v7_fetcherPersist: false,\n v7_normalizeFormMethod: false,\n v7_prependBasename: false,\n ...init.future,\n };\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(dataRoutes, init.history.location, basename);\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n // All initialMatches need to be loaded before we're ready. If we have lazy\n // functions around still then we'll need to run them in initialize()\n !initialMatches.some((m) => m.route.lazy) &&\n // And we have to either have no loaders or have been provided hydrationData\n (!initialMatches.some((m) => m.route.loader) || init.hydrationData != null);\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // Should the current navigation enable document.startViewTransition?\n let pendingViewTransitionEnabled = false;\n\n // Store applied view transitions so we can apply them on POP\n let appliedViewTransitions: Map> = new Map<\n string,\n Set\n >();\n\n // Cleanup function for persisting applied transitions to sessionStorage\n let removePageHideEventListener: (() => void) | null = null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidator()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Ref-count mounted fetchers so we know when it's ok to clean them up\n let activeFetchers = new Map();\n\n // Fetchers that have requested a delete when using v7_fetcherPersist,\n // they'll be officially removed after they return to idle\n let deletedFetchers = new Set();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n if (isBrowser) {\n // FIXME: This feels gross. How can we cleanup the lines between\n // scrollRestoration/appliedTransitions persistance?\n restoreAppliedTransitions(routerWindow, appliedViewTransitions);\n let _saveAppliedTransitions = () =>\n persistAppliedTransitions(routerWindow, appliedViewTransitions);\n routerWindow.addEventListener(\"pagehide\", _saveAppliedTransitions);\n removePageHideEventListener = () =>\n routerWindow.removeEventListener(\"pagehide\", _saveAppliedTransitions);\n }\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n // Note we don't do any handling of lazy here. For SPA's it'll get handled\n // in the normal navigation flow. For SSR it's expected that lazy modules are\n // resolved prior to router creation since we can't go into a fallbackElement\n // UI for SSR'd apps\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n if (removePageHideEventListener) {\n removePageHideEventListener();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(\n newState: Partial,\n viewTransitionOpts?: ViewTransitionOpts\n ): void {\n state = {\n ...state,\n ...newState,\n };\n\n // Prep fetcher cleanup so we can tell the UI which fetcher data entries\n // can be removed\n let completedFetchers: string[] = [];\n let deletedFetchersKeys: string[] = [];\n\n if (future.v7_fetcherPersist) {\n state.fetchers.forEach((fetcher, key) => {\n if (fetcher.state === \"idle\") {\n if (deletedFetchers.has(key)) {\n // Unmounted from the UI and can be totally removed\n deletedFetchersKeys.push(key);\n } else {\n // Returned to idle but still mounted in the UI, so semi-remains for\n // revalidations and such\n completedFetchers.push(key);\n }\n }\n });\n }\n\n subscribers.forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: viewTransitionOpts,\n })\n );\n\n // Remove idle fetchers from state since we only care about in-flight fetchers.\n if (future.v7_fetcherPersist) {\n completedFetchers.forEach((key) => state.fetchers.delete(key));\n deletedFetchersKeys.forEach((key) => deleteFetcher(key));\n }\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n let blockers = state.blockers;\n if (blockers.size > 0) {\n blockers = new Map(blockers);\n blockers.forEach((_, k) => blockers.set(k, IDLE_BLOCKER));\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n if (inFlightDataRoutes) {\n dataRoutes = inFlightDataRoutes;\n inFlightDataRoutes = undefined;\n }\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n let viewTransitionOpts: ViewTransitionOpts | undefined;\n\n // On POP, enable transitions if they were enabled on the original navigation\n if (pendingAction === HistoryAction.Pop) {\n // Forward takes precedence so they behave like the original navigation\n let priorPaths = appliedViewTransitions.get(state.location.pathname);\n if (priorPaths && priorPaths.has(location.pathname)) {\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n } else if (appliedViewTransitions.has(location.pathname)) {\n // If we don't have a previous forward nav, assume we're popping back to\n // the new location and enable if that location previously enabled\n viewTransitionOpts = {\n currentLocation: location,\n nextLocation: state.location,\n };\n }\n } else if (pendingViewTransitionEnabled) {\n // Store the applied transition on PUSH/REPLACE\n let toPaths = appliedViewTransitions.get(state.location.pathname);\n if (toPaths) {\n toPaths.add(location.pathname);\n } else {\n toPaths = new Set([location.pathname]);\n appliedViewTransitions.set(state.location.pathname, toPaths);\n }\n viewTransitionOpts = {\n currentLocation: state.location,\n nextLocation: location,\n };\n }\n\n updateState(\n {\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers,\n },\n viewTransitionOpts\n );\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n pendingViewTransitionEnabled = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To | null,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n to,\n opts?.fromRouteId,\n opts?.relative\n );\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n false,\n normalizedPath,\n opts\n );\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n let blockers = new Map(state.blockers);\n blockers.set(blockerKey!, IDLE_BLOCKER);\n updateState({ blockers });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n enableViewTransition: opts && opts.unstable_viewTransition,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponseImpl;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n enableViewTransition?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n pendingViewTransitionEnabled = (opts && opts.enableViewTransition) === true;\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(routesToUse, location, basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(routesToUse);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a revalidation or\n // mutation submission.\n //\n // Ignore on initial page loads because since the initial load will always\n // be \"same hash\". For example, on /page#hash and submit a \n // which will default to a navigation to /page\n if (\n state.initialized &&\n !isRevalidationRequired &&\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n loadingNavigation = getLoadingNavigation(location, opts.submission);\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.fetcherSubmission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts: { replace?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n fetcherSubmission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation =\n overrideNavigation || getLoadingNavigation(location, submission);\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission =\n submission ||\n fetcherSubmission ||\n getSubmissionFromNavigation(loadingNavigation);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n pendingActionData,\n pendingError\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n pendingNavigationLoadId = ++incrementingLoadId;\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n let updatedFetchers = markFetchRedirectsDone();\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n ...(updatedFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n fetcher ? fetcher.data : undefined\n );\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n revalidatingFetchers.forEach((rf) => {\n if (fetchControllers.has(rf.key)) {\n abortFetcher(rf.key);\n }\n if (rf.controller) {\n // Fetchers use an independent AbortController so that aborting a fetcher\n // (via deleteFetcher) does not abort the triggering navigation that\n // triggered the revalidation\n fetchControllers.set(rf.key, rf.controller);\n }\n });\n\n // Proxy navigation abort through to revalidation fetchers\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((f) => abortFetcher(f.key));\n if (pendingNavigationController) {\n pendingNavigationController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n if (pendingNavigationController) {\n pendingNavigationController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n }\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n await startRedirectNavigation(state, redirect.result, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n let updatedFetchers = markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n let shouldUpdateFetchers =\n updatedFetchers || didAbortFetchLoads || revalidatingFetchers.length > 0;\n\n return {\n loaderData,\n errors,\n ...(shouldUpdateFetchers ? { fetchers: new Map(state.fetchers) } : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n if (future.v7_fetcherPersist) {\n activeFetchers.set(key, (activeFetchers.get(key) || 0) + 1);\n // If this fetcher was previously marked for deletion, unmark it since we\n // have a new instance\n if (deletedFetchers.has(key)) {\n deletedFetchers.delete(key);\n }\n }\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string | null,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let normalizedPath = normalizeTo(\n state.location,\n state.matches,\n basename,\n future.v7_prependBasename,\n href,\n routeId,\n opts?.relative\n );\n let matches = matchRoutes(routesToUse, normalizedPath, basename);\n\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: normalizedPath })\n );\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(\n future.v7_normalizeFormMethod,\n true,\n normalizedPath,\n opts\n );\n\n if (error) {\n setFetcherError(key, routeId, error);\n return;\n }\n\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action && !match.route.lazy) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher = getSubmittingFetcher(submission, existingFetcher);\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (deletedFetchers.has(key)) {\n state.fetchers.set(key, getDoneFetcher(undefined));\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our action started, so that\n // should take precedence over this redirect navigation. We already\n // set isRevalidationRequired so all loaders for the new route should\n // fire unless opted out via shouldRevalidate\n let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n } else {\n fetchRedirectIds.add(key);\n let loadingFetcher = getLoadingFetcher(submission);\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n fetcherSubmission: submission,\n });\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n nextLocation,\n abortController.signal\n );\n let routesToUse = inFlightDataRoutes || dataRoutes;\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(routesToUse, state.navigation.location, basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = getLoadingFetcher(submission, actionResult.data);\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n fetchLoadMatches,\n fetchRedirectIds,\n routesToUse,\n basename,\n { [match.route.id]: actionResult.data },\n undefined // No need to send through errors since we short circuit above\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = getLoadingFetcher(\n undefined,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(staleKey, revalidatingFetcher);\n if (fetchControllers.has(staleKey)) {\n abortFetcher(staleKey);\n }\n if (rf.controller) {\n fetchControllers.set(staleKey, rf.controller);\n }\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let abortPendingFetchRevalidations = () =>\n revalidatingFetchers.forEach((rf) => abortFetcher(rf.key));\n\n abortController.signal.addEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n abortController.signal.removeEventListener(\n \"abort\",\n abortPendingFetchRevalidations\n );\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n if (redirect.idx >= matchesToLoad.length) {\n // If this redirect came from a fetcher make sure we mark it in\n // fetchRedirectIds so it doesn't get revalidated on the next set of\n // loader executions\n let fetcherKey =\n revalidatingFetchers[redirect.idx - matchesToLoad.length].key;\n fetchRedirectIds.add(fetcherKey);\n }\n return startRedirectNavigation(state, redirect.result);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Since we let revalidations complete even if the submitting fetcher was\n // deleted, only put it back to idle if it hasn't been deleted\n if (state.fetchers.has(key)) {\n let doneFetcher = getDoneFetcher(actionResult.data);\n state.fetchers.set(key, doneFetcher);\n }\n\n abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n fetchers: new Map(state.fetchers),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher = getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n );\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n\n let originatingLoadId = incrementingLoadId;\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by our our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n if (deletedFetchers.has(key)) {\n state.fetchers.set(key, getDoneFetcher(undefined));\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n if (pendingNavigationLoadId > originatingLoadId) {\n // A new navigation was kicked off after our loader started, so that\n // should take precedence over this redirect navigation\n let doneFetcher = getDoneFetcher(undefined);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n return;\n } else {\n fetchRedirectIds.add(key);\n await startRedirectNavigation(state, result);\n return;\n }\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n setFetcherError(key, routeId, result.error);\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n fetcherSubmission,\n replace,\n }: {\n submission?: Submission;\n fetcherSubmission?: Submission;\n replace?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, {\n _isRedirect: true,\n });\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n if (isBrowser) {\n let isDocumentReload = false;\n\n if (redirect.reloadDocument) {\n // Hard reload if the response contained X-Remix-Reload-Document\n isDocumentReload = true;\n } else if (ABSOLUTE_URL_REGEX.test(redirect.location)) {\n const url = init.history.createURL(redirect.location);\n isDocumentReload =\n // Hard reload if it's an absolute URL to a new origin\n url.origin !== routerWindow.location.origin ||\n // Hard reload if it's an absolute URL that does not match our basename\n stripBasename(url.pathname, basename) == null;\n }\n\n if (isDocumentReload) {\n if (replace) {\n routerWindow.location.replace(redirect.location);\n } else {\n routerWindow.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType } = state.navigation;\n if (\n !submission &&\n !fetcherSubmission &&\n formMethod &&\n formAction &&\n formEncType\n ) {\n submission = getSubmissionFromNavigation(state.navigation);\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n let activeSubmission = submission || fetcherSubmission;\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n activeSubmission &&\n isMutationMethod(activeSubmission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...activeSubmission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // If we have a navigation submission, we will preserve it through the\n // redirect navigation\n let overrideNavigation = getLoadingNavigation(\n redirectLocation,\n submission\n );\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation,\n // Send fetcher submissions through for shouldRevalidate\n fetcherSubmission,\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename\n )\n ),\n ...fetchersToLoad.map((f) => {\n if (f.matches && f.match && f.controller) {\n return callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, f.controller.signal),\n f.match,\n f.matches,\n manifest,\n mapRouteProperties,\n basename\n );\n } else {\n let error: ErrorResult = {\n type: ResultType.error,\n error: getInternalRouterError(404, { pathname: f.path }),\n };\n return error;\n }\n }),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n loaderResults.map(() => request.signal),\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n fetchersToLoad.map((f) => (f.controller ? f.controller.signal : null)),\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n let fetcher = state.fetchers.get(key);\n // Don't abort the controller if this is a deletion of a fetcher.submit()\n // in it's loading phase since - we don't want to abort the corresponding\n // revalidation and want them to complete and land\n if (\n fetchControllers.has(key) &&\n !(fetcher && fetcher.state === \"loading\" && fetchReloadIds.has(key))\n ) {\n abortFetcher(key);\n }\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n deletedFetchers.delete(key);\n state.fetchers.delete(key);\n }\n\n function deleteFetcherAndUpdateState(key: string): void {\n if (future.v7_fetcherPersist) {\n let count = (activeFetchers.get(key) || 0) - 1;\n if (count <= 0) {\n activeFetchers.delete(key);\n deletedFetchers.add(key);\n } else {\n activeFetchers.set(key, count);\n }\n } else {\n deleteFetcher(key);\n }\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = getDoneFetcher(fetcher.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): boolean {\n let doneKeys = [];\n let updatedFetchers = false;\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n updatedFetchers = true;\n }\n }\n markFetchersDone(doneKeys);\n return updatedFetchers;\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n let blockers = new Map(state.blockers);\n blockers.set(key, newBlocker);\n updateState({ blockers });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || null;\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function getScrollKey(location: Location, matches: AgnosticDataRouteMatch[]) {\n if (getScrollRestorationKey) {\n let key = getScrollRestorationKey(\n location,\n matches.map((m) => convertRouteMatchToUiMatch(m, state.loaderData))\n );\n return key || location.key;\n }\n return location.key;\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollPosition) {\n let key = getScrollKey(location, matches);\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions) {\n let key = getScrollKey(location, matches);\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n function _internalSetRoutes(newRoutes: AgnosticDataRouteObject[]) {\n manifest = {};\n inFlightDataRoutes = convertRoutesToDataRoutes(\n newRoutes,\n mapRouteProperties,\n undefined,\n manifest\n );\n }\n\n router = {\n get basename() {\n return basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n get window() {\n return routerWindow;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher: deleteFetcherAndUpdateState,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n // TODO: Remove setRoutes, it's temporary to avoid dealing with\n // updating the tree while validating the update algorithm.\n _internalSetRoutes,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n}\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: CreateStaticHandlerOptions\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let manifest: RouteManifest = {};\n let basename = (opts ? opts.basename : null) || \"/\";\n let mapRouteProperties: MapRoutePropertiesFunction;\n if (opts?.mapRouteProperties) {\n mapRouteProperties = opts.mapRouteProperties;\n } else if (opts?.detectErrorBoundary) {\n // If they are still using the deprecated version, wrap it with the new API\n let detectErrorBoundary = opts.detectErrorBoundary;\n mapRouteProperties = (route) => ({\n hasErrorBoundary: detectErrorBoundary(route),\n });\n } else {\n mapRouteProperties = defaultMapRouteProperties;\n }\n\n let dataRoutes = convertRoutesToDataRoutes(\n routes,\n mapRouteProperties,\n undefined,\n manifest\n );\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method;\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"HEAD\" && method !== \"OPTIONS\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action && !actionMatch.route.lazy) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (\n isRouteRequest &&\n !routeMatch?.route.loader &&\n !routeMatch?.route.lazy\n ) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter(\n (m) => m.route.loader || m.route.lazy\n );\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n manifest,\n mapRouteProperties,\n basename,\n { isStaticRequest: true, isRouteRequest, requestContext }\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(\n `${method}() call aborted: ${request.method} ${request.url}`\n );\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: BaseNavigateOrFetchOptions\n): opts is SubmissionNavigateOptions {\n return (\n opts != null &&\n ((\"formData\" in opts && opts.formData != null) ||\n (\"body\" in opts && opts.body !== undefined))\n );\n}\n\nfunction normalizeTo(\n location: Path,\n matches: AgnosticDataRouteMatch[],\n basename: string,\n prependBasename: boolean,\n to: To | null,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId != null && relative !== \"path\") {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route. When using relative:path,\n // fromRouteId is ignored since that is always relative to the current\n // location path\n contextualMatches = [];\n for (let match of matches) {\n contextualMatches.push(match);\n if (match.route.id === fromRouteId) {\n activeRouteMatch = match;\n break;\n }\n }\n } else {\n contextualMatches = matches;\n activeRouteMatch = matches[matches.length - 1];\n }\n\n // Resolve the relative path\n let path = resolveTo(\n to ? to : \".\",\n getPathContributingMatches(contextualMatches).map((m) => m.pathnameBase),\n stripBasename(location.pathname, basename) || location.pathname,\n relative === \"path\"\n );\n\n // When `to` is not specified we inherit search/hash from the current\n // location, unlike when to=\".\" and we just inherit the path.\n // See https://github.com/remix-run/remix/issues/927\n if (to == null) {\n path.search = location.search;\n path.hash = location.hash;\n }\n\n // Add an ?index param for matched index routes if we don't already have one\n if (\n (to == null || to === \"\" || to === \".\") &&\n activeRouteMatch &&\n activeRouteMatch.route.index &&\n !hasNakedIndexQuery(path.search)\n ) {\n path.search = path.search\n ? path.search.replace(/^\\?/, \"?index&\")\n : \"?index\";\n }\n\n // If we're operating within a basename, prepend it to the pathname. If\n // this is a root navigation, then just use the raw basename which allows\n // the basename to have full control over the presence of a trailing slash\n // on root actions\n if (prependBasename && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n return createPath(path);\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n normalizeFormMethod: boolean,\n isFetcher: boolean,\n path: string,\n opts?: BaseNavigateOrFetchOptions\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponseImpl;\n} {\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n let getInvalidBodyError = () => ({\n path,\n error: getInternalRouterError(400, { type: \"invalid-body\" }),\n });\n\n // Create a Submission on non-GET navigations\n let rawFormMethod = opts.formMethod || \"get\";\n let formMethod = normalizeFormMethod\n ? (rawFormMethod.toUpperCase() as V7_FormMethod)\n : (rawFormMethod.toLowerCase() as FormMethod);\n let formAction = stripHashFromPath(path);\n\n if (opts.body !== undefined) {\n if (opts.formEncType === \"text/plain\") {\n // text only support POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n let text =\n typeof opts.body === \"string\"\n ? opts.body\n : opts.body instanceof FormData ||\n opts.body instanceof URLSearchParams\n ? // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#plain-text-form-data\n Array.from(opts.body.entries()).reduce(\n (acc, [name, value]) => `${acc}${name}=${value}\\n`,\n \"\"\n )\n : String(opts.body);\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json: undefined,\n text,\n },\n };\n } else if (opts.formEncType === \"application/json\") {\n // json only supports POST/PUT/PATCH/DELETE submissions\n if (!isMutationMethod(formMethod)) {\n return getInvalidBodyError();\n }\n\n try {\n let json =\n typeof opts.body === \"string\" ? JSON.parse(opts.body) : opts.body;\n\n return {\n path,\n submission: {\n formMethod,\n formAction,\n formEncType: opts.formEncType,\n formData: undefined,\n json,\n text: undefined,\n },\n };\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n }\n\n invariant(\n typeof FormData === \"function\",\n \"FormData is not available in this environment\"\n );\n\n let searchParams: URLSearchParams;\n let formData: FormData;\n\n if (opts.formData) {\n searchParams = convertFormDataToSearchParams(opts.formData);\n formData = opts.formData;\n } else if (opts.body instanceof FormData) {\n searchParams = convertFormDataToSearchParams(opts.body);\n formData = opts.body;\n } else if (opts.body instanceof URLSearchParams) {\n searchParams = opts.body;\n formData = convertSearchParamsToFormData(searchParams);\n } else if (opts.body == null) {\n searchParams = new URLSearchParams();\n formData = new FormData();\n } else {\n try {\n searchParams = new URLSearchParams(opts.body);\n formData = convertSearchParamsToFormData(searchParams);\n } catch (e) {\n return getInvalidBodyError();\n }\n }\n\n let submission: Submission = {\n formMethod,\n formAction,\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData,\n json: undefined,\n text: undefined,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n // On GET navigation submissions we can drop the ?index param from the\n // resulting location since all loaders will run. But fetcher GET submissions\n // only run a single loader so we need to preserve any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n fetchLoadMatches: Map,\n fetchRedirectIds: Set,\n routesToUse: AgnosticDataRouteObject[],\n basename: string | undefined,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.lazy) {\n // We haven't loaded this route yet so we don't know if it's got a loader!\n return true;\n }\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n // Forced revalidation due to submission, useRevalidator, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.pathname + currentUrl.search ===\n nextUrl.pathname + nextUrl.search ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches.forEach((f, key) => {\n // Don't revalidate if fetcher won't be present in the subsequent render\n if (!matches.some((m) => m.route.id === f.routeId)) {\n return;\n }\n\n let fetcherMatches = matchRoutes(routesToUse, f.path, basename);\n\n // If the fetcher path no longer matches, push it in with null matches so\n // we can trigger a 404 in callLoadersAndMaybeResolveData. Note this is\n // currently only a use-case for Remix HMR where the route tree can change\n // at runtime and remove a route previously loaded via a fetcher\n if (!fetcherMatches) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: null,\n match: null,\n controller: null,\n });\n return;\n }\n\n // Revalidating fetchers are decoupled from the route matches since they\n // load from a static href. They revalidate based on explicit revalidation\n // (submission, useRevalidator, or X-Remix-Revalidate)\n let fetcher = state.fetchers.get(key);\n let fetcherMatch = getTargetMatch(fetcherMatches, f.path);\n\n let shouldRevalidate = false;\n if (fetchRedirectIds.has(key)) {\n // Never trigger a revalidation of an actively redirecting fetcher\n shouldRevalidate = false;\n } else if (cancelledFetcherLoads.includes(key)) {\n // Always revalidate if the fetcher was cancelled\n shouldRevalidate = true;\n } else if (\n fetcher &&\n fetcher.state !== \"idle\" &&\n fetcher.data === undefined\n ) {\n // If the fetcher hasn't ever completed loading yet, then this isn't a\n // revalidation, it would just be a brand new load if an explicit\n // revalidation is required\n shouldRevalidate = isRevalidationRequired;\n } else {\n // Otherwise fall back on any user-defined shouldRevalidate, defaulting\n // to explicit revalidations only\n shouldRevalidate = shouldRevalidateLoader(fetcherMatch, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate: isRevalidationRequired,\n });\n }\n\n if (shouldRevalidate) {\n revalidatingFetchers.push({\n key,\n routeId: f.routeId,\n path: f.path,\n matches: fetcherMatches,\n match: fetcherMatch,\n controller: new AbortController(),\n });\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: ShouldRevalidateFunctionArgs\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\n/**\n * Execute route.lazy() methods to lazily load route modules (loader, action,\n * shouldRevalidate) and update the routeManifest in place which shares objects\n * with dataRoutes so those get updated as well.\n */\nasync function loadLazyRouteModule(\n route: AgnosticDataRouteObject,\n mapRouteProperties: MapRoutePropertiesFunction,\n manifest: RouteManifest\n) {\n if (!route.lazy) {\n return;\n }\n\n let lazyRoute = await route.lazy();\n\n // If the lazy route function was executed and removed by another parallel\n // call then we can return - first lazy() to finish wins because the return\n // value of lazy is expected to be static\n if (!route.lazy) {\n return;\n }\n\n let routeToUpdate = manifest[route.id];\n invariant(routeToUpdate, \"No route found in manifest\");\n\n // Update the route in place. This should be safe because there's no way\n // we could yet be sitting on this route as we can't get there without\n // resolving lazy() first.\n //\n // This is different than the HMR \"update\" use-case where we may actively be\n // on the route being updated. The main concern boils down to \"does this\n // mutation affect any ongoing navigations or any current state.matches\n // values?\". If not, it should be safe to update in place.\n let routeUpdates: Record = {};\n for (let lazyRouteProperty in lazyRoute) {\n let staticRouteValue =\n routeToUpdate[lazyRouteProperty as keyof typeof routeToUpdate];\n\n let isPropertyStaticallyDefined =\n staticRouteValue !== undefined &&\n // This property isn't static since it should always be updated based\n // on the route updates\n lazyRouteProperty !== \"hasErrorBoundary\";\n\n warning(\n !isPropertyStaticallyDefined,\n `Route \"${routeToUpdate.id}\" has a static property \"${lazyRouteProperty}\" ` +\n `defined but its lazy function is also returning a value for this property. ` +\n `The lazy route property \"${lazyRouteProperty}\" will be ignored.`\n );\n\n if (\n !isPropertyStaticallyDefined &&\n !immutableRouteKeys.has(lazyRouteProperty as ImmutableRouteKey)\n ) {\n routeUpdates[lazyRouteProperty] =\n lazyRoute[lazyRouteProperty as keyof typeof lazyRoute];\n }\n }\n\n // Mutate the route with the provided updates. Do this first so we pass\n // the updated version to mapRouteProperties\n Object.assign(routeToUpdate, routeUpdates);\n\n // Mutate the `hasErrorBoundary` property on the route based on the route\n // updates and remove the `lazy` function so we don't resolve the lazy\n // route again.\n Object.assign(routeToUpdate, {\n // To keep things framework agnostic, we use the provided\n // `mapRouteProperties` (or wrapped `detectErrorBoundary`) function to\n // set the framework-aware properties (`element`/`hasErrorBoundary`) since\n // the logic will differ between frameworks.\n ...mapRouteProperties(routeToUpdate),\n lazy: undefined,\n });\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n manifest: RouteManifest,\n mapRouteProperties: MapRoutePropertiesFunction,\n basename: string,\n opts: {\n isStaticRequest?: boolean;\n isRouteRequest?: boolean;\n requestContext?: unknown;\n } = {}\n): Promise {\n let resultType;\n let result;\n let onReject: (() => void) | undefined;\n\n let runHandler = (handler: ActionFunction | LoaderFunction) => {\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n return Promise.race([\n handler({\n request,\n params: match.params,\n context: opts.requestContext,\n }),\n abortPromise,\n ]);\n };\n\n try {\n let handler = match.route[type];\n\n if (match.route.lazy) {\n if (handler) {\n // Run statically defined handler in parallel with lazy()\n let handlerError;\n let values = await Promise.all([\n // If the handler throws, don't let it immediately bubble out,\n // since we need to let the lazy() execution finish so we know if this\n // route has a boundary that can handle the error\n runHandler(handler).catch((e) => {\n handlerError = e;\n }),\n loadLazyRouteModule(match.route, mapRouteProperties, manifest),\n ]);\n if (handlerError) {\n throw handlerError;\n }\n result = values[0];\n } else {\n // Load lazy route module, then run any returned handler\n await loadLazyRouteModule(match.route, mapRouteProperties, manifest);\n\n handler = match.route[type];\n if (handler) {\n // Handler still run even if we got interrupted to maintain consistency\n // with un-abortable behavior of handler execution on non-lazy or\n // previously-lazy-loaded routes\n result = await runHandler(handler);\n } else if (type === \"action\") {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(405, {\n method: request.method,\n pathname,\n routeId: match.route.id,\n });\n } else {\n // lazy() route has no loader to run. Short circuit here so we don't\n // hit the invariant below that errors on returning undefined.\n return { type: ResultType.data, data: undefined };\n }\n }\n } else if (!handler) {\n let url = new URL(request.url);\n let pathname = url.pathname + url.search;\n throw getInternalRouterError(404, {\n pathname,\n });\n } else {\n result = await runHandler(handler);\n }\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n if (onReject) {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n location = normalizeTo(\n new URL(request.url),\n matches.slice(0, matches.indexOf(match) + 1),\n basename,\n true,\n location\n );\n } else if (!opts.isStaticRequest) {\n // Strip off the protocol+origin for same-origin + same-basename absolute\n // redirects. If this is a static request, we can let it go back to the\n // browser as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n let isSameBasename = stripBasename(url.pathname, basename) != null;\n if (url.origin === currentUrl.origin && isSameBasename) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (opts.isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n reloadDocument: result.headers.get(\"X-Remix-Reload-Document\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (opts.isRouteRequest) {\n let queryRouteResponse: QueryRouteResponse = {\n type:\n resultType === ResultType.error ? ResultType.error : ResultType.data,\n response: result,\n };\n throw queryRouteResponse;\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponseImpl(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (isDeferredData(result)) {\n return {\n type: ResultType.deferred,\n deferredData: result,\n statusCode: result.init?.status,\n headers: result.init?.headers && new Headers(result.init.headers),\n };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType } = submission;\n // Didn't think we needed this but it turns out unlike other methods, patch\n // won't be properly normalized to uppercase and results in a 405 error.\n // See: https://fetch.spec.whatwg.org/#concept-method\n init.method = formMethod.toUpperCase();\n\n if (formEncType === \"application/json\") {\n init.headers = new Headers({ \"Content-Type\": formEncType });\n init.body = JSON.stringify(submission.json);\n } else if (formEncType === \"text/plain\") {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.text;\n } else if (\n formEncType === \"application/x-www-form-urlencoded\" &&\n submission.formData\n ) {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = convertFormDataToSearchParams(submission.formData);\n } else {\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n init.body = submission.formData;\n }\n }\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, typeof value === \"string\" ? value : value.name);\n }\n\n return searchParams;\n}\n\nfunction convertSearchParamsToFormData(\n searchParams: URLSearchParams\n): FormData {\n let formData = new FormData();\n for (let [key, value] of searchParams.entries()) {\n formData.append(key, value);\n }\n return formData;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match, controller } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (controller && controller.signal.aborted) {\n // Nothing to do for aborted fetchers\n continue;\n } else if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match?.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = getDoneFetcher(result.data);\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined && match.route.loader) {\n // Preserve existing keys not included in newLoaderData and where a loader\n // wasn't removed by HMR\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route =\n routes.length === 1\n ? routes[0]\n : routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\" | \"invalid-body\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n } else if (type === \"invalid-body\") {\n errorMessage = \"Unable to encode submission body\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponseImpl(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(\n results: DataResult[]\n): { result: RedirectResult; idx: number } | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return { result, idx: i };\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n if (a.pathname !== b.pathname || a.search !== b.search) {\n return false;\n }\n\n if (a.hash === \"\") {\n // /page -> /page#hash\n return b.hash !== \"\";\n } else if (a.hash === b.hash) {\n // /page#hash -> /page#hash\n return true;\n } else if (b.hash !== \"\") {\n // /page#hash -> /page#other\n return true;\n }\n\n // If the hash is removed the browser will re-perform a request to the server\n // /page#hash -> /page\n return false;\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nexport function isDeferredData(value: any): value is DeferredData {\n let deferred: DeferredData = value;\n return (\n deferred &&\n typeof deferred === \"object\" &&\n typeof deferred.data === \"object\" &&\n typeof deferred.subscribe === \"function\" &&\n typeof deferred.cancel === \"function\" &&\n typeof deferred.resolveData === \"function\"\n );\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || obj.type === ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod | V7_FormMethod {\n return validRequestMethods.has(method.toLowerCase() as FormMethod);\n}\n\nfunction isMutationMethod(\n method: string\n): method is MutationFormMethod | V7_MutationFormMethod {\n return validMutationMethods.has(method.toLowerCase() as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: (AgnosticDataRouteMatch | null)[],\n results: DataResult[],\n signals: (AbortSignal | null)[],\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n // If we don't have a match, then we can have a deferred result to do\n // anything with. This is for revalidating fetchers where the route was\n // removed during HMR\n if (!match) {\n continue;\n }\n\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match!.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n let signal = signals[index];\n invariant(\n signal,\n \"Expected an AbortSignal for revalidating fetcher deferred result\"\n );\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n\nfunction getSubmissionFromNavigation(\n navigation: Navigation\n): Submission | undefined {\n let { formMethod, formAction, formEncType, text, formData, json } =\n navigation;\n if (!formMethod || !formAction || !formEncType) {\n return;\n }\n\n if (text != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json: undefined,\n text,\n };\n } else if (formData != null) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData,\n json: undefined,\n text: undefined,\n };\n } else if (json !== undefined) {\n return {\n formMethod,\n formAction,\n formEncType,\n formData: undefined,\n json,\n text: undefined,\n };\n }\n}\n\nfunction getLoadingNavigation(\n location: Location,\n submission?: Submission\n): NavigationStates[\"Loading\"] {\n if (submission) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n } else {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n };\n return navigation;\n }\n}\n\nfunction getSubmittingNavigation(\n location: Location,\n submission: Submission\n): NavigationStates[\"Submitting\"] {\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n };\n return navigation;\n}\n\nfunction getLoadingFetcher(\n submission?: Submission,\n data?: Fetcher[\"data\"]\n): FetcherStates[\"Loading\"] {\n if (submission) {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data,\n };\n return fetcher;\n } else {\n let fetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n }\n}\n\nfunction getSubmittingFetcher(\n submission: Submission,\n existingFetcher?: Fetcher\n): FetcherStates[\"Submitting\"] {\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n formMethod: submission.formMethod,\n formAction: submission.formAction,\n formEncType: submission.formEncType,\n formData: submission.formData,\n json: submission.json,\n text: submission.text,\n data: existingFetcher ? existingFetcher.data : undefined,\n };\n return fetcher;\n}\n\nfunction getDoneFetcher(data: Fetcher[\"data\"]): FetcherStates[\"Idle\"] {\n let fetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n json: undefined,\n text: undefined,\n data,\n };\n return fetcher;\n}\n\nfunction restoreAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n try {\n let sessionPositions = _window.sessionStorage.getItem(\n TRANSITIONS_STORAGE_KEY\n );\n if (sessionPositions) {\n let json = JSON.parse(sessionPositions);\n for (let [k, v] of Object.entries(json || {})) {\n if (v && Array.isArray(v)) {\n transitions.set(k, new Set(v || []));\n }\n }\n }\n } catch (e) {\n // no-op, use default empty object\n }\n}\n\nfunction persistAppliedTransitions(\n _window: Window,\n transitions: Map>\n) {\n if (transitions.size > 0) {\n let json: Record = {};\n for (let [k, v] of transitions) {\n json[k] = [...v];\n }\n try {\n _window.sessionStorage.setItem(\n TRANSITIONS_STORAGE_KEY,\n JSON.stringify(json)\n );\n } catch (error) {\n warning(\n false,\n `Failed to save applied view transitions in sessionStorage (${error}).`\n );\n }\n }\n}\n\n//#endregion\n","import * as React from \"react\";\nimport type {\n AgnosticIndexRouteObject,\n AgnosticNonIndexRouteObject,\n AgnosticRouteMatch,\n History,\n LazyRouteFunction,\n Location,\n Action as NavigationType,\n RelativeRoutingType,\n Router,\n StaticHandlerContext,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\n\n// Create react-specific types from the agnostic types in @remix-run/router to\n// export from react-router\nexport interface IndexRouteObject {\n caseSensitive?: AgnosticIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticIndexRouteObject[\"path\"];\n id?: AgnosticIndexRouteObject[\"id\"];\n loader?: AgnosticIndexRouteObject[\"loader\"];\n action?: AgnosticIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticIndexRouteObject[\"handle\"];\n index: true;\n children?: undefined;\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport interface NonIndexRouteObject {\n caseSensitive?: AgnosticNonIndexRouteObject[\"caseSensitive\"];\n path?: AgnosticNonIndexRouteObject[\"path\"];\n id?: AgnosticNonIndexRouteObject[\"id\"];\n loader?: AgnosticNonIndexRouteObject[\"loader\"];\n action?: AgnosticNonIndexRouteObject[\"action\"];\n hasErrorBoundary?: AgnosticNonIndexRouteObject[\"hasErrorBoundary\"];\n shouldRevalidate?: AgnosticNonIndexRouteObject[\"shouldRevalidate\"];\n handle?: AgnosticNonIndexRouteObject[\"handle\"];\n index?: false;\n children?: RouteObject[];\n element?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n ErrorBoundary?: React.ComponentType | null;\n lazy?: LazyRouteFunction;\n}\n\nexport type RouteObject = IndexRouteObject | NonIndexRouteObject;\n\nexport type DataRouteObject = RouteObject & {\n children?: DataRouteObject[];\n id: string;\n};\n\nexport interface RouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends RouteObject = RouteObject\n> extends AgnosticRouteMatch {}\n\nexport interface DataRouteMatch extends RouteMatch {}\n\nexport interface DataRouterContextObject extends NavigationContextObject {\n router: Router;\n staticContext?: StaticHandlerContext;\n}\n\nexport const DataRouterContext =\n React.createContext(null);\nif (__DEV__) {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nexport const DataRouterStateContext = React.createContext<\n Router[\"state\"] | null\n>(null);\nif (__DEV__) {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nexport const AwaitContext = React.createContext(null);\nif (__DEV__) {\n AwaitContext.displayName = \"Await\";\n}\n\nexport interface NavigateOptions {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n relative?: RelativeRoutingType;\n unstable_viewTransition?: boolean;\n}\n\n/**\n * A Navigator is a \"location changer\"; it's how you get to different locations.\n *\n * Every history instance conforms to the Navigator interface, but the\n * distinction is useful primarily when it comes to the low-level `` API\n * where both the location and a navigator must be provided separately in order\n * to avoid \"tearing\" that may occur in a suspense-enabled app if the action\n * and/or location were to be read directly from the history instance.\n */\nexport interface Navigator {\n createHref: History[\"createHref\"];\n // Optional for backwards-compat with Router/HistoryRouter usage (edge case)\n encodeLocation?: History[\"encodeLocation\"];\n go: History[\"go\"];\n push(to: To, state?: any, opts?: NavigateOptions): void;\n replace(to: To, state?: any, opts?: NavigateOptions): void;\n}\n\ninterface NavigationContextObject {\n basename: string;\n navigator: Navigator;\n static: boolean;\n}\n\nexport const NavigationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n NavigationContext.displayName = \"Navigation\";\n}\n\ninterface LocationContextObject {\n location: Location;\n navigationType: NavigationType;\n}\n\nexport const LocationContext = React.createContext(\n null!\n);\n\nif (__DEV__) {\n LocationContext.displayName = \"Location\";\n}\n\nexport interface RouteContextObject {\n outlet: React.ReactElement | null;\n matches: RouteMatch[];\n isDataRoute: boolean;\n}\n\nexport const RouteContext = React.createContext({\n outlet: null,\n matches: [],\n isDataRoute: false,\n});\n\nif (__DEV__) {\n RouteContext.displayName = \"Route\";\n}\n\nexport const RouteErrorContext = React.createContext(null);\n\nif (__DEV__) {\n RouteErrorContext.displayName = \"RouteError\";\n}\n","import * as React from \"react\";\nimport type {\n Blocker,\n BlockerFunction,\n Location,\n ParamParseKey,\n Params,\n Path,\n PathMatch,\n PathPattern,\n RelativeRoutingType,\n Router as RemixRouter,\n RevalidationState,\n To,\n UIMatch,\n} from \"@remix-run/router\";\nimport {\n IDLE_BLOCKER,\n Action as NavigationType,\n UNSAFE_convertRouteMatchToUiMatch as convertRouteMatchToUiMatch,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_invariant as invariant,\n isRouteErrorResponse,\n joinPaths,\n matchPath,\n matchRoutes,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\n\nimport type {\n DataRouteMatch,\n NavigateOptions,\n RouteContextObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n RouteErrorContext,\n} from \"./context\";\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\nexport function useHref(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): string {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useHref() may be used only in the context of a component.`\n );\n\n let { basename, navigator } = React.useContext(NavigationContext);\n let { hash, pathname, search } = useResolvedPath(to, { relative });\n\n let joinedPathname = pathname;\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n if (basename !== \"/\") {\n joinedPathname =\n pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({ pathname: joinedPathname, search, hash });\n}\n\n/**\n * Returns true if this component is a descendant of a ``.\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\nexport function useInRouterContext(): boolean {\n return React.useContext(LocationContext) != null;\n}\n\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\nexport function useLocation(): Location {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useLocation() may be used only in the context of a component.`\n );\n\n return React.useContext(LocationContext).location;\n}\n\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\nexport function useNavigationType(): NavigationType {\n return React.useContext(LocationContext).navigationType;\n}\n\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * ``.\n *\n * @see https://reactrouter.com/hooks/use-match\n */\nexport function useMatch<\n ParamKey extends ParamParseKey,\n Path extends string\n>(pattern: PathPattern | Path): PathMatch | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useMatch() may be used only in the context of a component.`\n );\n\n let { pathname } = useLocation();\n return React.useMemo(\n () => matchPath(pattern, pathname),\n [pathname, pattern]\n );\n}\n\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\nexport interface NavigateFunction {\n (to: To, options?: NavigateOptions): void;\n (delta: number): void;\n}\n\nconst navigateEffectWarning =\n `You should call navigate() in a React.useEffect(), not when ` +\n `your component is first rendered.`;\n\n// Mute warnings for calls to useNavigate in SSR environments\nfunction useIsomorphicLayoutEffect(\n cb: Parameters[0]\n) {\n let isStatic = React.useContext(NavigationContext).static;\n if (!isStatic) {\n // We should be able to get rid of this once react 18.3 is released\n // See: https://github.com/facebook/react/pull/26395\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useLayoutEffect(cb);\n }\n}\n\n/**\n * Returns an imperative method for changing the location. Used by ``s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nexport function useNavigate(): NavigateFunction {\n let { isDataRoute } = React.useContext(RouteContext);\n // Conditional usage is OK here because the usage of a data router is static\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return isDataRoute ? useNavigateStable() : useNavigateUnstable();\n}\n\nfunction useNavigateUnstable(): NavigateFunction {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useNavigate() may be used only in the context of a component.`\n );\n\n let dataRouterContext = React.useContext(DataRouterContext);\n let { basename, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our history listener yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n options.relative === \"path\"\n );\n\n // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history (but only if we're not in a data router,\n // otherwise it'll prepend the basename inside of the router).\n // If this is a root navigation, then we navigate to the raw basename\n // which allows the basename to have full control over the presence of a\n // trailing slash on root links\n if (dataRouterContext == null && basename !== \"/\") {\n path.pathname =\n path.pathname === \"/\"\n ? basename\n : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(\n path,\n options.state,\n options\n );\n },\n [\n basename,\n navigator,\n routePathnamesJson,\n locationPathname,\n dataRouterContext,\n ]\n );\n\n return navigate;\n}\n\nconst OutletContext = React.createContext(null);\n\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\nexport function useOutletContext(): Context {\n return React.useContext(OutletContext) as Context;\n}\n\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by `` to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\nexport function useOutlet(context?: unknown): React.ReactElement | null {\n let outlet = React.useContext(RouteContext).outlet;\n if (outlet) {\n return (\n {outlet}\n );\n }\n return outlet;\n}\n\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\nexport function useParams<\n ParamsOrKey extends string | Record = string\n>(): Readonly<\n [ParamsOrKey] extends [string] ? Params : Partial\n> {\n let { matches } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? (routeMatch.params as any) : {};\n}\n\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\nexport function useResolvedPath(\n to: To,\n { relative }: { relative?: RelativeRoutingType } = {}\n): Path {\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getPathContributingMatches(matches).map((match) => match.pathnameBase)\n );\n\n return React.useMemo(\n () =>\n resolveTo(\n to,\n JSON.parse(routePathnamesJson),\n locationPathname,\n relative === \"path\"\n ),\n [to, routePathnamesJson, locationPathname, relative]\n );\n}\n\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an `` to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\nexport function useRoutes(\n routes: RouteObject[],\n locationArg?: Partial | string\n): React.ReactElement | null {\n return useRoutesImpl(routes, locationArg);\n}\n\n// Internal implementation with accept optional param for RouterProvider usage\nexport function useRoutesImpl(\n routes: RouteObject[],\n locationArg?: Partial | string,\n dataRouterState?: RemixRouter[\"state\"]\n): React.ReactElement | null {\n invariant(\n useInRouterContext(),\n // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n `useRoutes() may be used only in the context of a component.`\n );\n\n let { navigator } = React.useContext(NavigationContext);\n let { matches: parentMatches } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (__DEV__) {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = (parentRoute && parentRoute.path) || \"\";\n warningOnce(\n parentPathname,\n !parentRoute || parentPath.endsWith(\"*\"),\n `You rendered descendant (or called \\`useRoutes()\\`) at ` +\n `\"${parentPathname}\" (under ) but the ` +\n `parent route path has no trailing \"*\". This means if you navigate ` +\n `deeper, the parent won't match anymore and therefore the child ` +\n `routes will never render.\\n\\n` +\n `Please change the parent to .`\n );\n }\n\n let locationFromContext = useLocation();\n\n let location;\n if (locationArg) {\n let parsedLocationArg =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n invariant(\n parentPathnameBase === \"/\" ||\n parsedLocationArg.pathname?.startsWith(parentPathnameBase),\n `When overriding the location using \\`\\` or \\`useRoutes(routes, location)\\`, ` +\n `the location pathname must begin with the portion of the URL pathname that was ` +\n `matched by all parent routes. The current pathname base is \"${parentPathnameBase}\" ` +\n `but pathname \"${parsedLocationArg.pathname}\" was given in the \\`location\\` prop.`\n );\n\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname =\n parentPathnameBase === \"/\"\n ? pathname\n : pathname.slice(parentPathnameBase.length) || \"/\";\n\n let matches = matchRoutes(routes, { pathname: remainingPathname });\n\n if (__DEV__) {\n warning(\n parentRoute || matches != null,\n `No routes matched location \"${location.pathname}${location.search}${location.hash}\" `\n );\n\n warning(\n matches == null ||\n matches[matches.length - 1].route.element !== undefined ||\n matches[matches.length - 1].route.Component !== undefined,\n `Matched leaf route at location \"${location.pathname}${location.search}${location.hash}\" ` +\n `does not have an element or Component. This means it will render an with a ` +\n `null value by default resulting in an \"empty\" page.`\n );\n }\n\n let renderedMatches = _renderMatches(\n matches &&\n matches.map((match) =>\n Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathname).pathname\n : match.pathname,\n ]),\n pathnameBase:\n match.pathnameBase === \"/\"\n ? parentPathnameBase\n : joinPaths([\n parentPathnameBase,\n // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation\n ? navigator.encodeLocation(match.pathnameBase).pathname\n : match.pathnameBase,\n ]),\n })\n ),\n parentMatches,\n dataRouterState\n );\n\n // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n if (locationArg && renderedMatches) {\n return (\n \n {renderedMatches}\n \n );\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorComponent() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error)\n ? `${error.status} ${error.statusText}`\n : error instanceof Error\n ? error.message\n : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = { padding: \"0.5rem\", backgroundColor: lightgrey };\n let codeStyles = { padding: \"2px 4px\", backgroundColor: lightgrey };\n\n let devInfo = null;\n if (__DEV__) {\n console.error(\n \"Error handled by React Router default ErrorBoundary:\",\n error\n );\n\n devInfo = (\n <>\n

💿 Hey developer 👋

\n

\n You can provide a way better UX than this when your app throws errors\n by providing your own ErrorBoundary or{\" \"}\n errorElement prop on your route.\n

\n \n );\n }\n\n return (\n <>\n

Unexpected Application Error!

\n

{message}

\n {stack ?
{stack}
: null}\n {devInfo}\n \n );\n}\n\nconst defaultErrorElement = ;\n\ntype RenderErrorBoundaryProps = React.PropsWithChildren<{\n location: Location;\n revalidation: RevalidationState;\n error: any;\n component: React.ReactNode;\n routeContext: RouteContextObject;\n}>;\n\ntype RenderErrorBoundaryState = {\n location: Location;\n revalidation: RevalidationState;\n error: any;\n};\n\nexport class RenderErrorBoundary extends React.Component<\n RenderErrorBoundaryProps,\n RenderErrorBoundaryState\n> {\n constructor(props: RenderErrorBoundaryProps) {\n super(props);\n this.state = {\n location: props.location,\n revalidation: props.revalidation,\n error: props.error,\n };\n }\n\n static getDerivedStateFromError(error: any) {\n return { error: error };\n }\n\n static getDerivedStateFromProps(\n props: RenderErrorBoundaryProps,\n state: RenderErrorBoundaryState\n ) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (\n state.location !== props.location ||\n (state.revalidation !== \"idle\" && props.revalidation === \"idle\")\n ) {\n return {\n error: props.error,\n location: props.location,\n revalidation: props.revalidation,\n };\n }\n\n // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n return {\n error: props.error || state.error,\n location: state.location,\n revalidation: props.revalidation || state.revalidation,\n };\n }\n\n componentDidCatch(error: any, errorInfo: any) {\n console.error(\n \"React Router caught the following error during render\",\n error,\n errorInfo\n );\n }\n\n render() {\n return this.state.error ? (\n \n \n \n ) : (\n this.props.children\n );\n }\n}\n\ninterface RenderedRouteProps {\n routeContext: RouteContextObject;\n match: RouteMatch;\n children: React.ReactNode | null;\n}\n\nfunction RenderedRoute({ routeContext, match, children }: RenderedRouteProps) {\n let dataRouterContext = React.useContext(DataRouterContext);\n\n // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n if (\n dataRouterContext &&\n dataRouterContext.static &&\n dataRouterContext.staticContext &&\n (match.route.errorElement || match.route.ErrorBoundary)\n ) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return (\n \n {children}\n \n );\n}\n\nexport function _renderMatches(\n matches: RouteMatch[] | null,\n parentMatches: RouteMatch[] = [],\n dataRouterState: RemixRouter[\"state\"] | null = null\n): React.ReactElement | null {\n if (matches == null) {\n if (dataRouterState?.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches as DataRouteMatch[];\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches;\n\n // If we have data errors, trim matches to the highest error boundary\n let errors = dataRouterState?.errors;\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(\n (m) => m.route.id && errors?.[m.route.id]\n );\n invariant(\n errorIndex >= 0,\n `Could not find a matching route for errors on route IDs: ${Object.keys(\n errors\n ).join(\",\")}`\n );\n renderedMatches = renderedMatches.slice(\n 0,\n Math.min(renderedMatches.length, errorIndex + 1)\n );\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors?.[match.route.id] : null;\n // Only data routers handle errors\n let errorElement: React.ReactNode | null = null;\n if (dataRouterState) {\n errorElement = match.route.errorElement || defaultErrorElement;\n }\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n let getChildren = () => {\n let children: React.ReactNode;\n if (error) {\n children = errorElement;\n } else if (match.route.Component) {\n // Note: This is a de-optimized path since React won't re-use the\n // ReactElement since it's identity changes with each new\n // React.createElement call. We keep this so folks can use\n // `` in `` but generally `Component`\n // usage is only advised in `RouterProvider` when we can convert it to\n // `element` ahead of time.\n children = ;\n } else if (match.route.element) {\n children = match.route.element;\n } else {\n children = outlet;\n }\n return (\n \n );\n };\n // Only wrap in an error boundary within data router usages when we have an\n // ErrorBoundary/errorElement on this route. Otherwise let it bubble up to\n // an ancestor ErrorBoundary/errorElement\n return dataRouterState &&\n (match.route.ErrorBoundary || match.route.errorElement || index === 0) ? (\n \n ) : (\n getChildren()\n );\n }, null as React.ReactElement | null);\n}\n\nenum DataRouterHook {\n UseBlocker = \"useBlocker\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n}\n\nenum DataRouterStateHook {\n UseBlocker = \"useBlocker\",\n UseLoaderData = \"useLoaderData\",\n UseActionData = \"useActionData\",\n UseRouteError = \"useRouteError\",\n UseNavigation = \"useNavigation\",\n UseRouteLoaderData = \"useRouteLoaderData\",\n UseMatches = \"useMatches\",\n UseRevalidator = \"useRevalidator\",\n UseNavigateStable = \"useNavigate\",\n UseRouteId = \"useRouteId\",\n}\n\nfunction getDataRouterConsoleError(\n hookName: DataRouterHook | DataRouterStateHook\n) {\n return `${hookName} must be used within a data router. See https://reactrouter.com/routers/picking-a-router.`;\n}\n\nfunction useDataRouterContext(hookName: DataRouterHook) {\n let ctx = React.useContext(DataRouterContext);\n invariant(ctx, getDataRouterConsoleError(hookName));\n return ctx;\n}\n\nfunction useDataRouterState(hookName: DataRouterStateHook) {\n let state = React.useContext(DataRouterStateContext);\n invariant(state, getDataRouterConsoleError(hookName));\n return state;\n}\n\nfunction useRouteContext(hookName: DataRouterStateHook) {\n let route = React.useContext(RouteContext);\n invariant(route, getDataRouterConsoleError(hookName));\n return route;\n}\n\n// Internal version with hookName-aware debugging\nfunction useCurrentRouteId(hookName: DataRouterStateHook) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n invariant(\n thisRoute.route.id,\n `${hookName} can only be used on routes that contain a unique \"id\"`\n );\n return thisRoute.route.id;\n}\n\n/**\n * Returns the ID for the nearest contextual route\n */\nexport function useRouteId() {\n return useCurrentRouteId(DataRouterStateHook.UseRouteId);\n}\n\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\nexport function useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\nexport function useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return React.useMemo(\n () => ({\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation,\n }),\n [dataRouterContext.router.revalidate, state.revalidation]\n );\n}\n\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\nexport function useMatches(): UIMatch[] {\n let { matches, loaderData } = useDataRouterState(\n DataRouterStateHook.UseMatches\n );\n return React.useMemo(\n () => matches.map((m) => convertRouteMatchToUiMatch(m, loaderData)),\n [matches, loaderData]\n );\n}\n\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\nexport function useLoaderData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\n `You cannot \\`useLoaderData\\` in an errorElement (routeId: ${routeId})`\n );\n return undefined;\n }\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the loaderData for the given routeId\n */\nexport function useRouteLoaderData(routeId: string): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n\n/**\n * Returns the action data for the nearest ancestor Route action\n */\nexport function useActionData(): unknown {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n\n let route = React.useContext(RouteContext);\n invariant(route, `useActionData must be used inside a RouteContext`);\n\n return Object.values(state?.actionData || {})[0];\n}\n\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * ErrorBoundary/errorElement to display a proper error message.\n */\nexport function useRouteError(): unknown {\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError);\n\n // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n if (error) {\n return error;\n }\n\n // Otherwise look for errors from our data router state\n return state.errors?.[routeId];\n}\n\n/**\n * Returns the happy-path data from the nearest ancestor `` value\n */\nexport function useAsyncValue(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._data;\n}\n\n/**\n * Returns the error from the nearest ancestor `` value\n */\nexport function useAsyncError(): unknown {\n let value = React.useContext(AwaitContext);\n return value?._error;\n}\n\nlet blockerId = 0;\n\n/**\n * Allow the application to block navigations within the SPA and present the\n * user a confirmation dialog to confirm the navigation. Mostly used to avoid\n * using half-filled form data. This does not handle hard-reloads or\n * cross-origin navigations.\n */\nexport function useBlocker(shouldBlock: boolean | BlockerFunction): Blocker {\n let { router, basename } = useDataRouterContext(DataRouterHook.UseBlocker);\n let state = useDataRouterState(DataRouterStateHook.UseBlocker);\n\n let [blockerKey, setBlockerKey] = React.useState(\"\");\n let blockerFunction = React.useCallback(\n (arg) => {\n if (typeof shouldBlock !== \"function\") {\n return !!shouldBlock;\n }\n if (basename === \"/\") {\n return shouldBlock(arg);\n }\n\n // If they provided us a function and we've got an active basename, strip\n // it from the locations we expose to the user to match the behavior of\n // useLocation\n let { currentLocation, nextLocation, historyAction } = arg;\n return shouldBlock({\n currentLocation: {\n ...currentLocation,\n pathname:\n stripBasename(currentLocation.pathname, basename) ||\n currentLocation.pathname,\n },\n nextLocation: {\n ...nextLocation,\n pathname:\n stripBasename(nextLocation.pathname, basename) ||\n nextLocation.pathname,\n },\n historyAction,\n });\n },\n [basename, shouldBlock]\n );\n\n // This effect is in charge of blocker key assignment and deletion (which is\n // tightly coupled to the key)\n React.useEffect(() => {\n let key = String(++blockerId);\n setBlockerKey(key);\n return () => router.deleteBlocker(key);\n }, [router]);\n\n // This effect handles assigning the blockerFunction. This is to handle\n // unstable blocker function identities, and happens only after the prior\n // effect so we don't get an orphaned blockerFunction in the router with a\n // key of \"\". Until then we just have the IDLE_BLOCKER.\n React.useEffect(() => {\n if (blockerKey !== \"\") {\n router.getBlocker(blockerKey, blockerFunction);\n }\n }, [router, blockerKey, blockerFunction]);\n\n // Prefer the blocker from `state` not `router.state` since DataRouterContext\n // is memoized so this ensures we update on blocker state updates\n return blockerKey && state.blockers.has(blockerKey)\n ? state.blockers.get(blockerKey)!\n : IDLE_BLOCKER;\n}\n\n/**\n * Stable version of useNavigate that is used when we are in the context of\n * a RouterProvider.\n */\nfunction useNavigateStable(): NavigateFunction {\n let { router } = useDataRouterContext(DataRouterHook.UseNavigateStable);\n let id = useCurrentRouteId(DataRouterStateHook.UseNavigateStable);\n\n let activeRef = React.useRef(false);\n useIsomorphicLayoutEffect(() => {\n activeRef.current = true;\n });\n\n let navigate: NavigateFunction = React.useCallback(\n (to: To | number, options: NavigateOptions = {}) => {\n warning(activeRef.current, navigateEffectWarning);\n\n // Short circuit here since if this happens on first render the navigate\n // is useless because we haven't wired up our router subscriber yet\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n router.navigate(to);\n } else {\n router.navigate(to, { fromRouteId: id, ...options });\n }\n },\n [router, id]\n );\n\n return navigate;\n}\n\nconst alreadyWarned: Record = {};\n\nfunction warningOnce(key: string, cond: boolean, message: string) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n warning(false, message);\n }\n}\n","import type {\n InitialEntry,\n LazyRouteFunction,\n Location,\n MemoryHistory,\n RelativeRoutingType,\n Router as RemixRouter,\n RouterState,\n RouterSubscriber,\n To,\n TrackedPromise,\n} from \"@remix-run/router\";\nimport {\n AbortedDeferredError,\n Action as NavigationType,\n createMemoryHistory,\n UNSAFE_getPathContributingMatches as getPathContributingMatches,\n UNSAFE_invariant as invariant,\n parsePath,\n resolveTo,\n stripBasename,\n UNSAFE_warning as warning,\n} from \"@remix-run/router\";\nimport * as React from \"react\";\n\nimport type {\n DataRouteObject,\n IndexRouteObject,\n Navigator,\n NonIndexRouteObject,\n RouteMatch,\n RouteObject,\n} from \"./context\";\nimport {\n AwaitContext,\n DataRouterContext,\n DataRouterStateContext,\n LocationContext,\n NavigationContext,\n RouteContext,\n} from \"./context\";\nimport {\n _renderMatches,\n useAsyncValue,\n useInRouterContext,\n useLocation,\n useNavigate,\n useOutlet,\n useRoutes,\n useRoutesImpl,\n} from \"./hooks\";\n\nexport interface FutureConfig {\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n future?: Partial;\n}\n\n/**\n Webpack + React 17 fails to compile on any of the following because webpack\n complains that `startTransition` doesn't exist in `React`:\n * import { startTransition } from \"react\"\n * import * as React from from \"react\";\n \"startTransition\" in React ? React.startTransition(() => setState()) : setState()\n * import * as React from from \"react\";\n \"startTransition\" in React ? React[\"startTransition\"](() => setState()) : setState()\n\n Moving it to a constant such as the following solves the Webpack/React 17 issue:\n * import * as React from from \"react\";\n const START_TRANSITION = \"startTransition\";\n START_TRANSITION in React ? React[START_TRANSITION](() => setState()) : setState()\n\n However, that introduces webpack/terser minification issues in production builds\n in React 18 where minification/obfuscation ends up removing the call of\n React.startTransition entirely from the first half of the ternary. Grabbing\n this exported reference once up front resolves that issue.\n\n See https://github.com/remix-run/react-router/issues/10579\n*/\nconst START_TRANSITION = \"startTransition\";\nconst startTransitionImpl = React[START_TRANSITION];\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nexport function RouterProvider({\n fallbackElement,\n router,\n future,\n}: RouterProviderProps): React.ReactElement {\n let [state, setStateImpl] = React.useState(router.state);\n let { v7_startTransition } = future || {};\n\n let setState = React.useCallback(\n (newState: RouterState) => {\n if (v7_startTransition && startTransitionImpl) {\n startTransitionImpl(() => setStateImpl(newState));\n } else {\n setStateImpl(newState);\n }\n },\n [setStateImpl, v7_startTransition]\n );\n\n // Need to use a layout effect here so we are subscribed early enough to\n // pick up on any render-driven redirects/navigations (useEffect/)\n React.useLayoutEffect(() => router.subscribe(setState), [router, setState]);\n\n let navigator = React.useMemo((): Navigator => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: (n) => router.navigate(n),\n push: (to, state, opts) =>\n router.navigate(to, {\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n replace: (to, state, opts) =>\n router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts?.preventScrollReset,\n }),\n };\n }, [router]);\n\n let basename = router.basename || \"/\";\n\n let dataRouterContext = React.useMemo(\n () => ({\n router,\n navigator,\n static: false,\n basename,\n }),\n [router, navigator, basename]\n );\n\n // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a