{"version":3,"file":"static/js/main.433d9a0a.js","mappings":"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","sources":["../node_modules/classnames/index.js","../node_modules/events/events.js","../node_modules/invariant/browser.js","../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/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","../node_modules/warning/warning.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/global","../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","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","services/api.ts","services/apiService.ts","components/race/Race.tsx","components/race/Races.tsx","components/loader/Loading.tsx","interfaces/enumSettings.ts","../node_modules/@microsoft/signalr/src/HubConnection.ts","services/eventHandler.ts","services/signalrConnection.ts","services/RaceProvider.tsx","components/results/ResultHeader.tsx","tools/Clock.tsx","components/results/ResultFooter.tsx","../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","components/results/resultviews/resultmenu/ResultMenu.tsx","../node_modules/dom-helpers/esm/querySelectorAll.js","../node_modules/dom-helpers/esm/canUseDOM.js","../node_modules/dom-helpers/esm/addEventListener.js","../node_modules/@restart/ui/node_modules/uncontrollable/lib/esm/index.js","../node_modules/@restart/hooks/esm/useCommittedRef.js","../node_modules/@restart/hooks/esm/useEventCallback.js","../node_modules/@restart/ui/esm/DropdownContext.js","../node_modules/dequal/dist/index.mjs","../node_modules/@restart/hooks/esm/useSafeState.js","../node_modules/@restart/hooks/esm/useMounted.js","../node_modules/@popperjs/core/lib/utils/getBasePlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindow.js","../node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","../node_modules/@popperjs/core/lib/utils/math.js","../node_modules/@popperjs/core/lib/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","../node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","../node_modules/@popperjs/core/lib/dom-utils/contains.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","../node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","../node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","../node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","../node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","../node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","../node_modules/@popperjs/core/lib/utils/within.js","../node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","../node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","../node_modules/@popperjs/core/lib/utils/expandToHashMap.js","../node_modules/@popperjs/core/lib/enums.js","../node_modules/@popperjs/core/lib/modifiers/arrow.js","../node_modules/@popperjs/core/lib/utils/getVariation.js","../node_modules/@popperjs/core/lib/modifiers/computeStyles.js","../node_modules/@popperjs/core/lib/modifiers/eventListeners.js","../node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","../node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","../node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","../node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","../node_modules/@popperjs/core/lib/utils/rectToClientRect.js","../node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","../node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","../node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","../node_modules/@popperjs/core/lib/utils/computeOffsets.js","../node_modules/@popperjs/core/lib/utils/detectOverflow.js","../node_modules/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@popperjs/core/lib/modifiers/hide.js","../node_modules/@popperjs/core/lib/modifiers/offset.js","../node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","../node_modules/@popperjs/core/lib/utils/getAltAxis.js","../node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","../node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","../node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","../node_modules/@popperjs/core/lib/utils/orderModifiers.js","../node_modules/@popperjs/core/lib/utils/debounce.js","../node_modules/@popperjs/core/lib/createPopper.js","../node_modules/@popperjs/core/lib/utils/mergeByName.js","../node_modules/@restart/ui/esm/popper.js","../node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","../node_modules/@restart/ui/esm/usePopper.js","../node_modules/dom-helpers/esm/contains.js","../node_modules/dom-helpers/esm/removeEventListener.js","../node_modules/dom-helpers/esm/listen.js","../node_modules/@restart/ui/esm/useClickOutside.js","../node_modules/dom-helpers/esm/ownerDocument.js","../node_modules/@restart/ui/esm/mergeOptionsWithPopperConfig.js","../node_modules/@restart/ui/esm/DropdownMenu.js","../node_modules/@restart/hooks/esm/useCallbackRef.js","../packages/@react-aria/ssr/src/SSRProvider.tsx","../node_modules/@restart/ui/esm/DropdownToggle.js","../node_modules/@restart/ui/esm/SelectableContext.js","../node_modules/@restart/ui/esm/NavContext.js","../node_modules/@restart/ui/esm/Button.js","../node_modules/@restart/ui/esm/DataKey.js","../node_modules/@restart/ui/esm/DropdownItem.js","../node_modules/@restart/ui/esm/useWindow.js","../node_modules/@restart/ui/esm/Dropdown.js","../node_modules/@restart/hooks/esm/useForceUpdate.js","../node_modules/@restart/hooks/esm/usePrevious.js","../node_modules/@restart/hooks/esm/useEventListener.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/uncontrollable/lib/esm/utils.js","../node_modules/uncontrollable/lib/esm/hook.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","../node_modules/react-bootstrap/esm/DropdownContext.js","../node_modules/react-bootstrap/esm/ThemeProvider.js","../node_modules/react-bootstrap/esm/DropdownDivider.js","../node_modules/react-bootstrap/esm/DropdownHeader.js","../node_modules/@restart/hooks/esm/useIsomorphicEffect.js","../node_modules/@restart/hooks/esm/useResizeObserver.js","../node_modules/@restart/ui/esm/Anchor.js","../node_modules/react-bootstrap/esm/DropdownItem.js","../node_modules/react-bootstrap/esm/DropdownItemText.js","../node_modules/@restart/hooks/esm/useMergedRefs.js","../node_modules/react-bootstrap/esm/InputGroupContext.js","../node_modules/react-bootstrap/esm/NavbarContext.js","../node_modules/react-bootstrap/esm/useWrappedRefWithWarning.js","../node_modules/react-bootstrap/esm/DropdownMenu.js","../node_modules/react-bootstrap/esm/Button.js","../node_modules/react-bootstrap/esm/DropdownToggle.js","../node_modules/react-bootstrap/esm/Dropdown.js","components/results/resultviews/resultmenu/ResultMenuGroup.tsx","components/results/resultviews/resultmenu/ResultMenus.tsx","components/results/resultviews/ResultTitle.tsx","components/results/resultviews/resulttables/ResultTableCommonRow.tsx","services/checkMgren.ts","components/results/resultviews/resulttables/resultable_four/ResultTableHighRow.tsx","components/results/resultviews/resulttables/resulttable_one/ResultTableRunningRow.tsx","components/results/resultviews/resulttables/ResultTableHeaderCommon.tsx","components/results/resultviews/resulttables/resultable_four/ResultTableHeaderHigh.tsx","components/results/resultviews/resulttables/resulttable_one/ResultTableHeaderRunning.tsx","components/results/resultviews/resulttables/resulttable_second/ResultTableThrowRow.tsx","components/results/resultviews/resulttables/resulttable_second/ResultTableHeaderThrow.tsx","components/results/resultviews/resulttables/resulttable_third/ResultTableJumpRow.tsx","components/results/resultviews/resulttables/resulttable_third/ResultTableHeaderJump.tsx","components/results/resultviews/RollingClock.tsx","components/results/resultviews/resulttables/resulttable_seven/ResultTableHeaderTeam.tsx","components/results/resultviews/resulttables/resulttable_seven/ResultTableTeam.tsx","components/results/resultviews/resulttables/resulttable_six/ResultTableHeaderMulti.tsx","components/results/resultviews/resulttables/resulttable_six/ResultTableMulti.tsx","components/results/resultviews/resulttables/resulttable_five/ResultTableRelayRow.tsx","components/results/resultviews/resulttables/resulttable_five/ResultTableHeaderRelayRow.tsx","components/results/resultviews/Result.tsx","components/results/resultviews/ResultBox.tsx","components/results/ResultPage.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router-dom/index.tsx","LiveApp.tsx","App.tsx","reportWebVitals.ts","index.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\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'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","//! 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>>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","/**\n * Copyright (c) 2014-present, Facebook, Inc.\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'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\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 + \".\" + \"80910a25\" + \".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__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"cs-elite-live-athletic:\";\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[\"webpackChunkcs_elite_live_athletic\"] = self[\"webpackChunkcs_elite_live_athletic\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n if (!hasJSONContentType) {\n return data;\n }\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.2\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","import axios from 'axios';\r\n\r\n// export const apiURL:string = 'https://localhost:7021/api/AthleticsLive/';\r\nexport const apiURL:string = 'http://liveapi2.elitetiming.se/api/AthleticsLive/';\r\n\r\nconst instance = axios.create({\r\n baseURL: apiURL,\r\n headers: {\r\n 'Content-Type': 'application/json',\r\n },\r\n // ... any other axios settings\r\n});\r\n\r\nexport default instance;\r\n","\r\nimport axios from './api';\r\n\r\nconst apiKey:string = \"bbe7-d64d2da66c3a\";\r\n\r\ninterface ApiService {\r\n get(url: string, params?: object): Promise;\r\n post(url: string, data?: object): Promise;\r\n // ... add put, delete, etc. if needed\r\n}\r\n\r\nconst apiService: ApiService = {\r\n async get(url:string, params = {}) {\r\n const response = await axios.get(url.replace(\"#apikey#\",\"bbe7-d64d2da66c3a\"), { params });\r\n return response.data;\r\n },\r\n\r\n async post(url:string, data = {}) {\r\n const response = await axios.post(url, data);\r\n return response.data;\r\n },\r\n\r\n // ... implement put, delete, etc. \r\n};\r\n\r\nexport default apiService;\r\n","import moment from 'moment';\r\nimport React from 'react'\r\nimport { RaceAthleticsDTO } from '../../interfaces/RaceAthleticsDTO';\r\ninterface Props{\r\n race:RaceAthleticsDTO\r\n}\r\n\r\nexport const Race = ({race}:Props) => {\r\n console.log(race);\r\n const isToday = (): boolean => {\r\n if (\r\n moment(race.StartTime).format(\"yyyy-MM-DD\") ==\r\n moment().format(\"yyyy-MM-DD\")\r\n ) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n return (\r\n \r\n \r\n {isToday() ? LIVE : <> }\r\n \r\n
\r\n
\r\n {race.Name}\r\n
\r\n
\r\n {race.StartTime === null ? null : moment(race.StartTime).format(\"yyyy-MM-DD\")}\r\n {race.Place}\r\n
\r\n
\r\n \r\n );\r\n}\r\n","import React, { useEffect, useState } from 'react'\r\nimport { RaceAthleticsDTO } from '../../interfaces/RaceAthleticsDTO';\r\nimport apiService from '../../services/apiService';\r\nimport { Race } from './Race';\r\nimport './racestyle.css';\r\n\r\nconst Races = () => {\r\n const [races, setRaces] = useState([]);\r\n useEffect(() => { \r\n const fetchData = async () => {\r\n try {\r\n const result = await apiService.get(\r\n \"/GetRaces\"\r\n );\r\n // console.log(JSON.stringify(result));\r\n const sortedResult = result.sort((a, b) => new Date(a.StartTime).getTime() - new Date(b.StartTime).getTime());\r\n \r\n setRaces(sortedResult);\r\n \r\n document.title = 'CS-Elite: Choose race';\r\n \r\n } catch (error) {\r\n console.error(\"Error fetching data\", error);\r\n }\r\n };\r\n fetchData();\r\n }, []);\r\n\r\n \r\n return (
\r\n
\r\n
\r\n Choose competion\r\n\r\n
\r\n
\r\n {races.length == 0 ?
\r\n
: races.slice(0).reverse().map((rac:RaceAthleticsDTO,index) => (\r\n // \r\n \r\n ) )}\r\n
\r\n
\r\n
);\r\n}\r\n\r\nexport default Races","import React from \"react\";\r\nimport \"./loadingstyle.css\"\r\nconst Loading = () => {\r\n\r\n return (
\r\n
\r\n\r\n
 
\r\n
\r\n\r\n
\r\n
Loading...
\r\n
\r\n
);\r\n}\r\nexport default Loading;","export enum resultViewMode{\r\n livemode = 1,\r\n resultmode = 11,\r\n\r\n}\r\nexport enum sportType{\r\n running = 1,\r\n jump_throw_nowind = 2,\r\n jump = 3,\r\n high_pole = 4\r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n\r\nimport { HandshakeProtocol, HandshakeRequestMessage, HandshakeResponseMessage } from \"./HandshakeProtocol\";\r\nimport { IConnection } from \"./IConnection\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { CancelInvocationMessage, CloseMessage, CompletionMessage, IHubProtocol, InvocationMessage, MessageType, StreamInvocationMessage, StreamItemMessage } from \"./IHubProtocol\";\r\nimport { ILogger, LogLevel } from \"./ILogger\";\r\nimport { IRetryPolicy } from \"./IRetryPolicy\";\r\nimport { IStreamResult } from \"./Stream\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nimport { MessageBuffer } from \"./MessageBuffer\";\r\n\r\nconst DEFAULT_TIMEOUT_IN_MS: number = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS: number = 15 * 1000;\r\nconst DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE = 100_000;\r\n\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport enum HubConnectionState {\r\n /** The hub connection is disconnected. */\r\n Disconnected = \"Disconnected\",\r\n /** The hub connection is connecting. */\r\n Connecting = \"Connecting\",\r\n /** The hub connection is connected. */\r\n Connected = \"Connected\",\r\n /** The hub connection is disconnecting. */\r\n Disconnecting = \"Disconnecting\",\r\n /** The hub connection is reconnecting. */\r\n Reconnecting = \"Reconnecting\",\r\n}\r\n\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n private readonly _cachedPingMessage: string | ArrayBuffer;\r\n // Needs to not start with _ for tests\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private readonly connection: IConnection;\r\n private readonly _logger: ILogger;\r\n private readonly _reconnectPolicy?: IRetryPolicy;\r\n private readonly _statefulReconnectBufferSize: number;\r\n private _protocol: IHubProtocol;\r\n private _handshakeProtocol: HandshakeProtocol;\r\n private _callbacks: { [invocationId: string]: (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => void };\r\n private _methods: { [name: string]: (((...args: any[]) => void) | ((...args: any[]) => any))[] };\r\n private _invocationId: number;\r\n private _messageBuffer?: MessageBuffer;\r\n\r\n private _closedCallbacks: ((error?: Error) => void)[];\r\n private _reconnectingCallbacks: ((error?: Error) => void)[];\r\n private _reconnectedCallbacks: ((connectionId?: string) => void)[];\r\n\r\n private _receivedHandshakeResponse: boolean;\r\n private _handshakeResolver!: (value?: PromiseLike<{}>) => void;\r\n private _handshakeRejecter!: (reason?: any) => void;\r\n private _stopDuringStartError?: Error;\r\n\r\n private _connectionState: HubConnectionState;\r\n // connectionStarted is tracked independently from connectionState, so we can check if the\r\n // connection ever did successfully transition from connecting to connected before disconnecting.\r\n private _connectionStarted: boolean;\r\n private _startPromise?: Promise;\r\n private _stopPromise?: Promise;\r\n private _nextKeepAlive: number = 0;\r\n\r\n // The type of these a) doesn't matter and b) varies when building in browser and node contexts\r\n // Since we're building the WebPack bundle directly from the TypeScript, this matters (previously\r\n // we built the bundle from the compiled JavaScript).\r\n private _reconnectDelayHandle?: any;\r\n private _timeoutHandle?: any;\r\n private _pingServerHandle?: any;\r\n\r\n private _freezeEventListener = () =>\r\n {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n\r\n /** The server timeout in milliseconds.\r\n *\r\n * If this timeout elapses without receiving any messages from the server, the connection will be terminated with an error.\r\n * The default timeout value is 30,000 milliseconds (30 seconds).\r\n */\r\n public serverTimeoutInMilliseconds: number;\r\n\r\n /** Default interval at which to ping the server.\r\n *\r\n * The default value is 15,000 milliseconds (15 seconds).\r\n * Allows the server to detect hard disconnects (like when a client unplugs their computer).\r\n * The ping will happen at most as often as the server pings.\r\n * If the server pings every 5 seconds, a value lower than 5 will ping every 5 seconds.\r\n */\r\n public keepAliveIntervalInMilliseconds: number;\r\n\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n public static create(\r\n connection: IConnection,\r\n logger: ILogger,\r\n protocol: IHubProtocol,\r\n reconnectPolicy?: IRetryPolicy,\r\n serverTimeoutInMilliseconds?: number,\r\n keepAliveIntervalInMilliseconds?: number,\r\n statefulReconnectBufferSize?: number): HubConnection {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy,\r\n serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize);\r\n }\r\n\r\n private constructor(\r\n connection: IConnection,\r\n logger: ILogger,\r\n protocol: IHubProtocol,\r\n reconnectPolicy?: IRetryPolicy,\r\n serverTimeoutInMilliseconds?: number,\r\n keepAliveIntervalInMilliseconds?: number,\r\n statefulReconnectBufferSize?: number) {\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n\r\n this.serverTimeoutInMilliseconds = serverTimeoutInMilliseconds ?? DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = keepAliveIntervalInMilliseconds ?? DEFAULT_PING_INTERVAL_IN_MS;\r\n\r\n this._statefulReconnectBufferSize = statefulReconnectBufferSize ?? DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE;\r\n\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n\r\n this.connection.onreceive = (data: any) => this._processIncomingData(data);\r\n this.connection.onclose = (error?: Error) => this._connectionClosed(error);\r\n\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state(): HubConnectionState {\r\n return this._connectionState;\r\n }\r\n\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId(): string | null {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl(): string {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url: string) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n\r\n this.connection.baseUrl = url;\r\n }\r\n\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n public start(): Promise {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n\r\n private async _startWithStateTransitions(): Promise {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n } catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n\r\n private async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n\r\n await this.connection.start(this._protocol.transferFormat);\r\n\r\n try {\r\n let version = this._protocol.version;\r\n if (!this.connection.features.reconnect) {\r\n // Stateful Reconnect starts with HubProtocol version 2, newer clients connecting to older servers will fail to connect due to\r\n // the handshake only supporting version 1, so we will try to send version 1 during the handshake to keep old servers working.\r\n version = 1;\r\n }\r\n\r\n const handshakeRequest: HandshakeRequestMessage = {\r\n protocol: this._protocol.name,\r\n version,\r\n };\r\n\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n\r\n await handshakePromise;\r\n\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n\r\n const useStatefulReconnect = this.connection.features.reconnect || false;\r\n if (useStatefulReconnect) {\r\n this._messageBuffer = new MessageBuffer(this._protocol, this.connection, this._statefulReconnectBufferSize);\r\n this.connection.features.disconnected = this._messageBuffer._disconnected.bind(this._messageBuffer);\r\n this.connection.features.resend = () => {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._resend();\r\n }\r\n }\r\n }\r\n\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n } catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n public async stop(): Promise {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this.connection.features.reconnect = false;\r\n\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n } catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n\r\n private _stopInternal(error?: Error): Promise {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise!;\r\n }\r\n\r\n const state = this._connectionState;\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n\r\n if (state === HubConnectionState.Connected) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._sendCloseMessage();\r\n }\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n\r\n private async _sendCloseMessage() {\r\n try {\r\n await this._sendWithProtocol(this._createCloseMessage());\r\n } catch {\r\n // Ignore, this is a best effort attempt to let the server know the client closed gracefully.\r\n }\r\n }\r\n\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n public stream(methodName: string, ...args: any[]): IStreamResult {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue: Promise;\r\n\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation: CancelInvocationMessage = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent: CompletionMessage | StreamItemMessage | null, error?: Error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n } else {\r\n subject.complete();\r\n }\r\n } else {\r\n subject.next((invocationEvent.item) as T);\r\n }\r\n }\r\n };\r\n\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n\r\n return subject;\r\n }\r\n\r\n private _sendMessage(message: any) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n private _sendWithProtocol(message: any) {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._send(message);\r\n } else {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n public send(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n\r\n this._launchStreams(streams, sendPromise);\r\n\r\n return sendPromise;\r\n }\r\n\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n public invoke(methodName: string, ...args: any[]): Promise {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId!] = (invocationEvent: StreamItemMessage | CompletionMessage | null, error?: Error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n } else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n } else {\r\n resolve(invocationEvent.result);\r\n }\r\n } else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId!];\r\n });\r\n\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n\r\n return p;\r\n }\r\n\r\n /** Registers a handler that will be invoked when the hub method with the specified method name is invoked.\r\n *\r\n * @param {string} methodName The name of the hub method to define.\r\n * @param {Function} newMethod The handler that will be raised when the hub method is invoked.\r\n */\r\n public on(methodName: string, newMethod: (...args: any[]) => any): void\r\n public on(methodName: string, newMethod: (...args: any[]) => void): void {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n\r\n this._methods[methodName].push(newMethod);\r\n }\r\n\r\n /** Removes all handlers for the specified hub method.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n */\r\n public off(methodName: string): void;\r\n\r\n /** Removes the specified handler for the specified hub method.\r\n *\r\n * You must pass the exact same Function instance as was previously passed to {@link @microsoft/signalr.HubConnection.on}. Passing a different instance (even if the function\r\n * body is the same) will not remove the handler.\r\n *\r\n * @param {string} methodName The name of the method to remove handlers for.\r\n * @param {Function} method The handler to remove. This must be the same Function instance as the one passed to {@link @microsoft/signalr.HubConnection.on}.\r\n */\r\n public off(methodName: string, method: (...args: any[]) => void): void;\r\n public off(methodName: string, method?: (...args: any[]) => void): void {\r\n if (!methodName) {\r\n return;\r\n }\r\n\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n } else {\r\n delete this._methods[methodName];\r\n }\r\n\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n public onclose(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n public onreconnecting(callback: (error?: Error) => void): void {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n public onreconnected(callback: (connectionId?: string) => void): void {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n\r\n private _processIncomingData(data: any) {\r\n this._cleanupTimeout();\r\n\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n\r\n for (const message of messages) {\r\n if (this._messageBuffer && !this._messageBuffer._shouldProcessMessage(message)) {\r\n // Don't process the message, we are either waiting for a SequenceMessage or received a duplicate message\r\n continue;\r\n }\r\n\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._invokeClientMethod(message);\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n } else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n\r\n break;\r\n }\r\n case MessageType.Ack:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._ack(message);\r\n }\r\n break;\r\n case MessageType.Sequence:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._resetSequence(message);\r\n }\r\n break;\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n\r\n this._resetTimeoutPeriod();\r\n }\r\n\r\n private _processHandshakeResponse(data: any): any {\r\n let responseMessage: HandshakeResponseMessage;\r\n let remainingData: any;\r\n\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n } catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n } else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n\r\n private _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n\r\n this._cleanupPingTimer();\r\n }\r\n\r\n private _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined)\r\n {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n } catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n private serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n\r\n private async _invokeClientMethod(invocationMessage: InvocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n } catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n } else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, `${exception}`, null);\r\n } else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, null, res);\r\n } else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId!, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n } else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n\r\n private _connectionClosed(error?: Error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n } else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n } else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n\r\n private _completeClose(error?: Error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (this._messageBuffer) {\r\n this._messageBuffer._dispose(error ?? new Error(\"Connection closed.\"));\r\n this._messageBuffer = undefined;\r\n }\r\n\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n\r\n private async _reconnect(error?: Error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n } else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay!);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n\r\n try {\r\n await this._startInternal();\r\n\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n\r\n return;\r\n } catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState as any === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n\r\n retryError = e instanceof Error ? e : new Error((e as any).toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n\r\n this._completeClose();\r\n }\r\n\r\n private _getNextRetryDelay(previousRetryCount: number, elapsedMilliseconds: number, retryReason: Error) {\r\n try {\r\n return this._reconnectPolicy!.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n\r\n private _cancelCallbacksWithError(error: Error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n } catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n\r\n private _cleanupPingTimer(): void {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n\r\n private _cleanupTimeout(): void {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n\r\n private _createInvocation(methodName: string, args: any[], nonblocking: boolean, streamIds: string[]): InvocationMessage {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n } else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n\r\n private _launchStreams(streams: IStreamResult[], promiseQueue: Promise): void {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message: string;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n } else if (err && err.toString) {\r\n message = err.toString();\r\n } else {\r\n message = \"Unknown error\";\r\n }\r\n\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n\r\n private _replaceStreamingParams(args: any[]): [IStreamResult[], string[]] {\r\n const streams: IStreamResult[] = [];\r\n const streamIds: string[] = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n\r\n return [streams, streamIds];\r\n }\r\n\r\n private _isObservable(arg: any): arg is IStreamResult {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n\r\n private _createStreamInvocation(methodName: string, args: any[], streamIds: string[]): StreamInvocationMessage {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n } else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n\r\n private _createCancelInvocation(id: string): CancelInvocationMessage {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n\r\n private _createStreamItemMessage(id: string, item: any): StreamItemMessage {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n\r\n private _createCompletionMessage(id: string, error?: any, result?: any): CompletionMessage {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n\r\n private _createCloseMessage(): CloseMessage {\r\n return { type: MessageType.Close };\r\n }\r\n}\r\n","import { EventEmitter } from 'events';\r\n\r\n\r\n\r\n\r\nconst GetEmitter = ():EventEmitter => {\r\n let evmit = new EventEmitter();\r\n evmit.setMaxListeners(0);\r\n return evmit;\r\n}\r\nexport const eventBus:EventEmitter = GetEmitter();","import * as signalR from \"@microsoft/signalr\";\r\nimport { eventBus } from \"./eventHandler\";\r\n\r\nexport let connection:signalR.HubConnection;\r\n\r\nfunction createConnection() {\r\n connection = new signalR.HubConnectionBuilder()\r\n .withUrl(\"http://liveapi2.elitetiming.se/myhubathletic\") // Replace with your SignalR server URL\r\n .configureLogging(signalR.LogLevel.Information)\r\n .withAutomaticReconnect([0, 20000]) // Will reconnect immediately, then after 2, 10, and 30 seconds\r\n .build();\r\n\r\n \r\n connection.onreconnecting(error => {\r\n console.error(`SignalR connection reconnecting due to ${error}.`);\r\n eventBus.emit(`signalR_con`, connection.state);\r\n // You can update the application state here\r\n });\r\n\r\n connection.onreconnected(connectionId => {\r\n console.log(`SignalR connection reestablished. Connected with connectionId \"${connectionId}\".`);\r\n eventBus.emit(`signalR_con`, connection.state);\r\n // Rejoin groups or perform other necessary actions here\r\n });\r\n\r\n connection.onclose(error => {\r\n console.error(`SignalR connection closed due to ${error}.`);\r\n eventBus.emit(`signalR_con`, connection.state);\r\n // You can update the application state here\r\n });\r\n \r\n\r\n return connection;\r\n}\r\n\r\nexport function startConnection(group:string) {\r\n // createConnection().start()\r\n // .then(() => {\r\n // console.log(\"SignalR connected\");\r\n\r\n // setTimeout(() => {\r\n // if (connection.state === signalR.HubConnectionState.Connected){\r\n // connection.invoke(\"joinGroupAthletic\",group);\r\n // }\r\n // else{\r\n // console.log(\"Couldn't join group\");\r\n // }\r\n // eventBus.emit(`signalR_con`, connection.state);\r\n // }, (150));\r\n \r\n \r\n // // Join groups or perform initial setup here\r\n // })\r\n // .catch(err => {\r\n // console.error(\"Error while establishing connection: \", err);\r\n // });\r\n}\r\n\r\n\r\nexport function GetSignalRStatus():signalR.HubConnectionState{\r\n return signalR.HubConnectionState.Connected;\r\n // connection.state;\r\n}\r\n\r\n","import {\r\n ReactNode,\r\n useState,\r\n createContext,\r\n useContext,\r\n useEffect,\r\n useRef,\r\n} from \"react\";\r\nimport { RaceAthleticsDTO } from \"../interfaces/RaceAthleticsDTO\";\r\nimport {\r\n GrenDTO,\r\n GrenDetailDTO,\r\n MenuRoot,\r\n} from \"../interfaces/MenuAthleticsDTO\";\r\nimport { EventDTO, StatusAthleticsDTO } from \"../interfaces/StatusAthleticsDTO\";\r\nimport { resultViewMode } from \"../interfaces/enumSettings\";\r\nimport {\r\n GetSignalRStatus,\r\n connection,\r\n startConnection,\r\n} from \"./signalrConnection\";\r\nimport { ResultAthleticsDTO } from \"../interfaces/ResultAthleticsDTO\";\r\nimport apiService from \"./apiService\";\r\nimport {\r\n HubConnection,\r\n HubConnectionState,\r\n} from \"@microsoft/signalr/dist/esm/HubConnection\";\r\nimport { eventBus } from \"./eventHandler\";\r\nimport { isNumberObject } from \"util/types\";\r\nimport { storageDTO } from \"../interfaces/storageDTO\";\r\n\r\ninterface RaceContextProps {\r\n raceid: number;\r\n setRaceid: (inp: number) => void;\r\n race: RaceAthleticsDTO | undefined;\r\n menus: MenuRoot | undefined;\r\n status: EventDTO[];\r\n setRace: (inp: RaceAthleticsDTO) => void;\r\n setMenus: (inp: MenuRoot) => void;\r\n setStatus: (inp: EventDTO[]) => void;\r\n getStatus: (raceno: string, round: string, heat: string) => EventDTO | null;\r\n getSelectedStatus: (menuKey: string | undefined) => EventDTO | null;\r\n viewMode: resultViewMode;\r\n setViewMode: (mode: resultViewMode) => void;\r\n selectedGren: GrenDTO | null;\r\n setSelctedGren: (inp: GrenDTO | null, menuKey: string) => void;\r\n resultList: ResultAthleticsDTO | null;\r\n loadResultList: (raceno: string, round: string, heat: string) => void;\r\n rollingClock: string;\r\n getActiveAthlete: (inp: GrenDetailDTO | undefined, startno: string) => number;\r\n menuOldSelected: GrenDTO[];\r\n}\r\nconst RaceContext = createContext(undefined);\r\n\r\ntype RaceProviderref = { children: ReactNode };\r\n\r\nexport const RaceProvider: React.FC = ({ children }) => {\r\n const [lastGrenar, setLastGrenar] = useState([]);\r\n const [raceid, setRaceids] = useState(-1);\r\n const [race, setRace] = useState(undefined);\r\n const [menus, setMenus] = useState();\r\n const [menuSelected, setMenuSelected] = useState({});\r\n const [menuOldSelected, setMenuOldSelected] = useState([]);\r\n const [status, setStatus] = useState([]);\r\n const [viewMode, setViewMode] = useState(\r\n resultViewMode.livemode\r\n );\r\n const [resultList, setResultList] = useState(null);\r\n const [selectedGren, setPrivateSelctedGren] = useState(null);\r\n const [rollingClock, setRollingClock] = useState(\"\");\r\n\r\n const raceidRef = useRef(-1);\r\n const selectedGrenRef = useRef(null);\r\n const statusRef = useRef([]);\r\n const conStat = useRef(\r\n HubConnectionState.Disconnected\r\n );\r\n const setRaceid = (inp: number) => {\r\n setRaceids(inp);\r\n };\r\n useEffect(() => {\r\n if (!race) {\r\n return;\r\n }\r\n try {\r\n startConnection(\"raceid_\" + race?.Id);\r\n conStat.current = GetSignalRStatus();\r\n // conStat.current =\r\n // if (connection.state === HubConnectionState.Connected){\r\n // connection.invoke(\"joinGroupAthletic\", \"raceid_\" + race?.Id);\r\n // }\r\n // else{\r\n // setTimeout(() => {\r\n // if (connection.state === HubConnectionState.Connected){\r\n // connection.invoke(\"joinGroupAthletic\",\"aa\" + race?.Id);\r\n // }\r\n // }, 1050);\r\n // }\r\n\r\n // console.log(\"connected to group\");\r\n } catch {\r\n console.log(\"Couldnt join group\");\r\n }\r\n }, [race]);\r\n\r\n // useEffect(() => {\r\n // console.log(\"state connection changed \" + connection ? connection.state : \"null\");\r\n // },[conStat])\r\n useEffect(() => {\r\n // connection.invoke(\"joinGroup\", raceid);\r\n // try {\r\n\r\n const changedConnection = (stat: HubConnectionState) => {\r\n console.log(\"Connection changed\", stat);\r\n if (conStat.current === null) {\r\n if (stat === HubConnectionState.Connected) {\r\n connectEvents();\r\n }\r\n } else if (stat !== HubConnectionState.Connected) {\r\n connectEvents();\r\n }\r\n conStat.current = stat;\r\n };\r\n\r\n eventBus.addListener(`signalR_con`, changedConnection);\r\n const connectEvents = () => {\r\n try {\r\n connection.on(\"setAthMenu\", (message) => {\r\n let data: signalRMessage = JSON.parse(message);\r\n if (data.RaceID == raceidRef.current && data.DataMenu) {\r\n setMenus(data.DataMenu);\r\n }\r\n });\r\n connection.on(\"setCl\", (message) => {\r\n // let data: signalRMessage = JSON.parse(message);\r\n // console.log(message,\"aoaka\");\r\n setRollingClock(message);\r\n });\r\n connection.on(\"setAthStatus\", (message) => {\r\n console.log(\"Message received:\", message);\r\n let data: signalRMessage = JSON.parse(message);\r\n console.log(data.RaceID, raceidRef.current, data.DataStatus);\r\n if (data.RaceID == raceidRef.current && data.DataStatus) {\r\n console.log(\"setting data \");\r\n setStatus(data.DataStatus.Events);\r\n }\r\n });\r\n connection.on(\"setAthResult\", (message) => {\r\n console.log(\"Message received:\", message);\r\n let data: signalRMessage = JSON.parse(message);\r\n if (\r\n data.RaceID == raceidRef.current &&\r\n data.DataResult &&\r\n selectedGrenRef.current\r\n ) {\r\n if (\r\n selectedGrenRef.current.Gren?.Raceno == data.Raceno &&\r\n selectedGrenRef.current.Gren?.Round == data.Round &&\r\n selectedGrenRef.current.Gren?.Heat == data.Heat\r\n ) {\r\n setResultList(data.DataResult);\r\n }\r\n }\r\n });\r\n connection.on(\"setActiveAthlete\", (message) => {\r\n // console.log(\"Message received:\", message);\r\n let data: signalRMessage = JSON.parse(message);\r\n if (data.RaceID == raceidRef.current && status) {\r\n let indexToUpdate = statusRef.current.findIndex(\r\n (o) =>\r\n o.Raceno == data.Raceno &&\r\n o.Round == data.Round &&\r\n o.Heat == data.Heat\r\n );\r\n if (indexToUpdate > -1) {\r\n // Make a copy of the current status array\r\n let updatedStatus = [...statusRef.current];\r\n\r\n // Update the specific element\r\n updatedStatus[indexToUpdate] = {\r\n ...updatedStatus[indexToUpdate],\r\n Startno: data.Startno,\r\n };\r\n // console.log(updatedStatus[indexToUpdate]);\r\n // Set the updated array as the new state\r\n statusRef.current = updatedStatus;\r\n setStatus(statusRef.current);\r\n }\r\n }\r\n });\r\n } catch {\r\n console.log(\"some error for wsockets\");\r\n }\r\n };\r\n return () => {\r\n console.log(\"live socket destryed\");\r\n eventBus.removeListener(`connectionSignalR`, changedConnection);\r\n try {\r\n connection.stop();\r\n } catch {\r\n console.log(\"live socket destryed error\");\r\n }\r\n };\r\n }, []);\r\n const addLastMenuItem = (menu:GrenDTO) => {\r\n setMenuOldSelected(prev => {\r\n let newArr = [...prev];\r\n newArr.push(menu);\r\n if (newArr.length > 10){\r\n newArr = newArr.splice(10,newArr.length);\r\n }\r\n return newArr;\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n raceidRef.current = raceid;\r\n }, [raceid]);\r\n\r\n const getStatus = (\r\n raceno: string,\r\n round: string,\r\n heat: string\r\n ): EventDTO | null => {\r\n let sta = status.filter(\r\n (o) => o.Raceno == raceno && o.Round == round && o.Heat == heat\r\n );\r\n if (sta.length > 0) {\r\n return sta[0];\r\n }\r\n return null;\r\n };\r\n const getSelectedStatus = (menuKey: string | undefined): EventDTO | null => {\r\n if (menuKey) {\r\n if (menuKey in menuSelected) {\r\n let men = menuSelected[menuKey];\r\n if (men.Gren){\r\n let sta = status.filter(\r\n (o) =>\r\n o.Raceno == men.Gren!.Raceno &&\r\n o.Round == men.Gren!.Round &&\r\n o.Heat == men.Gren!.Heat\r\n );\r\n if (sta.length > 0) {\r\n return sta[0];\r\n }\r\n }\r\n }\r\n return null;\r\n } else {\r\n if (!selectedGren) {\r\n return null;\r\n }\r\n if (!selectedGren.Gren) {\r\n return null;\r\n }\r\n\r\n let sta = status.filter(\r\n (o) =>\r\n o.Raceno == selectedGren.Gren!.Raceno &&\r\n o.Round == selectedGren.Gren!.Round &&\r\n o.Heat == selectedGren.Gren!.Heat\r\n );\r\n if (sta.length > 0) {\r\n return sta[0];\r\n }\r\n }\r\n return null;\r\n };\r\n const getActiveAthlete = (\r\n grens: GrenDetailDTO | undefined,\r\n startno: string\r\n ): number => {\r\n if (!grens) {\r\n return 0;\r\n }\r\n let strn: null | number = null;\r\n if (Number(startno)) {\r\n strn = parseInt(startno);\r\n }\r\n let da = statusRef.current.filter(\r\n (o) =>\r\n o.Raceno == grens.Raceno &&\r\n o.Round == grens.Round &&\r\n o.Heat == grens.Heat &&\r\n o.Startno == strn\r\n );\r\n if (da.length > 0) {\r\n return 1;\r\n }\r\n return 0;\r\n };\r\n\r\n const loadResultList = (raceno: string, round: string, heat: string) => {\r\n const fetchData = async () => {\r\n try {\r\n const result = await apiService.get(\r\n `/GetResult/${raceid}?Raceno=${raceno}&Round=${round}&Heat=${heat}`\r\n );\r\n setResultList(result);\r\n\r\n // console.log(JSON.stringify(result));\r\n } catch (error) {\r\n setResultList(null);\r\n console.error(\"Error fetching data\", error);\r\n }\r\n };\r\n fetchData();\r\n };\r\n\r\n const setSelctedGren = (inp: GrenDTO | null, menuKey: string) => {\r\n // let filt = menus.filter()\r\n\r\n if (inp) {\r\n saveToLocalStorage(inp, menuKey);\r\n setPrivateSelctedGren(inp);\r\n // let v:grenMenuKey = [menuKey]: inp;\r\n addLastMenuItem(menuSelected);\r\n setMenuSelected((prevMenuSelected) => ({\r\n ...prevMenuSelected,\r\n [menuKey]: inp,\r\n }));\r\n addLastMenuItem(inp)\r\n }\r\n };\r\n const saveToLocalStorage = (inp: GrenDTO | null, menuKey: string) => {\r\n if (raceid < 1) {\r\n return;\r\n }\r\n let stor: storageDTO = {\r\n raceid: raceid,\r\n selectedgren: inp,\r\n menuKey: menuKey,\r\n };\r\n localStorage.setItem(\"race_\" + raceid, JSON.stringify(stor));\r\n };\r\n useEffect(() => {\r\n selectedGrenRef.current = selectedGren;\r\n }, [selectedGren]);\r\n\r\n useEffect(() => {\r\n statusRef.current = status;\r\n // console.log(new Date(), status[11]);\r\n }, [status]);\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport const useRace = (): RaceContextProps => {\r\n const context = useContext(RaceContext);\r\n if (!context) {\r\n throw new Error(\"useRace must be used within a RaceProvider\");\r\n }\r\n return context;\r\n};\r\n\r\ninterface signalRMessage {\r\n RaceID: number;\r\n Raceno: string | undefined;\r\n Round: string | undefined;\r\n Heat: string | undefined;\r\n DataResult?: ResultAthleticsDTO | undefined;\r\n DataStatus?: StatusAthleticsDTO | undefined;\r\n DataMenu?: MenuRoot | undefined;\r\n Startno?: number | undefined;\r\n}\r\ninterface grenMenuKey {\r\n [key: string]: GrenDTO;\r\n}\r\n","import React from 'react'\r\nimport { useRace } from '../../services/RaceProvider'\r\n\r\nconst ResultHeader = () => {\r\n const {race} = useRace();\r\n \r\n\r\n return (<>\r\n
 
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n {race ? race?.Name : \"\"}\r\n \r\n \r\n {race?.Place}\r\n \r\n
\r\n
\r\n
\r\n  \r\n
\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ResultHeader","import moment from \"moment\";\r\nimport React, { useEffect, useState } from \"react\";\r\n\r\n\r\nconst Clock = () => {\r\n const [timeOfDay, setTimeOfDay] = useState(\"..:,,:..\");\r\n const [timediff, setTimediff] = useState(0);\r\n\r\n useEffect(() => {\r\n const handler = (diffTime: number) => {\r\n // setAthletes(ath);+\r\n setTimediff(diffTime);\r\n };\r\n const intervalId = setInterval(() => {\r\n let tim = moment().format(\"HH:mm:ss\");\r\n setTimeOfDay(tim);\r\n }, 250);\r\n\r\n return () => {\r\n // Cleanup to avoid memory leaks\r\n clearInterval(intervalId);\r\n };\r\n }, []);\r\n\r\n return <>{timeOfDay};\r\n};\r\n\r\nexport default Clock;\r\n","import React from 'react'\r\nimport Clock from '../../tools/Clock'\r\n\r\nconst ResultFooter = () => {\r\n return (\r\n <>\r\n
\r\n © EliteTiming of Sweden AB\r\n ® Alfred Andersson\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n

\r\n EliteTiming\r\n
\r\n \r\n )\r\n}\r\n\r\nexport default ResultFooter","////////////////////////////////////////////////////////////////////////////////\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 type LoaderFunction = {\n (args: LoaderFunctionArgs):\n | Promise\n | DataFunctionValue;\n} & { hydrate?: boolean };\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 */\nexport type 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// Return the array of pathnames for the current route matches - used to\n// generate the routePathnames input for resolveTo()\nexport function getResolveToMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[], v7_relativeSplatPath: boolean) {\n let pathMatches = getPathContributingMatches(matches);\n\n // When v7_relativeSplatPath is enabled, use the full pathname for the leaf\n // match so we include splat values for \".\" links. See:\n // https://github.com/remix-run/react-router/issues/11052#issuecomment-1836589329\n if (v7_relativeSplatPath) {\n return pathMatches.map((match, idx) =>\n idx === matches.length - 1 ? match.pathname : match.pathnameBase\n );\n }\n\n return pathMatches.map((match) => match.pathnameBase);\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 (toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n // With relative=\"route\" (the default), each leading .. segment means\n // \"go up one route\" instead of \"go up one URL segment\". This is a key\n // difference from how works and a major reason we call this a\n // \"to\" value instead of a \"href\".\n if (!isPathRelative && toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\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 getResolveToMatches,\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 future config for the router\n */\n get future(): FutureConfig;\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_partialHydration: boolean;\n v7_prependBasename: boolean;\n v7_relativeSplatPath: 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 unstable_flushSync: boolean;\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 unstable_flushSync?: boolean;\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_partialHydration: false,\n v7_prependBasename: false,\n v7_relativeSplatPath: 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: boolean;\n let hasLazyRoutes = initialMatches.some((m) => m.route.lazy);\n let hasLoaders = initialMatches.some((m) => m.route.loader);\n if (hasLazyRoutes) {\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 initialized = false;\n } else if (!hasLoaders) {\n // If we've got no loaders to run, then we're good to go\n initialized = true;\n } else if (future.v7_partialHydration) {\n // If partial hydration is enabled, we're initialized so long as we were\n // provided with hydrationData for every route with a loader, and no loaders\n // were marked for explicit hydration\n let loaderData = init.hydrationData ? init.hydrationData.loaderData : null;\n let errors = init.hydrationData ? init.hydrationData.errors : null;\n initialized = initialMatches.every(\n (m) =>\n m.route.loader &&\n m.route.loader.hydrate !== true &&\n ((loaderData && loaderData[m.route.id] !== undefined) ||\n (errors && errors[m.route.id] !== undefined))\n );\n } else {\n // Without partial hydration - we're initialized if we were provided any\n // hydrationData - which is expected to be complete\n initialized = init.hydrationData != null;\n }\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 initialHydration: true,\n });\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 opts: {\n flushSync?: boolean;\n viewTransitionOpts?: ViewTransitionOpts;\n } = {}\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 // Iterate over a local copy so that if flushSync is used and we end up\n // removing and adding a new subscriber due to the useCallback dependencies,\n // we don't get ourselves into a loop calling the new subscriber immediately\n [...subscribers].forEach((subscriber) =>\n subscriber(state, {\n deletedFetchers: deletedFetchersKeys,\n unstable_viewTransitionOpts: opts.viewTransitionOpts,\n unstable_flushSync: opts.flushSync === true,\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 { flushSync }: { flushSync?: boolean } = {}\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 {\n viewTransitionOpts,\n flushSync: flushSync === true,\n }\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 future.v7_relativeSplatPath,\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 flushSync = (opts && opts.unstable_flushSync) === true;\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 flushSync,\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 initialHydration?: boolean;\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 flushSync?: 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 let flushSync = (opts && opts.flushSync) === true;\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(\n location,\n {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n },\n { flushSync }\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 }, { flushSync });\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, flushSync }\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 flushSync = false;\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 opts && opts.initialHydration === true,\n flushSync,\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; flushSync?: boolean } = {}\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation = getSubmittingNavigation(location, submission);\n updateState({ navigation }, { flushSync: opts.flushSync === true });\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 future.v7_relativeSplatPath\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 initialHydration?: boolean,\n flushSync?: 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 future.v7_partialHydration && initialHydration === true,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\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(\n location,\n {\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 { flushSync }\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 we have partialHydration enabled, then don't update the state for the\n // initial data load since iot's not a \"navigation\"\n if (\n !isUninterruptedRevalidation &&\n (!future.v7_partialHydration || !initialHydration)\n ) {\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 {\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 flushSync,\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 // 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 let flushSync = (opts && opts.unstable_flushSync) === true;\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 future.v7_relativeSplatPath,\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 { flushSync }\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, { flushSync });\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(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\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(\n key,\n routeId,\n path,\n match,\n matches,\n flushSync,\n submission\n );\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 flushSync: boolean,\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, { flushSync });\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(key, getSubmittingFetcher(submission, existingFetcher), {\n flushSync,\n });\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 future.v7_relativeSplatPath\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 // When using v7_fetcherPersist, we don't want errors bubbling up to the UI\n // or redirects processed for unmounted fetchers so we just revert them to\n // idle\n if (future.v7_fetcherPersist && deletedFetchers.has(key)) {\n if (isRedirectResult(actionResult) || isErrorResult(actionResult)) {\n updateFetcherState(key, getDoneFetcher(undefined));\n return;\n }\n // Let SuccessResult's fall through for revalidation\n } else {\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 updateFetcherState(key, getDoneFetcher(undefined));\n return;\n } else {\n fetchRedirectIds.add(key);\n updateFetcherState(key, getLoadingFetcher(submission));\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\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 false,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n deletedFetchers,\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 flushSync: boolean,\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n updateFetcherState(\n key,\n getLoadingFetcher(\n submission,\n existingFetcher ? existingFetcher.data : undefined\n ),\n { flushSync }\n );\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 future.v7_relativeSplatPath\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 // We don't want errors bubbling up or redirects followed for unmounted\n // fetchers, so short circuit here if it was removed from the UI\n if (deletedFetchers.has(key)) {\n updateFetcherState(key, getDoneFetcher(undefined));\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 updateFetcherState(key, getDoneFetcher(undefined));\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 updateFetcherState(key, getDoneFetcher(result.data));\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 future.v7_relativeSplatPath\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 future.v7_relativeSplatPath\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 updateFetcherState(\n key: string,\n fetcher: Fetcher,\n opts: { flushSync?: boolean } = {}\n ) {\n state.fetchers.set(key, fetcher);\n updateState(\n { fetchers: new Map(state.fetchers) },\n { flushSync: (opts && opts.flushSync) === true }\n );\n }\n\n function setFetcherError(\n key: string,\n routeId: string,\n error: any,\n opts: { flushSync?: boolean } = {}\n ) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState(\n {\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n },\n { flushSync: (opts && opts.flushSync) === true }\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 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 future() {\n return future;\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\n/**\n * Future flags to toggle new feature behavior\n */\nexport interface StaticHandlerFutureConfig {\n v7_relativeSplatPath: boolean;\n}\n\nexport interface CreateStaticHandlerOptions {\n basename?: string;\n /**\n * @deprecated Use `mapRouteProperties` instead\n */\n detectErrorBoundary?: DetectErrorBoundaryFunction;\n mapRouteProperties?: MapRoutePropertiesFunction;\n future?: Partial;\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 // Config driven behavior flags\n let future: StaticHandlerFutureConfig = {\n v7_relativeSplatPath: false,\n ...(opts ? opts.future : null),\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 future.v7_relativeSplatPath,\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 future.v7_relativeSplatPath,\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 v7_relativeSplatPath: boolean,\n fromRouteId?: string,\n relative?: RelativeRoutingType\n) {\n let contextualMatches: AgnosticDataRouteMatch[];\n let activeRouteMatch: AgnosticDataRouteMatch | undefined;\n if (fromRouteId) {\n // Grab matches up to the calling route so our route-relative logic is\n // relative to the correct source route\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 getResolveToMatches(contextualMatches, v7_relativeSplatPath),\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 isInitialLoad: boolean,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n deletedFetchers: Set,\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 let { route } = match;\n if (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\n if (route.loader == null) {\n return false;\n }\n\n if (isInitialLoad) {\n if (route.loader.hydrate) {\n return true;\n }\n return (\n state.loaderData[route.id] === undefined &&\n // Don't re-run if the loader ran and threw an error\n (!state.errors || state.errors[route.id] === undefined)\n );\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:\n // - on initial load (shouldn't be any fetchers then anyway)\n // - if fetcher won't be present in the subsequent render\n // - no longer matches the URL (v7_fetcherPersist=false)\n // - was unmounted but persisted due to v7_fetcherPersist=true\n if (\n isInitialLoad ||\n !matches.some((m) => m.route.id === f.routeId) ||\n deletedFetchers.has(key)\n ) {\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 v7_relativeSplatPath: boolean,\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 v7_relativeSplatPath\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\n try {\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 } catch (e) {\n return { type: ResultType.error, error: e };\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 hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: 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 hydrateFallbackElement?: React.ReactNode | null;\n errorElement?: React.ReactNode | null;\n Component?: React.ComponentType | null;\n HydrateFallback?: 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\n // Omit `future` since those can be pulled from the `router`\n // `NavigationContext` needs future since it doesn't have a `router` in all cases\n extends Omit {\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_flushSync?: boolean;\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 future: {\n v7_relativeSplatPath: boolean;\n };\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_getResolveToMatches as getResolveToMatches,\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, future, navigator } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\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 { future } = React.useContext(NavigationContext);\n let { matches } = React.useContext(RouteContext);\n let { pathname: locationPathname } = useLocation();\n let routePathnamesJson = JSON.stringify(\n getResolveToMatches(matches, future.v7_relativeSplatPath)\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 future?: RemixRouter[\"future\"]\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 matches[matches.length - 1].route.lazy !== 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 future\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 !== undefined ? 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 !== undefined ? (\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 future: RemixRouter[\"future\"] | 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 // If we're in a partial hydration mode, detect if we need to render down to\n // a given HydrateFallback while we load the rest of the hydration data\n let renderFallback = false;\n let fallbackIndex = -1;\n if (dataRouterState && future && future.v7_partialHydration) {\n for (let i = 0; i < renderedMatches.length; i++) {\n let match = renderedMatches[i];\n // Track the deepest fallback up until the first route without data\n if (match.route.HydrateFallback || match.route.hydrateFallbackElement) {\n fallbackIndex = i;\n }\n\n if (match.route.id) {\n let { loaderData, errors } = dataRouterState;\n let needsToRunLoader =\n match.route.loader &&\n loaderData[match.route.id] === undefined &&\n (!errors || errors[match.route.id] === undefined);\n if (match.route.lazy || needsToRunLoader) {\n // We found the first route that's not ready to render (waiting on\n // lazy, or has a loader that hasn't run yet). Flag that we need to\n // render a fallback and render up until the appropriate fallback\n renderFallback = true;\n if (fallbackIndex >= 0) {\n renderedMatches = renderedMatches.slice(0, fallbackIndex + 1);\n } else {\n renderedMatches = [renderedMatches[0]];\n }\n break;\n }\n }\n }\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n // Only data routers handle errors/fallbacks\n let error: any;\n let shouldRenderHydrateFallback = false;\n let errorElement: React.ReactNode | null = null;\n let hydrateFallbackElement: React.ReactNode | null = null;\n if (dataRouterState) {\n error = errors && match.route.id ? errors[match.route.id] : undefined;\n errorElement = match.route.errorElement || defaultErrorElement;\n\n if (renderFallback) {\n if (fallbackIndex < 0 && index === 0) {\n warningOnce(\n \"route-fallback\",\n false,\n \"No `HydrateFallback` element provided to render during initial hydration\"\n );\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = null;\n } else if (fallbackIndex === index) {\n shouldRenderHydrateFallback = true;\n hydrateFallbackElement = match.route.hydrateFallbackElement || null;\n }\n }\n }\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 (shouldRenderHydrateFallback) {\n children = hydrateFallbackElement;\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 let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n return state.actionData ? state.actionData[routeId] : undefined;\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 !== undefined) {\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_getResolveToMatches as getResolveToMatches,\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_relativeSplatPath: boolean;\n v7_startTransition: boolean;\n}\n\nexport interface RouterProviderProps {\n fallbackElement?: React.ReactNode;\n router: RemixRouter;\n // Only accept future flags relevant to rendering behavior\n // routing flags should be accessed via router.future\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 React.useEffect(() => {\n warning(\n fallbackElement == null || !router.future.v7_partialHydration,\n \"`` is deprecated when using \" +\n \"`v7_partialHydration`, use a `HydrateFallback` component instead\"\n );\n // Only log this once on initial mount\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\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