{"version":3,"file":"js/754-9a3bc110c1833f42273f.js","mappings":"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","sources":["webpack://school-funrun/./node_modules/constructicon/button-social/index.js","webpack://school-funrun/./node_modules/constructicon/button-social/openShareDialog.js","webpack://school-funrun/./node_modules/constructicon/container/index.js","webpack://school-funrun/./node_modules/constructicon/container/styles.js","webpack://school-funrun/./node_modules/constructicon/pagination/index.js","webpack://school-funrun/./node_modules/copy-to-clipboard/index.js","webpack://school-funrun/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://school-funrun/./node_modules/history/esm/history.js","webpack://school-funrun/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://school-funrun/./node_modules/lodash/chunk.js","webpack://school-funrun/./node_modules/lodash/defaults.js","webpack://school-funrun/./node_modules/lodash/first.js","webpack://school-funrun/./node_modules/lodash/head.js","webpack://school-funrun/./node_modules/lodash/map.js","webpack://school-funrun/./node_modules/path-to-regexp/index.js","webpack://school-funrun/./node_modules/path-to-regexp/node_modules/isarray/index.js","webpack://school-funrun/./node_modules/react-is/cjs/react-is.production.min.js","webpack://school-funrun/./node_modules/react-is/index.js","webpack://school-funrun/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://school-funrun/./node_modules/react-router/esm/react-router.js","webpack://school-funrun/./node_modules/snarkdown/dist/snarkdown.es.js","webpack://school-funrun/./node_modules/toggle-selection/index.js","webpack://school-funrun/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://school-funrun/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://school-funrun/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://school-funrun/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://school-funrun/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://school-funrun/./node_modules/ua-parser-js/src/main/ua-parser.mjs"],"sourcesContent":["'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _button = require('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _icon = require('../icon');\n\nvar _icon2 = _interopRequireDefault(_icon);\n\nvar _openShareDialog = require('./openShareDialog');\n\nvar _openShareDialog2 = _interopRequireDefault(_openShareDialog);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n/**\n * Uses the Button component to create a social icon\n *\n * Will accept any props that the Button accepts\n */\nvar ButtonSocial = function ButtonSocial(_ref) {\n var share = _ref.share,\n type = _ref.type,\n url = _ref.url,\n title = _ref.title,\n hashtags = _ref.hashtags,\n props = _objectWithoutProperties(_ref, ['share', 'type', 'url', 'title', 'hashtags']);\n\n return _react2.default.createElement(\n _button2.default,\n _extends({\n background: type,\n tag: share ? 'button' : 'a',\n onClick: share && (0, _openShareDialog2.default)({ type: type, url: url, title: title, hashtags: hashtags }),\n 'aria-label': type\n }, props),\n _react2.default.createElement(_icon2.default, { name: type })\n );\n};\n\nButtonSocial.propTypes = {\n /**\n * The social network\n */\n type: _propTypes2.default.oneOf(['facebook', 'twitter', 'instagram', 'linkedin', 'youtube', 'google', 'vimeo', 'strava', 'mapmyfitness', 'fitbit']).isRequired,\n\n /**\n * Makes the button a share button (only available for twitter, facebook and google)\n */\n share: _propTypes2.default.bool,\n\n /**\n * Hashtags to be added to a Twitter share\n */\n hashtags: _propTypes2.default.string,\n\n /**\n * The text for a Twitter or Linkedin share\n */\n text: _propTypes2.default.string\n};\n\nButtonSocial.defaultProps = {\n spacing: 0.5,\n effect: 'grow',\n radius: 'large',\n target: '_blank'\n};\n\nexports.default = ButtonSocial;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _defaults = require('lodash/defaults');\n\nvar _defaults2 = _interopRequireDefault(_defaults);\n\nvar _map = require('lodash/map');\n\nvar _map2 = _interopRequireDefault(_map);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar services = {\n facebook: function facebook(_ref) {\n var url = _ref.url;\n\n return 'http://www.facebook.com/sharer.php?u=' + encodeURIComponent(url);\n },\n twitter: function twitter(_ref2) {\n var url = _ref2.url,\n title = _ref2.title,\n _ref2$hashtags = _ref2.hashtags,\n hashtags = _ref2$hashtags === undefined ? '' : _ref2$hashtags;\n\n return 'https://twitter.com/share?url=' + encodeURIComponent(url) + '&text=' + encodeURIComponent(title) + '&hashtags=' + encodeURIComponent(hashtags);\n },\n google: function google(_ref3) {\n var url = _ref3.url;\n\n return 'https://plus.google.com/share?url=' + encodeURIComponent(url);\n },\n linkedin: function linkedin(_ref4) {\n var url = _ref4.url,\n title = _ref4.title;\n\n return 'https://www.linkedin.com/shareArticle?mini=true&url=' + encodeURIComponent(url) + '&title=' + encodeURIComponent(title);\n }\n};\n\nvar toString = function toString(obj) {\n return (0, _map2.default)(obj, function (value, key) {\n return key + '=' + value;\n }).join(',');\n};\n\nvar openPopup = function openPopup(url, config) {\n config = (0, _defaults2.default)(config || {}, { width: 640, height: 320 });\n\n var windowTop = window.screenTop ? window.screenTop : window.screenY;\n var windowLeft = window.screenLeft ? window.screenLeft : window.screenX;\n\n config.top = windowTop + window.innerHeight / 2 - config.height / 2;\n config.left = windowLeft + window.innerWidth / 2 - config.width / 2;\n config = toString(config);\n\n window.open(url, 'shareWindow', config);\n};\n\nexports.default = function (options) {\n return function () {\n var type = options.type,\n _options$url = options.url,\n url = _options$url === undefined ? window.location.href : _options$url,\n _options$title = options.title,\n title = _options$title === undefined ? document.title : _options$title,\n hashtags = options.hashtags,\n caption = options.caption;\n\n\n var service = services[type];\n\n if (service) {\n var popupConfig = {\n toolbar: 0,\n status: 0,\n width: 640,\n height: 320\n };\n\n var shareUrl = service({\n url: url,\n title: title,\n hashtags: hashtags,\n caption: caption\n });\n\n openPopup(shareUrl, popupConfig);\n }\n };\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _withStyles = require('../with-styles');\n\nvar _withStyles2 = _interopRequireDefault(_withStyles);\n\nvar _styles = require('./styles');\n\nvar _styles2 = _interopRequireDefault(_styles);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar Container = function Container(_ref) {\n var children = _ref.children,\n Tag = _ref.tag,\n classNames = _ref.classNames;\n\n if (!children) {\n return null;\n }\n\n return _react2.default.createElement(\n 'div',\n { className: 'c11n-container-wrapper ' + classNames.outer },\n _react2.default.createElement(\n Tag,\n { className: 'c11n-container ' + classNames.root },\n children\n )\n );\n};\n\nContainer.propTypes = {\n /**\n * The content\n */\n children: _propTypes2.default.any,\n\n /**\n * The tag or component to be used e.g. div, section\n */\n tag: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.element]),\n\n /**\n * The max width of the container to be passed into our rhythm\n */\n width: _propTypes2.default.number,\n\n /**\n * The internal padding to be applied\n */\n spacing: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.number]),\n\n /**\n * Sets the min-height to the height of the viewport\n */\n fullHeight: _propTypes2.default.bool,\n\n /**\n * The shadow to be applies to the container\n */\n shadow: _propTypes2.default.string,\n\n /**\n * The background color of the container\n */\n background: _propTypes2.default.string,\n\n /**\n * The foreground color of the area\n */\n foreground: _propTypes2.default.string,\n\n /**\n * The color of the area outside the container\n */\n outerColor: _propTypes2.default.string,\n\n /**\n * The custom styles to be applied to the container\n */\n styles: _propTypes2.default.object\n};\n\nContainer.defaultProps = {\n tag: 'article',\n spacing: 0,\n styles: {}\n};\n\nexports.default = (0, _withStyles2.default)(_styles2.default)(Container);","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _merge = require('lodash/merge');\n\nvar _merge2 = _interopRequireDefault(_merge);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (_ref, _ref2) {\n var shadow = _ref.shadow,\n background = _ref.background,\n foreground = _ref.foreground,\n outerColor = _ref.outerColor,\n width = _ref.width,\n spacing = _ref.spacing,\n fullHeight = _ref.fullHeight,\n styles = _ref.styles;\n var calculateSpacing = _ref2.calculateSpacing,\n colors = _ref2.colors,\n rhythm = _ref2.rhythm,\n shadows = _ref2.shadows,\n treatments = _ref2.treatments;\n\n var defaultStyles = {\n root: _extends({\n maxWidth: width ? rhythm(width) : treatments.container.maxWidth,\n minHeight: fullHeight && '100vh',\n margin: '0 auto'\n }, calculateSpacing(spacing), {\n backgroundColor: background && colors[background],\n color: foreground && colors[foreground]\n }, treatments.body, {\n boxShadow: shadow && shadows[shadow]\n }),\n\n outer: {\n backgroundColor: outerColor && colors[outerColor]\n }\n };\n\n return (0, _merge2.default)(defaultStyles, styles);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _chunk = require('lodash/chunk');\n\nvar _chunk2 = _interopRequireDefault(_chunk);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar Pagination = function (_Component) {\n _inherits(Pagination, _Component);\n\n function Pagination() {\n _classCallCheck(this, Pagination);\n\n var _this = _possibleConstructorReturn(this, (Pagination.__proto__ || Object.getPrototypeOf(Pagination)).apply(this, arguments));\n\n _this.state = {\n pageNumber: 0,\n allPages: _this.paginate(_this.props.toPaginate)\n };\n\n _this.paginate = _this.paginate.bind(_this);\n _this.handlePagintionClick = _this.handlePaginationClick.bind(_this);\n return _this;\n }\n\n _createClass(Pagination, [{\n key: 'componentWillReceiveProps',\n value: function componentWillReceiveProps(_ref) {\n var toPaginate = _ref.toPaginate;\n\n if (this.props.persistPage) {\n this.setState({\n allPages: this.paginate(toPaginate)\n });\n } else {\n this.setState({\n pageNumber: 0,\n allPages: this.paginate(toPaginate)\n });\n }\n }\n }, {\n key: 'paginate',\n value: function paginate(toPaginate) {\n var _props$max = this.props.max,\n max = _props$max === undefined ? 10 : _props$max;\n\n return (0, _chunk2.default)(toPaginate, max);\n }\n }, {\n key: 'handlePaginationClick',\n value: function handlePaginationClick(val) {\n var _this2 = this;\n\n var _state = this.state,\n allPages = _state.allPages,\n pageNumber = _state.pageNumber;\n\n var canNext = pageNumber + 1 < allPages.length;\n var canPrev = pageNumber > 0;\n\n var changePage = function changePage() {\n return _this2.setState({\n pageNumber: pageNumber + val\n });\n };\n\n if (val > 0) {\n return canNext ? changePage : null;\n } else {\n return canPrev ? changePage : null;\n }\n }\n }, {\n key: 'render',\n value: function render() {\n var _state2 = this.state,\n allPages = _state2.allPages,\n pageNumber = _state2.pageNumber;\n\n\n if (allPages.length) {\n return _react2.default.createElement(\n 'div',\n null,\n this.props.children({\n allPages: allPages,\n currentPage: allPages[pageNumber],\n numberOfPages: allPages.length,\n pageIndex: this.state.pageNumber,\n pageNumber: this.state.pageNumber + 1,\n pageOf: 'Page ' + (this.state.pageNumber + 1) + ' of ' + allPages.length,\n isPaginated: allPages.length > 1,\n canNext: pageNumber + 1 < allPages.length,\n canPrev: pageNumber > 0,\n next: this.handlePaginationClick(+1),\n prev: this.handlePaginationClick(-1)\n })\n );\n } else return null;\n }\n }]);\n\n return Pagination;\n}(_react.Component);\n\nexports.default = Pagination;\n\n\nPagination.defaultProps = {\n max: 10\n};\n\nPagination.propTypes = {\n /**\n * The array to be paginated\n */\n toPaginate: _propTypes2.default.array.isRequired,\n\n /**\n * The max amount of items per page\n */\n max: _propTypes2.default.number,\n\n /**\n * A render prop that gets called with the paginated data and methods to control it.\n */\n children: _propTypes2.default.func.isRequired,\n\n /**\n * Prevents the page number being reset when toPaginate changes\n */\n persistPage: _propTypes2.default.bool\n};","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n}\n\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n if (!options) {\n options = {};\n }\n debug = options.debug || false;\n try {\n reselectPrevious = deselectCurrent();\n\n range = document.createRange();\n selection = document.getSelection();\n\n mark = document.createElement(\"span\");\n mark.textContent = text;\n // avoid screen readers from reading out loud the text\n mark.ariaHidden = \"true\"\n // reset user styles for span element\n mark.style.all = \"unset\";\n // prevents scrolling to the end of the page\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\";\n // used to preserve spaces and line breaks\n mark.style.whiteSpace = \"pre\";\n // do not inherit user-select (it may be `none`)\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function(e) {\n e.stopPropagation();\n if (options.format) {\n e.preventDefault();\n if (typeof e.clipboardData === \"undefined\") { // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"]\n window.clipboardData.setData(format, text);\n } else { // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n\n document.body.appendChild(mark);\n\n range.selectNodeContents(mark);\n selection.addRange(range);\n\n var successful = document.execCommand(\"copy\");\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","var baseRest = require('./_baseRest'),\n eq = require('./eq'),\n isIterateeCall = require('./_isIterateeCall'),\n keysIn = require('./keysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\nvar defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n});\n\nmodule.exports = defaults;\n","module.exports = require('./head');\n","/**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\nfunction head(array) {\n return (array && array.length) ? array[0] : undefined;\n}\n\nmodule.exports = head;\n","var arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prefix || defaultDelimiter\n var pattern = capture || group\n var prevText = prefix || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : restrictBacktrack(delimiter, prevText))\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\nfunction restrictBacktrack(delimiter, prevText) {\n if (!prevText || prevText.indexOf(delimiter) > -1) {\n return '[^' + escapeString(delimiter) + ']+?'\n }\n\n return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')[^' + escapeString(delimiter) + '])+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/** @license React v16.13.1\n * react-is.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'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n var Provider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : void 0;\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(React.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(React.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\n// MIT License\nvar createContext = React.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","var e={\"\":[\"\",\"\"],_:[\"\",\"\"],\"*\":[\"\",\"\"],\"~\":[\"\",\"\"],\"\\n\":[\"
\"],\" \":[\"
\"],\"-\":[\"
\"]};function n(e){return e.replace(RegExp(\"^\"+(e.match(/^(\\t| )+/)||\"\")[0],\"gm\"),\"\")}function r(e){return(e+\"\").replace(/\"/g,\""\").replace(//g,\">\")}export default function t(a,c){var o,l,g,s,p,u=/((?:^|\\n+)(?:\\n---+|\\* \\*(?: \\*)+)\\n)|(?:^``` *(\\w*)\\n([\\s\\S]*?)\\n```$)|((?:(?:^|\\n+)(?:\\t| {2,}).+)+\\n*)|((?:(?:^|\\n)([>*+-]|\\d+\\.)\\s+.*)+)|(?:!\\[([^\\]]*?)\\]\\(([^)]+?)\\))|(\\[)|(\\](?:\\(([^)]+?)\\))?)|(?:(?:^|\\n+)([^\\s].*)\\n(-{3,}|={3,})(?:\\n+|$))|(?:(?:^|\\n+)(#{1,6})\\s*(.+)(?:\\n+|$))|(?:`([^`].*?)`)|( \\n\\n*|\\n{2,}|__|\\*\\*|[_*]|~~)/gm,m=[],h=\"\",i=c||{},d=0;function f(n){var r=e[n[1]||\"\"],t=m[m.length-1]==n;return r?r[1]?(t?m.pop():m.push(n),r[0|t]):r[0]:n}function $(){for(var e=\"\";m.length;)e+=f(m[m.length-1]);return e}for(a=a.replace(/^\\[(.+?)\\]:\\s*(.+)$/gm,function(e,n,r){return i[n.toLowerCase()]=r,\"\"}).replace(/^\\n+|\\n+$/g,\"\");g=u.exec(a);)l=a.substring(d,g.index),d=u.lastIndex,o=g[0],l.match(/[^\\\\](\\\\\\\\)*\\\\$/)||((p=g[3]||g[4])?o='
\"+n(r(p).replace(/^\\n+|\\n+$/g,\"\"))+\"
\":(p=g[6])?(p.match(/\\./)&&(g[5]=g[5].replace(/^\\d+/gm,\"\")),s=t(n(g[5].replace(/^\\s*[>*+.-]/gm,\"\"))),\">\"==p?p=\"blockquote\":(p=p.match(/\\./)?\"ol\":\"ul\",s=s.replace(/^(.*)(\\n|$)/gm,\"
  • $1
  • \")),o=\"<\"+p+\">\"+s+\"\"):g[8]?o='\"'+r(g[7])+'\"':g[10]?(h=h.replace(\"
    \",''),o=$()+\"\"):g[9]?o=\"\":g[12]||g[14]?o=\"<\"+(p=\"h\"+(g[14]?g[14].length:g[13]>\"=\"?1:2))+\">\"+t(g[12]||g[15],i)+\"\":g[16]?o=\"\"+r(g[16])+\"\":(g[17]||g[1])&&(o=f(g[17]||\"--\"))),h+=l,h+=o;return(h+a.substring(d)+$()).replace(/^\\n+|\\n+$/g,\"\")}\n//# sourceMappingURL=snarkdown.es.js.map\n","\nmodule.exports = function () {\n var selection = document.getSelection();\n if (!selection.rangeCount) {\n return function () {};\n }\n var active = document.activeElement;\n\n var ranges = [];\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) { // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' &&\n selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function(range) {\n selection.addRange(range);\n });\n }\n\n active &&\n active.focus();\n };\n};\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","// Generated ESM version of ua-parser-js\n// DO NOT EDIT THIS FILE!\n// Source: /src/main/ua-parser.js\n\n/////////////////////////////////////////////////////////////////////////////////\n/* UAParser.js v2.0.0\n Copyright © 2012-2024 Faisal Salman \n AGPLv3 License *//*\n Detect Browser, Engine, OS, CPU, and Device type/model from User-Agent data.\n Supports browser & node.js environment. \n Demo : https://uaparser.dev\n Source : https://github.com/faisalman/ua-parser-js */\n/////////////////////////////////////////////////////////////////////////////////\n\n/* jshint esversion: 6 */ \n/* globals window */\n\n\n \n //////////////\n // Constants\n /////////////\n\n var LIBVERSION = '2.0.0',\n EMPTY = '',\n UNKNOWN = '?',\n FUNC_TYPE = 'function',\n UNDEF_TYPE = 'undefined',\n OBJ_TYPE = 'object',\n STR_TYPE = 'string',\n MAJOR = 'major',\n MODEL = 'model',\n NAME = 'name',\n TYPE = 'type',\n VENDOR = 'vendor',\n VERSION = 'version',\n ARCHITECTURE= 'architecture',\n CONSOLE = 'console',\n MOBILE = 'mobile',\n TABLET = 'tablet',\n SMARTTV = 'smarttv',\n WEARABLE = 'wearable',\n XR = 'xr',\n EMBEDDED = 'embedded',\n INAPP = 'inapp',\n USER_AGENT = 'user-agent',\n UA_MAX_LENGTH = 500,\n BRANDS = 'brands',\n FORMFACTORS = 'formFactors',\n FULLVERLIST = 'fullVersionList',\n PLATFORM = 'platform',\n PLATFORMVER = 'platformVersion',\n BITNESS = 'bitness',\n CH_HEADER = 'sec-ch-ua',\n CH_HEADER_FULL_VER_LIST = CH_HEADER + '-full-version-list',\n CH_HEADER_ARCH = CH_HEADER + '-arch',\n CH_HEADER_BITNESS = CH_HEADER + '-' + BITNESS,\n CH_HEADER_FORM_FACTORS = CH_HEADER + '-form-factors',\n CH_HEADER_MOBILE = CH_HEADER + '-' + MOBILE,\n CH_HEADER_MODEL = CH_HEADER + '-' + MODEL,\n CH_HEADER_PLATFORM = CH_HEADER + '-' + PLATFORM,\n CH_HEADER_PLATFORM_VER = CH_HEADER_PLATFORM + '-version',\n CH_ALL_VALUES = [BRANDS, FULLVERLIST, MOBILE, MODEL, PLATFORM, PLATFORMVER, ARCHITECTURE, FORMFACTORS, BITNESS],\n UA_BROWSER = 'browser',\n UA_CPU = 'cpu',\n UA_DEVICE = 'device',\n UA_ENGINE = 'engine',\n UA_OS = 'os',\n UA_RESULT = 'result',\n AMAZON = 'Amazon',\n APPLE = 'Apple',\n ASUS = 'ASUS',\n BLACKBERRY = 'BlackBerry',\n GOOGLE = 'Google',\n HUAWEI = 'Huawei',\n LENOVO = 'Lenovo',\n HONOR = 'Honor',\n LG = 'LG',\n MICROSOFT = 'Microsoft',\n MOTOROLA = 'Motorola',\n SAMSUNG = 'Samsung',\n SHARP = 'Sharp',\n SONY = 'Sony',\n XIAOMI = 'Xiaomi',\n ZEBRA = 'Zebra',\n PREFIX_MOBILE = 'Mobile ',\n SUFFIX_BROWSER = ' Browser',\n CHROME = 'Chrome',\n CHROMECAST = 'Chromecast',\n EDGE = 'Edge',\n FIREFOX = 'Firefox',\n OPERA = 'Opera',\n FACEBOOK = 'Facebook',\n SOGOU = 'Sogou',\n WINDOWS = 'Windows';\n \n var isWindow = typeof window !== UNDEF_TYPE,\n NAVIGATOR = (isWindow && window.navigator) ? \n window.navigator : \n undefined,\n NAVIGATOR_UADATA = (NAVIGATOR && NAVIGATOR.userAgentData) ? \n NAVIGATOR.userAgentData : \n undefined;\n\n ///////////\n // Helper\n //////////\n\n var extend = function (defaultRgx, extensions) {\n var mergedRgx = {};\n var extraRgx = extensions;\n if (!isExtensions(extensions)) {\n extraRgx = {};\n for (var i in extensions) {\n for (var j in extensions[i]) {\n extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);\n }\n }\n }\n for (var k in defaultRgx) {\n mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];\n }\n return mergedRgx;\n },\n enumerize = function (arr) {\n var enums = {};\n for (var i=0; i 0) {\n for (var i in str1) {\n if (lowerize(str1[i]) == lowerize(str2)) return true;\n }\n return false;\n }\n return isString(str1) ? lowerize(str2).indexOf(lowerize(str1)) !== -1 : false;\n },\n isExtensions = function (obj, deep) {\n for (var prop in obj) {\n return /^(browser|cpu|device|engine|os)$/.test(prop) || (deep ? isExtensions(obj[prop]) : false);\n }\n },\n isString = function (val) {\n return typeof val === STR_TYPE;\n },\n itemListToArray = function (header) {\n if (!header) return undefined;\n var arr = [];\n var tokens = strip(/\\\\?\\\"/g, header).split(',');\n for (var i = 0; i < tokens.length; i++) {\n if (tokens[i].indexOf(';') > -1) {\n var token = trim(tokens[i]).split(';v=');\n arr[i] = { brand : token[0], version : token[1] };\n } else {\n arr[i] = trim(tokens[i]);\n }\n }\n return arr;\n },\n lowerize = function (str) {\n return isString(str) ? str.toLowerCase() : str;\n },\n majorize = function (version) {\n return isString(version) ? strip(/[^\\d\\.]/g, version).split('.')[0] : undefined;\n },\n setProps = function (arr) {\n for (var i in arr) {\n var propName = arr[i];\n if (typeof propName == OBJ_TYPE && propName.length == 2) {\n this[propName[0]] = propName[1];\n } else {\n this[propName] = undefined;\n }\n }\n return this;\n },\n strip = function (pattern, str) {\n return isString(str) ? str.replace(pattern, EMPTY) : str;\n },\n stripQuotes = function (str) {\n return strip(/\\\\?\\\"/g, str); \n },\n trim = function (str, len) {\n if (isString(str)) {\n str = strip(/^\\s\\s*/, str);\n return typeof len === UNDEF_TYPE ? str : str.substring(0, UA_MAX_LENGTH);\n }\n };\n\n ///////////////\n // Map helper\n //////////////\n\n var rgxMapper = function (ua, arrays) {\n\n if(!ua || !arrays) return;\n\n var i = 0, j, k, p, q, matches, match;\n\n // loop through all regexes maps\n while (i < arrays.length && !matches) {\n\n var regex = arrays[i], // even sequence (0,2,4,..)\n props = arrays[i + 1]; // odd sequence (1,3,5,..)\n j = k = 0;\n\n // try matching uastring with regexes\n while (j < regex.length && !matches) {\n\n if (!regex[j]) { break; }\n matches = regex[j++].exec(ua);\n\n if (!!matches) {\n for (p = 0; p < props.length; p++) {\n match = matches[++k];\n q = props[p];\n // check if given property is actually array\n if (typeof q === OBJ_TYPE && q.length > 0) {\n if (q.length === 2) {\n if (typeof q[1] == FUNC_TYPE) {\n // assign modified match\n this[q[0]] = q[1].call(this, match);\n } else {\n // assign given value, ignore regex match\n this[q[0]] = q[1];\n }\n } else if (q.length === 3) {\n // check whether function or regex\n if (typeof q[1] === FUNC_TYPE && !(q[1].exec && q[1].test)) {\n // call function (usually string mapper)\n this[q[0]] = match ? q[1].call(this, match, q[2]) : undefined;\n } else {\n // sanitize match using given regex\n this[q[0]] = match ? match.replace(q[1], q[2]) : undefined;\n }\n } else if (q.length === 4) {\n this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : undefined;\n }\n } else {\n this[q] = match ? match : undefined;\n }\n }\n }\n }\n i += 2;\n }\n },\n\n strMapper = function (str, map) {\n\n for (var i in map) {\n // check if current value is array\n if (typeof map[i] === OBJ_TYPE && map[i].length > 0) {\n for (var j = 0; j < map[i].length; j++) {\n if (has(map[i][j], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n } else if (has(map[i], str)) {\n return (i === UNKNOWN) ? undefined : i;\n }\n }\n return map.hasOwnProperty('*') ? map['*'] : str;\n };\n\n ///////////////\n // String map\n //////////////\n\n var windowsVersionMap = {\n 'ME' : '4.90',\n 'NT 3.11' : 'NT3.51',\n 'NT 4.0' : 'NT4.0',\n '2000' : 'NT 5.0',\n 'XP' : ['NT 5.1', 'NT 5.2'],\n 'Vista' : 'NT 6.0',\n '7' : 'NT 6.1',\n '8' : 'NT 6.2',\n '8.1' : 'NT 6.3',\n '10' : ['NT 6.4', 'NT 10.0'],\n 'RT' : 'ARM'\n },\n \n formFactorsMap = {\n 'embedded' : 'Automotive',\n 'mobile' : 'Mobile',\n 'tablet' : ['Tablet', 'EInk'],\n 'smarttv' : 'TV',\n 'wearable' : 'Watch',\n 'xr' : ['VR', 'XR'],\n '?' : ['Desktop', 'Unknown'],\n '*' : undefined\n };\n\n //////////////\n // Regex map\n /////////////\n\n var defaultRegexes = {\n\n browser : [[\n\n // Most common regardless engine\n /\\b(?:crmo|crios)\\/([\\w\\.]+)/i // Chrome for Android/iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n /edg(?:e|ios|a)?\\/([\\w\\.]+)/i // Microsoft Edge\n ], [VERSION, [NAME, 'Edge']], [\n\n // Presto based\n /(opera mini)\\/([-\\w\\.]+)/i, // Opera Mini\n /(opera [mobiletab]{3,6})\\b.+version\\/([-\\w\\.]+)/i, // Opera Mobi/Tablet\n /(opera)(?:.+version\\/|[\\/ ]+)([\\w\\.]+)/i // Opera\n ], [NAME, VERSION], [\n /opios[\\/ ]+([\\w\\.]+)/i // Opera mini on iphone >= 8.0\n ], [VERSION, [NAME, OPERA+' Mini']], [\n /\\bop(?:rg)?x\\/([\\w\\.]+)/i // Opera GX\n ], [VERSION, [NAME, OPERA+' GX']], [\n /\\bopr\\/([\\w\\.]+)/i // Opera Webkit\n ], [VERSION, [NAME, OPERA]], [\n\n // Mixed\n /\\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\\/ ]?([\\w\\.]+)/i // Baidu\n ], [VERSION, [NAME, 'Baidu']], [\n /\\b(?:mxbrowser|mxios|myie2)\\/?([-\\w\\.]*)\\b/i // Maxthon\n ], [VERSION, [NAME, 'Maxthon']], [\n /(kindle)\\/([\\w\\.]+)/i, // Kindle\n /(lunascape|maxthon|netfront|jasmine|blazer|sleipnir)[\\/ ]?([\\w\\.]*)/i, \n // Lunascape/Maxthon/Netfront/Jasmine/Blazer/Sleipnir\n // Trident based\n /(avant|iemobile|slim(?:browser|boat|jet))[\\/ ]?([\\d\\.]*)/i, // Avant/IEMobile/SlimBrowser/SlimBoat/Slimjet\n /(?:ms|\\()(ie) ([\\w\\.]+)/i, // Internet Explorer\n\n // Blink/Webkit/KHTML based // Flock/RockMelt/Midori/Epiphany/Silk/Skyfire/Bolt/Iron/Iridium/PhantomJS/Bowser/QupZilla/Falkon\n /(flock|rockmelt|midori|epiphany|silk|skyfire|ovibrowser|bolt|iron|vivaldi|iridium|phantomjs|bowser|qupzilla|falkon|rekonq|puffin|brave|whale(?!.+naver)|qqbrowserlite|duckduckgo|klar|helio|(?=comodo_)?dragon)\\/([-\\w\\.]+)/i,\n // Rekonq/Puffin/Brave/Whale/QQBrowserLite/QQ//Vivaldi/DuckDuckGo/Klar/Helio/Dragon\n /(heytap|ovi|115)browser\\/([\\d\\.]+)/i, // HeyTap/Ovi/115\n /(weibo)__([\\d\\.]+)/i // Weibo\n ], [NAME, VERSION], [\n /quark(?:pc)?\\/([-\\w\\.]+)/i // Quark\n ], [VERSION, [NAME, 'Quark']], [\n /\\bddg\\/([\\w\\.]+)/i // DuckDuckGo\n ], [VERSION, [NAME, 'DuckDuckGo']], [\n /(?:\\buc? ?browser|(?:juc.+)ucweb)[\\/ ]?([\\w\\.]+)/i // UCBrowser\n ], [VERSION, [NAME, 'UCBrowser']], [\n /microm.+\\bqbcore\\/([\\w\\.]+)/i, // WeChat Desktop for Windows Built-in Browser\n /\\bqbcore\\/([\\w\\.]+).+microm/i,\n /micromessenger\\/([\\w\\.]+)/i // WeChat\n ], [VERSION, [NAME, 'WeChat']], [\n /konqueror\\/([\\w\\.]+)/i // Konqueror\n ], [VERSION, [NAME, 'Konqueror']], [\n /trident.+rv[: ]([\\w\\.]{1,9})\\b.+like gecko/i // IE11\n ], [VERSION, [NAME, 'IE']], [\n /ya(?:search)?browser\\/([\\w\\.]+)/i // Yandex\n ], [VERSION, [NAME, 'Yandex']], [\n /slbrowser\\/([\\w\\.]+)/i // Smart Lenovo Browser\n ], [VERSION, [NAME, 'Smart ' + LENOVO + SUFFIX_BROWSER]], [\n /(avast|avg)\\/([\\w\\.]+)/i // Avast/AVG Secure Browser\n ], [[NAME, /(.+)/, '$1 Secure' + SUFFIX_BROWSER], VERSION], [\n /\\bfocus\\/([\\w\\.]+)/i // Firefox Focus\n ], [VERSION, [NAME, FIREFOX+' Focus']], [\n /\\bopt\\/([\\w\\.]+)/i // Opera Touch\n ], [VERSION, [NAME, OPERA+' Touch']], [\n /coc_coc\\w+\\/([\\w\\.]+)/i // Coc Coc Browser\n ], [VERSION, [NAME, 'Coc Coc']], [\n /dolfin\\/([\\w\\.]+)/i // Dolphin\n ], [VERSION, [NAME, 'Dolphin']], [\n /coast\\/([\\w\\.]+)/i // Opera Coast\n ], [VERSION, [NAME, OPERA+' Coast']], [\n /miuibrowser\\/([\\w\\.]+)/i // MIUI Browser\n ], [VERSION, [NAME, 'MIUI' + SUFFIX_BROWSER]], [\n /fxios\\/([\\w\\.-]+)/i // Firefox for iOS\n ], [VERSION, [NAME, PREFIX_MOBILE + FIREFOX]], [\n /\\bqihoobrowser\\/?([\\w\\.]*)/i // 360\n ], [VERSION, [NAME, '360']], [\n /\\b(qq)\\/([\\w\\.]+)/i // QQ\n ], [[NAME, /(.+)/, '$1Browser'], VERSION], [\n /(oculus|sailfish|huawei|vivo|pico)browser\\/([\\w\\.]+)/i\n ], [[NAME, /(.+)/, '$1' + SUFFIX_BROWSER], VERSION], [ // Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser\n /samsungbrowser\\/([\\w\\.]+)/i // Samsung Internet\n ], [VERSION, [NAME, SAMSUNG + ' Internet']], [\n /metasr[\\/ ]?([\\d\\.]+)/i // Sogou Explorer\n ], [VERSION, [NAME, SOGOU + ' Explorer']], [\n /(sogou)mo\\w+\\/([\\d\\.]+)/i // Sogou Mobile\n ], [[NAME, SOGOU + ' Mobile'], VERSION], [\n /(electron)\\/([\\w\\.]+) safari/i, // Electron-based App\n /(tesla)(?: qtcarbrowser|\\/(20\\d\\d\\.[-\\w\\.]+))/i, // Tesla\n /m?(qqbrowser|2345(?=browser|chrome|explorer))\\w*[\\/ ]?v?([\\w\\.]+)/i // QQ/2345\n ], [NAME, VERSION], [\n /(lbbrowser|rekonq)/i // LieBao Browser/Rekonq\n ], [NAME], [\n /ome\\/([\\w\\.]+) \\w* ?(iron) saf/i, // Iron\n /ome\\/([\\w\\.]+).+qihu (360)[es]e/i // 360\n ], [VERSION, NAME], [\n\n // WebView\n /((?:fban\\/fbios|fb_iab\\/fb4a)(?!.+fbav)|;fbav\\/([\\w\\.]+);)/i // Facebook App for iOS & Android\n ], [[NAME, FACEBOOK], VERSION, [TYPE, INAPP]], [\n /(Klarna)\\/([\\w\\.]+)/i, // Klarna Shopping Browser for iOS & Android\n /(kakao(?:talk|story))[\\/ ]([\\w\\.]+)/i, // Kakao App\n /(naver)\\(.*?(\\d+\\.[\\w\\.]+).*\\)/i, // Naver InApp\n /safari (line)\\/([\\w\\.]+)/i, // Line App for iOS\n /\\b(line)\\/([\\w\\.]+)\\/iab/i, // Line App for Android\n /(alipay)client\\/([\\w\\.]+)/i, // Alipay\n /(twitter)(?:and| f.+e\\/([\\w\\.]+))/i, // Twitter\n /(instagram|snapchat)[\\/ ]([-\\w\\.]+)/i // Instagram/Snapchat\n ], [NAME, VERSION, [TYPE, INAPP]], [\n /\\bgsa\\/([\\w\\.]+) .*safari\\//i // Google Search Appliance on iOS\n ], [VERSION, [NAME, 'GSA'], [TYPE, INAPP]], [\n /musical_ly(?:.+app_?version\\/|_)([\\w\\.]+)/i // TikTok\n ], [VERSION, [NAME, 'TikTok'], [TYPE, INAPP]], [\n /\\[(linkedin)app\\]/i // LinkedIn App for iOS & Android\n ], [NAME, [TYPE, INAPP]], [\n\n /(chromium)[\\/ ]([-\\w\\.]+)/i // Chromium\n ], [NAME, VERSION], [\n\n /headlesschrome(?:\\/([\\w\\.]+)| )/i // Chrome Headless\n ], [VERSION, [NAME, CHROME+' Headless']], [\n\n / wv\\).+(chrome)\\/([\\w\\.]+)/i // Chrome WebView\n ], [[NAME, CHROME+' WebView'], VERSION], [\n\n /droid.+ version\\/([\\w\\.]+)\\b.+(?:mobile safari|safari)/i // Android Browser\n ], [VERSION, [NAME, 'Android' + SUFFIX_BROWSER]], [\n\n /chrome\\/([\\w\\.]+) mobile/i // Chrome Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Chrome']], [\n\n /(chrome|omniweb|arora|[tizenoka]{5} ?browser)\\/v?([\\w\\.]+)/i // Chrome/OmniWeb/Arora/Tizen/Nokia\n ], [NAME, VERSION], [\n\n /version\\/([\\w\\.\\,]+) .*mobile(?:\\/\\w+ | ?)safari/i // Safari Mobile\n ], [VERSION, [NAME, PREFIX_MOBILE + 'Safari']], [\n /iphone .*mobile(?:\\/\\w+ | ?)safari/i\n ], [[NAME, PREFIX_MOBILE + 'Safari']], [\n /version\\/([\\w\\.\\,]+) .*(safari)/i // Safari\n ], [VERSION, NAME], [\n /webkit.+?(mobile ?safari|safari)(\\/[\\w\\.]+)/i // Safari < 3.0\n ], [NAME, [VERSION, '1']], [\n\n /(webkit|khtml)\\/([\\w\\.]+)/i\n ], [NAME, VERSION], [\n\n // Gecko based\n /(?:mobile|tablet);.*(firefox)\\/([\\w\\.-]+)/i // Firefox Mobile\n ], [[NAME, PREFIX_MOBILE + FIREFOX], VERSION], [\n /(navigator|netscape\\d?)\\/([-\\w\\.]+)/i // Netscape\n ], [[NAME, 'Netscape'], VERSION], [\n /(wolvic|librewolf)\\/([\\w\\.]+)/i // Wolvic/LibreWolf\n ], [NAME, VERSION], [\n /mobile vr; rv:([\\w\\.]+)\\).+firefox/i // Firefox Reality\n ], [VERSION, [NAME, FIREFOX+' Reality']], [\n /ekiohf.+(flow)\\/([\\w\\.]+)/i, // Flow\n /(swiftfox)/i, // Swiftfox\n /(icedragon|iceweasel|camino|chimera|fennec|maemo browser|minimo|conkeror)[\\/ ]?([\\w\\.\\+]+)/i,\n // IceDragon/Iceweasel/Camino/Chimera/Fennec/Maemo/Minimo/Conkeror\n /(seamonkey|k-meleon|icecat|iceape|firebird|phoenix|palemoon|basilisk|waterfox)\\/([-\\w\\.]+)$/i,\n // Firefox/SeaMonkey/K-Meleon/IceCat/IceApe/Firebird/Phoenix\n /(firefox)\\/([\\w\\.]+)/i, // Other Firefox-based\n /(mozilla)\\/([\\w\\.]+) .+rv\\:.+gecko\\/\\d+/i, // Mozilla\n\n // Other\n /(polaris|lynx|dillo|icab|doris|amaya|w3m|netsurf|obigo|mosaic|(?:go|ice|up)[\\. ]?browser)[-\\/ ]?v?([\\w\\.]+)/i,\n // Polaris/Lynx/Dillo/iCab/Doris/Amaya/w3m/NetSurf/Obigo/Mosaic/Go/ICE/UP.Browser\n /\\b(links) \\(([\\w\\.]+)/i // Links\n ], [NAME, [VERSION, /_/g, '.']], [\n \n /(cobalt)\\/([\\w\\.]+)/i // Cobalt\n ], [NAME, [VERSION, /[^\\d\\.]+./, EMPTY]]\n ],\n\n cpu : [[\n\n /\\b(?:(amd|x|x86[-_]?|wow|win)64)\\b/i // AMD64 (x64)\n ], [[ARCHITECTURE, 'amd64']], [\n\n /(ia32(?=;))/i, // IA32 (quicktime)\n /((?:i[346]|x)86)[;\\)]/i // IA32 (x86)\n ], [[ARCHITECTURE, 'ia32']], [\n\n /\\b(aarch64|arm(v?8e?l?|_?64))\\b/i // ARM64\n ], [[ARCHITECTURE, 'arm64']], [\n\n /\\b(arm(?:v[67])?ht?n?[fl]p?)\\b/i // ARMHF\n ], [[ARCHITECTURE, 'armhf']], [\n\n // PocketPC mistakenly identified as PowerPC\n /windows (ce|mobile); ppc;/i\n ], [[ARCHITECTURE, 'arm']], [\n\n /((?:ppc|powerpc)(?:64)?)(?: mac|;|\\))/i // PowerPC\n ], [[ARCHITECTURE, /ower/, EMPTY, lowerize]], [\n\n /(sun4\\w)[;\\)]/i // SPARC\n ], [[ARCHITECTURE, 'sparc']], [\n\n /((?:avr32|ia64(?=;))|68k(?=\\))|\\barm(?=v(?:[1-7]|[5-7]1)l?|;|eabi)|(?=atmel )avr|(?:irix|mips|sparc)(?:64)?\\b|pa-risc)/i\n // IA64, 68K, ARM/64, AVR/32, IRIX/64, MIPS/64, SPARC/64, PA-RISC\n ], [[ARCHITECTURE, lowerize]]\n ],\n\n device : [[\n\n //////////////////////////\n // MOBILES & TABLETS\n /////////////////////////\n\n // Samsung\n /\\b(sch-i[89]0\\d|shw-m380s|sm-[ptx]\\w{2,4}|gt-[pn]\\d{2,4}|sgh-t8[56]9|nexus 10)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, TABLET]], [\n /\\b((?:s[cgp]h|gt|sm)-(?![lr])\\w+|sc[g-]?[\\d]+a?|galaxy nexus)/i,\n /samsung[- ]((?!sm-[lr])[-\\w]+)/i,\n /sec-(sgh\\w+)/i\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, MOBILE]], [\n\n // Apple\n /(?:\\/|\\()(ip(?:hone|od)[\\w, ]*)(?:\\/|;)/i // iPod/iPhone\n ], [MODEL, [VENDOR, APPLE], [TYPE, MOBILE]], [\n /\\((ipad);[-\\w\\),; ]+apple/i, // iPad\n /applecoremedia\\/[\\w\\.]+ \\((ipad)/i,\n /\\b(ipad)\\d\\d?,\\d\\d?[;\\]].+ios/i\n ], [MODEL, [VENDOR, APPLE], [TYPE, TABLET]], [\n /(macintosh);/i\n ], [MODEL, [VENDOR, APPLE]], [\n\n // Sharp\n /\\b(sh-?[altvz]?\\d\\d[a-ekm]?)/i\n ], [MODEL, [VENDOR, SHARP], [TYPE, MOBILE]], [\n\n // Honor\n /(?:honor)([-\\w ]+)[;\\)]/i\n ], [MODEL, [VENDOR, HONOR], [TYPE, MOBILE]], [\n\n // Huawei\n /\\b((?:ag[rs][23]?|bah2?|sht?|btv)-a?[lw]\\d{2})\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, TABLET]], [\n /(?:huawei)([-\\w ]+)[;\\)]/i,\n /\\b(nexus 6p|\\w{2,4}e?-[atu]?[ln][\\dx][012359c][adn]?)\\b(?!.+d\\/s)/i\n ], [MODEL, [VENDOR, HUAWEI], [TYPE, MOBILE]], [\n\n // Xiaomi\n /\\b(poco[\\w ]+|m2\\d{3}j\\d\\d[a-z]{2})(?: bui|\\))/i, // Xiaomi POCO\n /\\b; (\\w+) build\\/hm\\1/i, // Xiaomi Hongmi 'numeric' models\n /\\b(hm[-_ ]?note?[_ ]?(?:\\d\\w)?) bui/i, // Xiaomi Hongmi\n /\\b(redmi[\\-_ ]?(?:note|k)?[\\w_ ]+)(?: bui|\\))/i, // Xiaomi Redmi\n /oid[^\\)]+; (m?[12][0-389][01]\\w{3,6}[c-y])( bui|; wv|\\))/i, // Xiaomi Redmi 'numeric' models\n /\\b(mi[-_ ]?(?:a\\d|one|one[_ ]plus|note lte|max|cc)?[_ ]?(?:\\d?\\w?)[_ ]?(?:plus|se|lite|pro)?)(?: bui|\\))/i // Xiaomi Mi\n ], [[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, MOBILE]], [\n /oid[^\\)]+; (2\\d{4}(283|rpbf)[cgl])( bui|\\))/i, // Redmi Pad\n /\\b(mi[-_ ]?(?:pad)(?:[\\w_ ]+))(?: bui|\\))/i // Mi Pad tablets\n ],[[MODEL, /_/g, ' '], [VENDOR, XIAOMI], [TYPE, TABLET]], [\n\n // OPPO\n /; (\\w+) bui.+ oppo/i,\n /\\b(cph[12]\\d{3}|p(?:af|c[al]|d\\w|e[ar])[mt]\\d0|x9007|a101op)\\b/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, MOBILE]], [\n /\\b(opd2\\d{3}a?) bui/i\n ], [MODEL, [VENDOR, 'OPPO'], [TYPE, TABLET]], [\n\n // Vivo\n /vivo (\\w+)(?: bui|\\))/i,\n /\\b(v[12]\\d{3}\\w?[at])(?: bui|;)/i\n ], [MODEL, [VENDOR, 'Vivo'], [TYPE, MOBILE]], [\n\n // Realme\n /\\b(rmx[1-3]\\d{3})(?: bui|;|\\))/i\n ], [MODEL, [VENDOR, 'Realme'], [TYPE, MOBILE]], [\n\n // Motorola\n /\\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\\b[\\w ]+build\\//i,\n /\\bmot(?:orola)?[- ](\\w*)/i,\n /((?:moto[\\w\\(\\) ]+|xt\\d{3,4}|nexus 6)(?= bui|\\)))/i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, MOBILE]], [\n /\\b(mz60\\d|xoom[2 ]{0,2}) build\\//i\n ], [MODEL, [VENDOR, MOTOROLA], [TYPE, TABLET]], [\n\n // LG\n /((?=lg)?[vl]k\\-?\\d{3}) bui| 3\\.[-\\w; ]{10}lg?-([06cv9]{3,4})/i\n ], [MODEL, [VENDOR, LG], [TYPE, TABLET]], [\n /(lm(?:-?f100[nv]?|-[\\w\\.]+)(?= bui|\\))|nexus [45])/i,\n /\\blg[-e;\\/ ]+((?!browser|netcast|android tv)\\w+)/i,\n /\\blg-?([\\d\\w]+) bui/i\n ], [MODEL, [VENDOR, LG], [TYPE, MOBILE]], [\n\n // Lenovo\n /(ideatab[-\\w ]+)/i,\n /lenovo ?(s[56]000[-\\w]+|tab(?:[\\w ]+)|yt[-\\d\\w]{6}|tb[-\\d\\w]{6})/i\n ], [MODEL, [VENDOR, LENOVO], [TYPE, TABLET]], [\n\n // Nokia\n /(?:maemo|nokia).*(n900|lumia \\d+)/i,\n /nokia[-_ ]?([-\\w\\.]*)/i\n ], [[MODEL, /_/g, ' '], [VENDOR, 'Nokia'], [TYPE, MOBILE]], [\n\n // Google\n /(pixel c)\\b/i // Google Pixel C\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, TABLET]], [\n /droid.+; (pixel[\\daxl ]{0,6})(?: bui|\\))/i // Google Pixel\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, MOBILE]], [\n\n // Sony\n /droid.+; (a?\\d[0-2]{2}so|[c-g]\\d{4}|so[-gl]\\w+|xq-a\\w[4-7][12])(?= bui|\\).+chrome\\/(?![1-6]{0,1}\\d\\.))/i\n ], [MODEL, [VENDOR, SONY], [TYPE, MOBILE]], [\n /sony tablet [ps]/i,\n /\\b(?:sony)?sgp\\w+(?: bui|\\))/i\n ], [[MODEL, 'Xperia Tablet'], [VENDOR, SONY], [TYPE, TABLET]], [\n\n // OnePlus\n / (kb2005|in20[12]5|be20[12][59])\\b/i,\n /(?:one)?(?:plus)? (a\\d0\\d\\d)(?: b|\\))/i\n ], [MODEL, [VENDOR, 'OnePlus'], [TYPE, MOBILE]], [\n\n // Amazon\n /(alexa)webm/i,\n /(kf[a-z]{2}wi|aeo(?!bc)\\w\\w)( bui|\\))/i, // Kindle Fire without Silk / Echo Show\n /(kf[a-z]+)( bui|\\)).+silk\\//i // Kindle Fire HD\n ], [MODEL, [VENDOR, AMAZON], [TYPE, TABLET]], [\n /((?:sd|kf)[0349hijorstuw]+)( bui|\\)).+silk\\//i // Fire Phone\n ], [[MODEL, /(.+)/g, 'Fire Phone $1'], [VENDOR, AMAZON], [TYPE, MOBILE]], [\n\n // BlackBerry\n /(playbook);[-\\w\\),; ]+(rim)/i // BlackBerry PlayBook\n ], [MODEL, VENDOR, [TYPE, TABLET]], [\n /\\b((?:bb[a-f]|st[hv])100-\\d)/i,\n /\\(bb10; (\\w+)/i // BlackBerry 10\n ], [MODEL, [VENDOR, BLACKBERRY], [TYPE, MOBILE]], [\n\n // Asus\n /(?:\\b|asus_)(transfo[prime ]{4,10} \\w+|eeepc|slider \\w+|nexus 7|padfone|p00[cj])/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, TABLET]], [\n / (z[bes]6[027][012][km][ls]|zenfone \\d\\w?)\\b/i\n ], [MODEL, [VENDOR, ASUS], [TYPE, MOBILE]], [\n\n // HTC\n /(nexus 9)/i // HTC Nexus 9\n ], [MODEL, [VENDOR, 'HTC'], [TYPE, TABLET]], [\n /(htc)[-;_ ]{1,2}([\\w ]+(?=\\)| bui)|\\w+)/i, // HTC\n\n // ZTE\n /(zte)[- ]([\\w ]+?)(?: bui|\\/|\\))/i,\n /(alcatel|geeksphone|nexian|panasonic(?!(?:;|\\.))|sony(?!-bra))[-_ ]?([-\\w]*)/i // Alcatel/GeeksPhone/Nexian/Panasonic/Sony\n ], [VENDOR, [MODEL, /_/g, ' '], [TYPE, MOBILE]], [\n\n // TCL\n /tcl (xess p17aa)/i,\n /droid [\\w\\.]+; ((?:8[14]9[16]|9(?:0(?:48|60|8[01])|1(?:3[27]|66)|2(?:6[69]|9[56])|466))[gqswx])(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, TABLET]], [\n /droid [\\w\\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\\w(\\w|\\w\\w))?(\\)| bui)/i\n ], [MODEL, [VENDOR, 'TCL'], [TYPE, MOBILE]], [\n\n // itel\n /(itel) ((\\w+))/i\n ], [[VENDOR, lowerize], MODEL, [TYPE, strMapper, { 'tablet' : ['p10001l', 'w7001'], '*' : 'mobile' }]], [\n\n // Acer\n /droid.+; ([ab][1-7]-?[0178a]\\d\\d?)/i\n ], [MODEL, [VENDOR, 'Acer'], [TYPE, TABLET]], [\n\n // Meizu\n /droid.+; (m[1-5] note) bui/i,\n /\\bmz-([-\\w]{2,})/i\n ], [MODEL, [VENDOR, 'Meizu'], [TYPE, MOBILE]], [\n \n // Ulefone\n /; ((?:power )?armor(?:[\\w ]{0,8}))(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Ulefone'], [TYPE, MOBILE]], [\n\n // Energizer\n /; (energy ?\\w+)(?: bui|\\))/i,\n /; energizer ([\\w ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Energizer'], [TYPE, MOBILE]], [\n\n // Cat\n /; cat (b35);/i,\n /; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Cat'], [TYPE, MOBILE]], [\n\n // Smartfren\n /((?:new )?andromax[\\w- ]+)(?: bui|\\))/i\n ], [MODEL, [VENDOR, 'Smartfren'], [TYPE, MOBILE]], [\n\n // Nothing\n /droid.+; (a(?:015|06[35]|142p?))/i\n ], [MODEL, [VENDOR, 'Nothing'], [TYPE, MOBILE]], [\n\n // MIXED\n /(blackberry|benq|palm(?=\\-)|sonyericsson|acer|asus|dell|meizu|motorola|polytron|infinix|tecno|micromax|advan)[-_ ]?([-\\w]*)/i,\n // BlackBerry/BenQ/Palm/Sony-Ericsson/Acer/Asus/Dell/Meizu/Motorola/Polytron/Infinix/Tecno/Micromax/Advan\n /; (imo) ((?!tab)[\\w ]+?)(?: bui|\\))/i, // IMO\n /(hp) ([\\w ]+\\w)/i, // HP iPAQ\n /(asus)-?(\\w+)/i, // Asus\n /(microsoft); (lumia[\\w ]+)/i, // Microsoft Lumia\n /(lenovo)[-_ ]?([-\\w]+)/i, // Lenovo\n /(jolla)/i, // Jolla\n /(oppo) ?([\\w ]+) bui/i // OPPO\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n\n /(imo) (tab \\w+)/i, // IMO\n /(kobo)\\s(ereader|touch)/i, // Kobo\n /(archos) (gamepad2?)/i, // Archos\n /(hp).+(touchpad(?!.+tablet)|tablet)/i, // HP TouchPad\n /(kindle)\\/([\\w\\.]+)/i // Kindle\n ], [VENDOR, MODEL, [TYPE, TABLET]], [\n\n /(surface duo)/i // Surface Duo\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, TABLET]], [\n /droid [\\d\\.]+; (fp\\du?)(?: b|\\))/i // Fairphone\n ], [MODEL, [VENDOR, 'Fairphone'], [TYPE, MOBILE]], [\n /(shield[\\w ]+) b/i // Nvidia Shield Tablets\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, TABLET]], [\n /(sprint) (\\w+)/i // Sprint Phones\n ], [VENDOR, MODEL, [TYPE, MOBILE]], [\n /(kin\\.[onetw]{3})/i // Microsoft Kin\n ], [[MODEL, /\\./g, ' '], [VENDOR, MICROSOFT], [TYPE, MOBILE]], [\n /droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\\)/i // Zebra\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, TABLET]], [\n /droid.+; (ec30|ps20|tc[2-8]\\d[kx])\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, MOBILE]], [\n\n ///////////////////\n // SMARTTVS\n ///////////////////\n\n /smart-tv.+(samsung)/i // Samsung\n ], [VENDOR, [TYPE, SMARTTV]], [\n /hbbtv.+maple;(\\d+)/i\n ], [[MODEL, /^/, 'SmartTV'], [VENDOR, SAMSUNG], [TYPE, SMARTTV]], [\n /(nux; netcast.+smarttv|lg (netcast\\.tv-201\\d|android tv))/i // LG SmartTV\n ], [[VENDOR, LG], [TYPE, SMARTTV]], [\n /(apple) ?tv/i // Apple TV\n ], [VENDOR, [MODEL, APPLE+' TV'], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/chromecast/i // Google Chromecast Third Generation\n ], [[MODEL, CHROMECAST+' Third Generation'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey.*devicetype\\/([^/]*)/i // Google Chromecast with specific device type\n ], [[MODEL, /^/, 'Chromecast '], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /fuchsia.*crkey/i // Google Chromecast Nest Hub\n ], [[MODEL, CHROMECAST+' Nest Hub'], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /crkey/i // Google Chromecast, Linux-based or unknown\n ], [[MODEL, CHROMECAST], [VENDOR, GOOGLE], [TYPE, SMARTTV]], [\n /droid.+aft(\\w+)( bui|\\))/i // Fire TV\n ], [MODEL, [VENDOR, AMAZON], [TYPE, SMARTTV]], [\n /\\(dtv[\\);].+(aquos)/i,\n /(aquos-tv[\\w ]+)\\)/i // Sharp\n ], [MODEL, [VENDOR, SHARP], [TYPE, SMARTTV]],[\n /(bravia[\\w ]+)( bui|\\))/i // Sony\n ], [MODEL, [VENDOR, SONY], [TYPE, SMARTTV]], [\n /(mitv-\\w{5}) bui/i // Xiaomi\n ], [MODEL, [VENDOR, XIAOMI], [TYPE, SMARTTV]], [\n /Hbbtv.*(technisat) (.*);/i // TechniSAT\n ], [VENDOR, MODEL, [TYPE, SMARTTV]], [\n /\\b(roku)[\\dx]*[\\)\\/]((?:dvp-)?[\\d\\.]*)/i, // Roku\n /hbbtv\\/\\d+\\.\\d+\\.\\d+ +\\([\\w\\+ ]*; *([\\w\\d][^;]*);([^;]*)/i // HbbTV devices\n ], [[VENDOR, trim], [MODEL, trim], [TYPE, SMARTTV]], [\n /\\b(android tv|smart[- ]?tv|opera tv|tv; rv:)\\b/i // SmartTV from Unidentified Vendors\n ], [[TYPE, SMARTTV]], [\n\n ///////////////////\n // CONSOLES\n ///////////////////\n\n /(ouya)/i, // Ouya\n /(nintendo) (\\w+)/i // Nintendo\n ], [VENDOR, MODEL, [TYPE, CONSOLE]], [\n /droid.+; (shield) bui/i // Nvidia\n ], [MODEL, [VENDOR, 'Nvidia'], [TYPE, CONSOLE]], [\n /(playstation \\w+)/i // Playstation\n ], [MODEL, [VENDOR, SONY], [TYPE, CONSOLE]], [\n /\\b(xbox(?: one)?(?!; xbox))[\\); ]/i // Microsoft Xbox\n ], [MODEL, [VENDOR, MICROSOFT], [TYPE, CONSOLE]], [\n\n ///////////////////\n // WEARABLES\n ///////////////////\n\n /\\b(sm-[lr]\\d\\d[05][fnuw]?s?)\\b/i // Samsung Galaxy Watch\n ], [MODEL, [VENDOR, SAMSUNG], [TYPE, WEARABLE]], [\n /((pebble))app/i // Pebble\n ], [VENDOR, MODEL, [TYPE, WEARABLE]], [\n /(watch)(?: ?os[,\\/]|\\d,\\d\\/)[\\d\\.]+/i // Apple Watch\n ], [MODEL, [VENDOR, APPLE], [TYPE, WEARABLE]], [\n /droid.+; (wt63?0{2,3})\\)/i\n ], [MODEL, [VENDOR, ZEBRA], [TYPE, WEARABLE]], [\n\n ///////////////////\n // XR\n ///////////////////\n\n /droid.+; (glass) \\d/i // Google Glass\n ], [MODEL, [VENDOR, GOOGLE], [TYPE, XR]], [\n /(pico) (4|neo3(?: link|pro)?)/i // Pico\n ], [VENDOR, MODEL, [TYPE, XR]], [\n /; (quest( \\d| pro)?)/i // Oculus Quest\n ], [MODEL, [VENDOR, FACEBOOK], [TYPE, XR]], [\n\n ///////////////////\n // EMBEDDED\n ///////////////////\n\n /(tesla)(?: qtcarbrowser|\\/[-\\w\\.]+)/i // Tesla\n ], [VENDOR, [TYPE, EMBEDDED]], [\n /(aeobc)\\b/i // Echo Dot\n ], [MODEL, [VENDOR, AMAZON], [TYPE, EMBEDDED]], [\n\n ////////////////////\n // MIXED (GENERIC)\n ///////////////////\n\n /droid .+?; ([^;]+?)(?: bui|; wv\\)|\\) applew).+? mobile safari/i // Android Phones from Unidentified Vendors\n ], [MODEL, [TYPE, MOBILE]], [\n /droid .+?; ([^;]+?)(?: bui|\\) applew).+?(?! mobile) safari/i // Android Tablets from Unidentified Vendors\n ], [MODEL, [TYPE, TABLET]], [\n /\\b((tablet|tab)[;\\/]|focus\\/\\d(?!.+mobile))/i // Unidentifiable Tablet\n ], [[TYPE, TABLET]], [\n /(phone|mobile(?:[;\\/]| [ \\w\\/\\.]*safari)|pda(?=.+windows ce))/i // Unidentifiable Mobile\n ], [[TYPE, MOBILE]], [\n /(android[-\\w\\. ]{0,9});.+buil/i // Generic Android Device\n ], [MODEL, [VENDOR, 'Generic']]\n ],\n\n engine : [[\n\n /windows.+ edge\\/([\\w\\.]+)/i // EdgeHTML\n ], [VERSION, [NAME, EDGE+'HTML']], [\n\n /(arkweb)\\/([\\w\\.]+)/i // ArkWeb\n ], [NAME, VERSION], [\n\n /webkit\\/537\\.36.+chrome\\/(?!27)([\\w\\.]+)/i // Blink\n ], [VERSION, [NAME, 'Blink']], [\n\n /(presto)\\/([\\w\\.]+)/i, // Presto\n /(webkit|trident|netfront|netsurf|amaya|lynx|w3m|goanna|servo)\\/([\\w\\.]+)/i, // WebKit/Trident/NetFront/NetSurf/Amaya/Lynx/w3m/Goanna/Servo\n /ekioh(flow)\\/([\\w\\.]+)/i, // Flow\n /(khtml|tasman|links)[\\/ ]\\(?([\\w\\.]+)/i, // KHTML/Tasman/Links\n /(icab)[\\/ ]([23]\\.[\\d\\.]+)/i, // iCab\n /\\b(libweb)/i\n ], [NAME, VERSION], [\n\n /rv\\:([\\w\\.]{1,9})\\b.+(gecko)/i // Gecko\n ], [VERSION, NAME]\n ],\n\n os : [[\n\n // Windows\n /microsoft (windows) (vista|xp)/i // Windows (iTunes)\n ], [NAME, VERSION], [\n /(windows (?:phone(?: os)?|mobile))[\\/ ]?([\\d\\.\\w ]*)/i // Windows Phone\n ], [NAME, [VERSION, strMapper, windowsVersionMap]], [\n /windows nt 6\\.2; (arm)/i, // Windows RT\n /windows[\\/ ]?([ntce\\d\\. ]+\\w)(?!.+xbox)/i,\n /(?:win(?=3|9|n)|win 9x )([nt\\d\\.]+)/i\n ], [[VERSION, strMapper, windowsVersionMap], [NAME, WINDOWS]], [\n\n // iOS/macOS\n /ip[honead]{2,4}\\b(?:.*os ([\\w]+) like mac|; opera)/i, // iOS\n /(?:ios;fbsv\\/|iphone.+ios[\\/ ])([\\d\\.]+)/i,\n /cfnetwork\\/.+darwin/i\n ], [[VERSION, /_/g, '.'], [NAME, 'iOS']], [\n /(mac os x) ?([\\w\\. ]*)/i,\n /(macintosh|mac_powerpc\\b)(?!.+haiku)/i // Mac OS\n ], [[NAME, 'macOS'], [VERSION, /_/g, '.']], [\n\n // Google Chromecast\n /android ([\\d\\.]+).*crkey/i // Google Chromecast, Android-based\n ], [VERSION, [NAME, CHROMECAST + ' Android']], [\n /fuchsia.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Fuchsia-based\n ], [VERSION, [NAME, CHROMECAST + ' Fuchsia']], [\n /crkey\\/([\\d\\.]+).*devicetype\\/smartspeaker/i // Google Chromecast, Linux-based Smart Speaker\n ], [VERSION, [NAME, CHROMECAST + ' SmartSpeaker']], [\n /linux.*crkey\\/([\\d\\.]+)/i // Google Chromecast, Legacy Linux-based\n ], [VERSION, [NAME, CHROMECAST + ' Linux']], [\n /crkey\\/([\\d\\.]+)/i // Google Chromecast, unknown\n ], [VERSION, [NAME, CHROMECAST]], [\n\n // Mobile OSes\n /droid ([\\w\\.]+)\\b.+(android[- ]x86|harmonyos)/i // Android-x86/HarmonyOS\n ], [VERSION, NAME], [ // Android/WebOS/QNX/Bada/RIM/Maemo/MeeGo/Sailfish OS/OpenHarmony\n /(android|webos|qnx|bada|rim tablet os|maemo|meego|sailfish|openharmony)[-\\/ ]?([\\w\\.]*)/i,\n /(blackberry)\\w*\\/([\\w\\.]*)/i, // Blackberry\n /(tizen|kaios)[\\/ ]([\\w\\.]+)/i, // Tizen/KaiOS\n /\\((series40);/i // Series 40\n ], [NAME, VERSION], [\n /\\(bb(10);/i // BlackBerry 10\n ], [VERSION, [NAME, BLACKBERRY]], [\n /(?:symbian ?os|symbos|s60(?=;)|series60)[-\\/ ]?([\\w\\.]*)/i // Symbian\n ], [VERSION, [NAME, 'Symbian']], [\n /mozilla\\/[\\d\\.]+ \\((?:mobile|tablet|tv|mobile; [\\w ]+); rv:.+ gecko\\/([\\w\\.]+)/i // Firefox OS\n ], [VERSION, [NAME, FIREFOX+' OS']], [\n /web0s;.+rt(tv)/i,\n /\\b(?:hp)?wos(?:browser)?\\/([\\w\\.]+)/i // WebOS\n ], [VERSION, [NAME, 'webOS']], [\n /watch(?: ?os[,\\/]|\\d,\\d\\/)([\\d\\.]+)/i // watchOS\n ], [VERSION, [NAME, 'watchOS']], [\n\n // Google ChromeOS\n /(cros) [\\w]+(?:\\)| ([\\w\\.]+)\\b)/i // Chromium OS\n ], [[NAME, \"Chrome OS\"], VERSION],[\n\n // Smart TVs\n /panasonic;(viera)/i, // Panasonic Viera\n /(netrange)mmh/i, // Netrange\n /(nettv)\\/(\\d+\\.[\\w\\.]+)/i, // NetTV\n\n // Console\n /(nintendo|playstation) (\\w+)/i, // Nintendo/Playstation\n /(xbox); +xbox ([^\\);]+)/i, // Microsoft Xbox (360, One, X, S, Series X, Series S)\n /(pico) .+os([\\w\\.]+)/i, // Pico\n\n // Other\n /\\b(joli|palm)\\b ?(?:os)?\\/?([\\w\\.]*)/i, // Joli/Palm\n /(mint)[\\/\\(\\) ]?(\\w*)/i, // Mint\n /(mageia|vectorlinux)[; ]/i, // Mageia/VectorLinux\n /([kxln]?ubuntu|debian|suse|opensuse|gentoo|arch(?= linux)|slackware|fedora|mandriva|centos|pclinuxos|red ?hat|zenwalk|linpus|raspbian|plan 9|minix|risc os|contiki|deepin|manjaro|elementary os|sabayon|linspire)(?: gnu\\/linux)?(?: enterprise)?(?:[- ]linux)?(?:-gnu)?[-\\/ ]?(?!chrom|package)([-\\w\\.]*)/i,\n // Ubuntu/Debian/SUSE/Gentoo/Arch/Slackware/Fedora/Mandriva/CentOS/PCLinuxOS/RedHat/Zenwalk/Linpus/Raspbian/Plan9/Minix/RISCOS/Contiki/Deepin/Manjaro/elementary/Sabayon/Linspire\n /(hurd|linux) ?([\\w\\.]*)/i, // Hurd/Linux\n /(gnu) ?([\\w\\.]*)/i, // GNU\n /\\b([-frentopcghs]{0,5}bsd|dragonfly)[\\/ ]?(?!amd|[ix346]{1,2}86)([\\w\\.]*)/i, // FreeBSD/NetBSD/OpenBSD/PC-BSD/GhostBSD/DragonFly\n /(haiku) (\\w+)/i // Haiku\n ], [NAME, VERSION], [\n /(sunos) ?([\\w\\.\\d]*)/i // Solaris\n ], [[NAME, 'Solaris'], VERSION], [\n /((?:open)?solaris)[-\\/ ]?([\\w\\.]*)/i, // Solaris\n /(aix) ((\\d)(?=\\.|\\)| )[\\w\\.])*/i, // AIX\n /\\b(beos|os\\/2|amigaos|morphos|openvms|fuchsia|hp-ux|serenityos)/i, // BeOS/OS2/AmigaOS/MorphOS/OpenVMS/Fuchsia/HP-UX/SerenityOS\n /(unix) ?([\\w\\.]*)/i // UNIX\n ], [NAME, VERSION]\n ]\n };\n\n /////////////////\n // Factories\n ////////////////\n\n var defaultProps = (function () {\n var props = { init : {}, isIgnore : {}, isIgnoreRgx : {}, toString : {}};\n setProps.call(props.init, [\n [UA_BROWSER, [NAME, VERSION, MAJOR, TYPE]],\n [UA_CPU, [ARCHITECTURE]],\n [UA_DEVICE, [TYPE, MODEL, VENDOR]],\n [UA_ENGINE, [NAME, VERSION]],\n [UA_OS, [NAME, VERSION]]\n ]);\n setProps.call(props.isIgnore, [\n [UA_BROWSER, [VERSION, MAJOR]],\n [UA_ENGINE, [VERSION]],\n [UA_OS, [VERSION]]\n ]);\n setProps.call(props.isIgnoreRgx, [\n [UA_BROWSER, / ?browser$/i],\n [UA_OS, / ?os$/i]\n ]);\n setProps.call(props.toString, [\n [UA_BROWSER, [NAME, VERSION]],\n [UA_CPU, [ARCHITECTURE]],\n [UA_DEVICE, [VENDOR, MODEL]],\n [UA_ENGINE, [NAME, VERSION]],\n [UA_OS, [NAME, VERSION]]\n ]);\n return props;\n })();\n\n var createIData = function (item, itemType) {\n\n var init_props = defaultProps.init[itemType],\n is_ignoreProps = defaultProps.isIgnore[itemType] || 0,\n is_ignoreRgx = defaultProps.isIgnoreRgx[itemType] || 0,\n toString_props = defaultProps.toString[itemType] || 0;\n\n function IData () {\n setProps.call(this, init_props);\n }\n\n IData.prototype.getItem = function () {\n return item;\n };\n\n IData.prototype.withClientHints = function () {\n\n // nodejs / non-client-hints browsers\n if (!NAVIGATOR_UADATA) {\n return item\n .parseCH()\n .get();\n }\n\n // browsers based on chromium 85+\n return NAVIGATOR_UADATA\n .getHighEntropyValues(CH_ALL_VALUES)\n .then(function (res) {\n return item\n .setCH(new UACHData(res, false))\n .parseCH()\n .get();\n });\n };\n\n IData.prototype.withFeatureCheck = function () {\n return item.detectFeature().get();\n };\n\n if (itemType != UA_RESULT) {\n IData.prototype.is = function (strToCheck) {\n var is = false;\n for (var i in this) {\n if (this.hasOwnProperty(i) && !has(is_ignoreProps, i) && lowerize(is_ignoreRgx ? strip(is_ignoreRgx, this[i]) : this[i]) == lowerize(is_ignoreRgx ? strip(is_ignoreRgx, strToCheck) : strToCheck)) {\n is = true;\n if (strToCheck != UNDEF_TYPE) break;\n } else if (strToCheck == UNDEF_TYPE && is) {\n is = !is;\n break;\n }\n }\n return is;\n };\n IData.prototype.toString = function () {\n var str = EMPTY;\n for (var i in toString_props) {\n if (typeof(this[toString_props[i]]) !== UNDEF_TYPE) {\n str += (str ? ' ' : EMPTY) + this[toString_props[i]];\n }\n }\n return str || UNDEF_TYPE;\n };\n }\n\n if (!NAVIGATOR_UADATA) {\n IData.prototype.then = function (cb) { \n var that = this;\n var IDataResolve = function () {\n for (var prop in that) {\n if (that.hasOwnProperty(prop)) {\n this[prop] = that[prop];\n }\n }\n };\n IDataResolve.prototype = {\n is : IData.prototype.is,\n toString : IData.prototype.toString\n };\n var resolveData = new IDataResolve();\n cb(resolveData);\n return resolveData;\n };\n }\n\n return new IData();\n };\n\n /////////////////\n // Constructor\n ////////////////\n\n function UACHData (uach, isHttpUACH) {\n uach = uach || {};\n setProps.call(this, CH_ALL_VALUES);\n if (isHttpUACH) {\n setProps.call(this, [\n [BRANDS, itemListToArray(uach[CH_HEADER])],\n [FULLVERLIST, itemListToArray(uach[CH_HEADER_FULL_VER_LIST])],\n [MOBILE, /\\?1/.test(uach[CH_HEADER_MOBILE])],\n [MODEL, stripQuotes(uach[CH_HEADER_MODEL])],\n [PLATFORM, stripQuotes(uach[CH_HEADER_PLATFORM])],\n [PLATFORMVER, stripQuotes(uach[CH_HEADER_PLATFORM_VER])],\n [ARCHITECTURE, stripQuotes(uach[CH_HEADER_ARCH])],\n [FORMFACTORS, itemListToArray(uach[CH_HEADER_FORM_FACTORS])],\n [BITNESS, stripQuotes(uach[CH_HEADER_BITNESS])]\n ]);\n } else {\n for (var prop in uach) {\n if(this.hasOwnProperty(prop) && typeof uach[prop] !== UNDEF_TYPE) this[prop] = uach[prop];\n }\n }\n }\n\n function UAItem (itemType, ua, rgxMap, uaCH) {\n\n this.get = function (prop) {\n if (!prop) return this.data;\n return this.data.hasOwnProperty(prop) ? this.data[prop] : undefined;\n };\n\n this.set = function (prop, val) {\n this.data[prop] = val;\n return this;\n };\n\n this.setCH = function (ch) {\n this.uaCH = ch;\n return this;\n };\n\n this.detectFeature = function () {\n if (NAVIGATOR && NAVIGATOR.userAgent == this.ua) {\n switch (this.itemType) {\n case UA_BROWSER:\n // Brave-specific detection\n if (NAVIGATOR.brave && typeof NAVIGATOR.brave.isBrave == FUNC_TYPE) {\n this.set(NAME, 'Brave');\n }\n break;\n case UA_DEVICE:\n // Chrome-specific detection: check for 'mobile' value of navigator.userAgentData\n if (!this.get(TYPE) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n // iPadOS-specific detection: identified as Mac, but has some iOS-only properties\n if (this.get(MODEL) == 'Macintosh' && NAVIGATOR && typeof NAVIGATOR.standalone !== UNDEF_TYPE && NAVIGATOR.maxTouchPoints && NAVIGATOR.maxTouchPoints > 2) {\n this.set(MODEL, 'iPad')\n .set(TYPE, TABLET);\n }\n break;\n case UA_OS:\n // Chrome-specific detection: check for 'platform' value of navigator.userAgentData\n if (!this.get(NAME) && NAVIGATOR_UADATA && NAVIGATOR_UADATA[PLATFORM]) {\n this.set(NAME, NAVIGATOR_UADATA[PLATFORM]);\n }\n break;\n case UA_RESULT:\n var data = this.data;\n var detect = function (itemType) {\n return data[itemType]\n .getItem()\n .detectFeature()\n .get();\n };\n this.set(UA_BROWSER, detect(UA_BROWSER))\n .set(UA_CPU, detect(UA_CPU))\n .set(UA_DEVICE, detect(UA_DEVICE))\n .set(UA_ENGINE, detect(UA_ENGINE))\n .set(UA_OS, detect(UA_OS));\n }\n }\n return this;\n };\n\n this.parseUA = function () {\n if (this.itemType != UA_RESULT) {\n rgxMapper.call(this.data, this.ua, this.rgxMap);\n }\n if (this.itemType == UA_BROWSER) {\n this.set(MAJOR, majorize(this.get(VERSION)));\n }\n return this;\n };\n\n this.parseCH = function () {\n var uaCH = this.uaCH,\n rgxMap = this.rgxMap;\n \n switch (this.itemType) {\n case UA_BROWSER:\n var brands = uaCH[FULLVERLIST] || uaCH[BRANDS], prevName;\n if (brands) {\n for (var i in brands) {\n var brandName = strip(/(Google|Microsoft) /, brands[i].brand || brands[i]),\n brandVersion = brands[i].version;\n if (!/not.a.brand/i.test(brandName) && (!prevName || (/chrom/i.test(prevName) && !/chromi/i.test(brandName)))) {\n this.set(NAME, brandName)\n .set(VERSION, brandVersion)\n .set(MAJOR, majorize(brandVersion));\n prevName = brandName;\n }\n }\n }\n break;\n case UA_CPU:\n var archName = uaCH[ARCHITECTURE];\n if (archName) {\n if (archName && uaCH[BITNESS] == '64') archName += '64';\n rgxMapper.call(this.data, archName + ';', rgxMap);\n }\n break;\n case UA_DEVICE:\n if (uaCH[MOBILE]) {\n this.set(TYPE, MOBILE);\n }\n if (uaCH[MODEL]) {\n this.set(MODEL, uaCH[MODEL]);\n }\n // Xbox-Specific Detection\n if (uaCH[MODEL] == 'Xbox') {\n this.set(TYPE, CONSOLE)\n .set(VENDOR, MICROSOFT);\n }\n if (uaCH[FORMFACTORS]) {\n var ff;\n if (typeof uaCH[FORMFACTORS] !== 'string') {\n var idx = 0;\n while (!ff && idx < uaCH[FORMFACTORS].length) {\n ff = strMapper(uaCH[FORMFACTORS][idx++], formFactorsMap);\n }\n } else {\n ff = strMapper(uaCH[FORMFACTORS], formFactorsMap);\n }\n this.set(TYPE, ff);\n }\n break;\n case UA_OS:\n var osName = uaCH[PLATFORM];\n if(osName) {\n var osVersion = uaCH[PLATFORMVER];\n if (osName == WINDOWS) osVersion = (parseInt(majorize(osVersion), 10) >= 13 ? '11' : '10');\n this.set(NAME, osName)\n .set(VERSION, osVersion);\n }\n // Xbox-Specific Detection\n if (this.get(NAME) == WINDOWS && uaCH[MODEL] == 'Xbox') {\n this.set(NAME, 'Xbox')\n .set(VERSION, undefined);\n } \n break;\n case UA_RESULT:\n var data = this.data;\n var parse = function (itemType) {\n return data[itemType]\n .getItem()\n .setCH(uaCH)\n .parseCH()\n .get();\n };\n this.set(UA_BROWSER, parse(UA_BROWSER))\n .set(UA_CPU, parse(UA_CPU))\n .set(UA_DEVICE, parse(UA_DEVICE))\n .set(UA_ENGINE, parse(UA_ENGINE))\n .set(UA_OS, parse(UA_OS));\n }\n return this;\n };\n\n setProps.call(this, [\n ['itemType', itemType],\n ['ua', ua],\n ['uaCH', uaCH],\n ['rgxMap', rgxMap],\n ['data', createIData(this, itemType)]\n ]);\n\n return this;\n }\n\n function UAParser (ua, extensions, headers) {\n\n if (typeof ua === OBJ_TYPE) {\n if (isExtensions(ua, true)) {\n if (typeof extensions === OBJ_TYPE) {\n headers = extensions; // case UAParser(extensions, headers) \n }\n extensions = ua; // case UAParser(extensions)\n } else {\n headers = ua; // case UAParser(headers)\n extensions = undefined;\n }\n ua = undefined;\n } else if (typeof ua === STR_TYPE && !isExtensions(extensions, true)) {\n headers = extensions; // case UAParser(ua, headers)\n extensions = undefined;\n }\n\n // Convert Headers object into a plain object\n if (headers && typeof headers.append === FUNC_TYPE) {\n var kv = {};\n headers.forEach(function (v, k) { kv[k] = v; });\n headers = kv;\n }\n \n if (!(this instanceof UAParser)) {\n return new UAParser(ua, extensions, headers).getResult();\n }\n\n var userAgent = typeof ua === STR_TYPE ? ua : // Passed user-agent string\n (headers && headers[USER_AGENT] ? headers[USER_AGENT] : // User-Agent from passed headers\n ((NAVIGATOR && NAVIGATOR.userAgent) ? NAVIGATOR.userAgent : // navigator.userAgent\n EMPTY)), // empty string\n\n httpUACH = new UACHData(headers, true),\n regexMap = extensions ? \n extend(defaultRegexes, extensions) : \n defaultRegexes,\n\n createItemFunc = function (itemType) {\n if (itemType == UA_RESULT) {\n return function () {\n return new UAItem(itemType, userAgent, regexMap, httpUACH)\n .set('ua', userAgent)\n .set(UA_BROWSER, this.getBrowser())\n .set(UA_CPU, this.getCPU())\n .set(UA_DEVICE, this.getDevice())\n .set(UA_ENGINE, this.getEngine())\n .set(UA_OS, this.getOS())\n .get();\n };\n } else {\n return function () {\n return new UAItem(itemType, userAgent, regexMap[itemType], httpUACH)\n .parseUA()\n .get();\n };\n }\n };\n \n // public methods\n setProps.call(this, [\n ['getBrowser', createItemFunc(UA_BROWSER)],\n ['getCPU', createItemFunc(UA_CPU)],\n ['getDevice', createItemFunc(UA_DEVICE)],\n ['getEngine', createItemFunc(UA_ENGINE)],\n ['getOS', createItemFunc(UA_OS)],\n ['getResult', createItemFunc(UA_RESULT)],\n ['getUA', function () { return userAgent; }],\n ['setUA', function (ua) {\n if (isString(ua))\n userAgent = ua.length > UA_MAX_LENGTH ? trim(ua, UA_MAX_LENGTH) : ua;\n return this;\n }]\n ])\n .setUA(userAgent);\n\n return this;\n }\n\n UAParser.VERSION = LIBVERSION;\n UAParser.BROWSER = enumerize([NAME, VERSION, MAJOR, TYPE]);\n UAParser.CPU = enumerize([ARCHITECTURE]);\n UAParser.DEVICE = enumerize([MODEL, VENDOR, TYPE, CONSOLE, MOBILE, SMARTTV, TABLET, WEARABLE, EMBEDDED]);\n UAParser.ENGINE = UAParser.OS = enumerize([NAME, VERSION]);\n\n export {UAParser};"],"names":["_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_react2","_interopRequireDefault","_propTypes2","_button2","_icon2","_openShareDialog2","obj","__esModule","default","ButtonSocial","_ref","share","type","url","title","hashtags","props","keys","indexOf","_objectWithoutProperties","createElement","background","tag","onClick","name","propTypes","oneOf","isRequired","bool","string","text","defaultProps","spacing","effect","radius","exports","defineProperty","value","_defaults2","_map2","services","facebook","encodeURIComponent","twitter","_ref2","_ref2$hashtags","undefined","google","_ref3","linkedin","_ref4","openPopup","config","width","height","windowTop","window","screenTop","screenY","windowLeft","screenLeft","screenX","top","innerHeight","left","innerWidth","join","open","options","_options$url","location","href","_options$title","document","caption","service","shareUrl","toolbar","status","_withStyles2","_styles2","Container","children","Tag","classNames","className","outer","root","any","oneOfType","element","number","object","fullHeight","shadow","foreground","outerColor","styles","_merge","_merge2","calculateSpacing","colors","rhythm","shadows","treatments","defaultStyles","maxWidth","container","minHeight","margin","backgroundColor","color","body","boxShadow","_createClass","defineProperties","descriptor","enumerable","configurable","writable","Constructor","protoProps","staticProps","_react","_chunk2","Pagination","_Component","instance","TypeError","_classCallCheck","this","_this","self","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","apply","state","pageNumber","allPages","paginate","toPaginate","bind","handlePagintionClick","handlePaginationClick","subClass","superClass","create","constructor","setPrototypeOf","_inherits","persistPage","setState","_props$max","max","val","_this2","_state","canNext","changePage","_state2","currentPage","numberOfPages","pageIndex","pageOf","isPaginated","canPrev","next","prev","Component","array","func","deselectCurrent","clipboardToIE11Formatting","module","debug","message","reselectPrevious","range","selection","mark","success","createRange","getSelection","textContent","ariaHidden","style","all","position","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","addEventListener","e","stopPropagation","format","preventDefault","clipboardData","console","warn","clearData","setData","onCopy","appendChild","selectNodeContents","addRange","execCommand","Error","err","error","copyKey","test","navigator","userAgent","replace","prompt","removeRange","removeAllRanges","removeChild","isAbsolute","pathname","charAt","spliceOne","list","index","k","n","pop","to","from","hasTrailingSlash","toParts","split","fromParts","isToAbs","isFromAbs","mustEndAbs","concat","last","up","part","unshift","result","substr","addLeadingSlash","path","stripLeadingSlash","stripBasename","prefix","toLowerCase","hasBasename","stripTrailingSlash","slice","createPath","search","hash","createLocation","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","listeners","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","callback","appendListener","fn","isActive","listener","push","filter","item","notifyListeners","_len","args","Array","_key","forEach","canUseDOM","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","ua","globalHistory","canUseHistory","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","Math","random","toString","transitionManager","nextState","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","substring","replaceHashPath","createHashHistory","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","a","b","encodedPath","prevLocation","allPaths","lastIndexOf","baseTag","querySelector","getAttribute","pushHashPath","nextPaths","clamp","lowerBound","upperBound","min","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","map","entry","nextIndex","nextEntries","splice","canGo","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","baseSlice","isIterateeCall","toInteger","nativeCeil","ceil","nativeMax","size","guard","resIndex","baseRest","eq","keysIn","objectProto","defaults","sources","propsIndex","propsLength","arrayMap","baseIteratee","baseMap","isArray","collection","iteratee","isarray","pathToRegexp","parse","compile","str","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","res","tokens","defaultDelimiter","delimiter","exec","m","escaped","offset","capture","group","modifier","asterisk","partial","repeat","optional","pattern","prevText","escapeGroup","restrictBacktrack","escapeString","encodeURIComponentPretty","encodeURI","c","charCodeAt","toUpperCase","matches","flags","opts","data","encode","pretty","token","segment","JSON","stringify","j","attachKeys","re","sensitive","strict","end","route","endsWithDelimiter","groups","match","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","arr","Symbol","for","d","f","g","h","l","p","q","r","t","v","w","x","y","z","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","BrowserRouter","_React$Component","resolveToLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","rest","ex","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","ref","Link","_ref2$component","Consumer","context","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","NavLink","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","exact","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createContext","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","handlers","emitter","on","handler","off","get","set","newValue","changedBits","_proto","getChildContext","componentWillReceiveProps","nextProps","oldValue","_React$Component2","_len2","_key2","observedBits","getValue","onUpdate","_proto2","componentDidMount","componentWillUnmount","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","computeRootMatch","params","isExact","cache$1","cacheLimit$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","reduce","matched","_compilePath","cacheKey","pathCache","regexp","compilePath$1","values","memo","Route","context$1","computedMatch","_this$props","count","isEmptyChildren","base","createURL","staticHandler","methodName","noop","StaticRouter","handlePush","navigateTo","handleReplace","handleListen","handleBlock","_this$props$basename","_this$props$context","addBasename","_this$props2","_this$props2$basename","_this$props2$context","_this$props2$location","Switch","child","withRouter","wrappedComponentRef","remainingProps","WrappedComponent","useContext","useHistory","useLocation","_","o","s","$","lastIndex","rangeCount","active","activeElement","ranges","getRangeAt","tagName","blur","focus","_setPrototypeOf","_inheritsLoose","_objectWithoutPropertiesLoose","isProduction","invariant","condition","provided","EMPTY","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","XR","EMBEDDED","INAPP","USER_AGENT","UA_MAX_LENGTH","BRANDS","FORMFACTORS","FULLVERLIST","PLATFORM","PLATFORMVER","BITNESS","CH_HEADER","CH_HEADER_FULL_VER_LIST","CH_HEADER_ARCH","CH_HEADER_BITNESS","CH_HEADER_FORM_FACTORS","CH_HEADER_MOBILE","CH_HEADER_MODEL","CH_HEADER_PLATFORM","CH_HEADER_PLATFORM_VER","CH_ALL_VALUES","UA_BROWSER","UA_CPU","UA_DEVICE","UA_ENGINE","UA_OS","UA_RESULT","AMAZON","APPLE","ASUS","BLACKBERRY","GOOGLE","HUAWEI","LENOVO","LG","MICROSOFT","MOTOROLA","SAMSUNG","SHARP","SONY","XIAOMI","ZEBRA","PREFIX_MOBILE","SUFFIX_BROWSER","CHROME","CHROMECAST","FIREFOX","OPERA","FACEBOOK","SOGOU","WINDOWS","NAVIGATOR","NAVIGATOR_UADATA","userAgentData","extend","defaultRgx","extensions","mergedRgx","extraRgx","isExtensions","enumerize","enums","has","str1","str2","lowerize","isString","deep","prop","itemListToArray","header","strip","trim","brand","version","majorize","setProps","propName","stripQuotes","len","rgxMapper","arrays","regex","strMapper","windowsVersionMap","formFactorsMap","defaultRegexes","browser","cpu","device","engine","EDGE","os","init","isIgnore","isIgnoreRgx","createIData","itemType","init_props","is_ignoreProps","is_ignoreRgx","toString_props","IData","getItem","withClientHints","getHighEntropyValues","then","setCH","UACHData","parseCH","withFeatureCheck","detectFeature","is","strToCheck","cb","that","IDataResolve","resolveData","uach","isHttpUACH","UAItem","rgxMap","uaCH","ch","brave","isBrave","standalone","maxTouchPoints","detect","parseUA","prevName","brands","brandName","brandVersion","archName","ff","idx","osName","osVersion","parseInt","UAParser","headers","append","kv","getResult","httpUACH","regexMap","createItemFunc","getBrowser","getCPU","getDevice","getEngine","getOS","setUA","BROWSER","CPU","DEVICE","ENGINE","OS"],"sourceRoot":""}