{"version":3,"file":"js/32633-240251f7f6f5f0e77a35.js","mappings":"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","sources":["webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_freeGlobal.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_root.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_Symbol.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_arrayMap.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isArray.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getRawTag.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_objectToString.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseGetTag.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isObjectLike.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isSymbol.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseToString.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/toString.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/replace.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/utils/src/externalSocialPartners/externalSocialPartners.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/utils/src/externalSocialPartners/useApple.ts","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/constants/src/appConstants.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/DesktopRegistrationOptions/DesktopRegistrationOptions.module.scss?b2b7","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/DesktopRegistrationOptions/DesktopRegistrationOptions.tsx","webpack://StravaModern/../src/Element.tsx","webpack://StravaModern/../src/Filter.ts","webpack://StravaModern/../src/constants.ts","webpack://StravaModern/../src/StyleFilter.ts","webpack://StravaModern/../src/Parser.ts","webpack://StravaModern/../src/Interweave.tsx","webpack://StravaModern/../src/Markup.tsx","webpack://StravaModern/../src/Matcher.ts","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/DesktopRegistrationMessage/DesktopRegistrationMessage.module.scss?b10e","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/DesktopRegistrationMessage/DesktopRegistrationMessage.tsx","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/MobileRegistrationOptions/MobileRegistrationOptions.tsx","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/MobileRegistrationMessage/MobileRegistrationMessage.module.scss?d951","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/MobileRegistrationMessage/MobileRegistrationMessage.tsx","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_listCacheClear.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/eq.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_assocIndexOf.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_listCacheDelete.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_listCacheGet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_listCacheHas.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_listCacheSet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_ListCache.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_stackClear.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_stackDelete.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_stackGet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_stackHas.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isObject.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isFunction.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_isMasked.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_coreJsData.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_toSource.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIsNative.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getValue.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getNative.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_Map.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_nativeCreate.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_hashClear.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_hashDelete.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_hashGet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_hashHas.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_hashSet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_Hash.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_mapCacheClear.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_isKeyable.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getMapData.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_mapCacheDelete.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_mapCacheGet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_mapCacheHas.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_mapCacheSet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_MapCache.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_stackSet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_Stack.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_setCacheAdd.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_setCacheHas.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_SetCache.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_arraySome.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_cacheHas.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_equalArrays.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_Uint8Array.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_mapToArray.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_setToArray.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_equalByTag.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_arrayPush.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseGetAllKeys.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_arrayFilter.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/stubArray.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getSymbols.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseTimes.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIsArguments.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isArguments.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/stubFalse.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isBuffer.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_isIndex.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isLength.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIsTypedArray.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseUnary.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_nodeUtil.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isTypedArray.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_arrayLikeKeys.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_isPrototype.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_overArg.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_nativeKeys.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseKeys.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/isArrayLike.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/keys.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getAllKeys.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_equalObjects.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_DataView.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_Promise.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_Set.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_WeakMap.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getTag.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIsEqualDeep.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIsEqual.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIsMatch.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_isStrictComparable.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_getMatchData.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_matchesStrictComparable.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseMatches.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_isKey.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/memoize.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_memoizeCapped.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_stringToPath.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_castPath.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_toKey.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseGet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/get.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseHasIn.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_hasPath.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/hasIn.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseMatchesProperty.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/identity.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseProperty.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_basePropertyDeep.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/property.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIteratee.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_createBaseFor.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseFor.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_createBaseEach.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseEach.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseForOwn.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseMap.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/map.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseFindIndex.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIsNaN.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_strictIndexOf.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseIndexOf.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_arrayIncludes.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_arrayIncludesWith.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/noop.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_createSet.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/_baseUniq.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/lodash-es/uniqBy.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/shared-ui/src/Picture/components/SourceTags/helpers.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/shared-ui/src/Picture/components/SourceTags/SourceTags.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/shared-ui/src/Picture/components/ImgTag/ImgTag.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/shared-ui/src/Picture/constants.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/shared-ui/src/Picture/Picture.js","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/TabletImage/TabletImage.module.scss?5442","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/components/TabletImage/TabletImage.tsx","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/AccountRegistrationPage.module.scss?150a","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/AccountRegistrationPage.tsx","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/node_modules/@strava/utils/src/utils.ts","webpack://StravaModern/./node_modules/@strava/account-registration-page-ui/src/helpers/useExtAuthBtnClickHandler.hook.ts","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/react-hooks/src/use-safe-state/useSafeState.hook.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/NavigationProfileHighlightedMedium.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorSuperuserSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorSummitSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorProSmall.js","webpack://StravaModern/./node_modules/@strava/ui/node_modules/@strava/icons/dist/BadgesMulticolorVerifiedSmall.js","webpack://StravaModern/./node_modules/@strava/ui/Avatar/Avatar.module.scss?3ebc","webpack://StravaModern/./node_modules/@strava/ui/Avatar/Avatar.tsx"],"sourcesContent":["/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nexport default arrayMap;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","import Symbol from './_Symbol.js';\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 * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nexport default isSymbol;\n","import Symbol from './_Symbol.js';\nimport arrayMap from './_arrayMap.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default baseToString;\n","import baseToString from './_baseToString.js';\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nexport default toString;\n","import toString from './toString.js';\n\n/**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\nfunction replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n}\n\nexport default replace;\n","import { replace } from 'lodash-es';\n\nconst appendScriptToBody = ({ script, name, logError }) => {\n if (document.querySelector('body')) {\n document.querySelector('body').appendChild(script);\n } else {\n const e = new Error(`Failed to inject ${name} script`);\n logError(e);\n }\n};\n\n// this injects window.google and not the legacy window.gapi JS api\nexport const injectGoogleScript = ({ callback, logError }) => {\n if (!window.google) {\n const script = document.createElement('script');\n script.src = 'https://accounts.google.com/gsi/client';\n script.async = true;\n script.onload = callback;\n script.id = 'google-client-script';\n appendScriptToBody({ script, name: 'google gsi', logError });\n } else {\n callback();\n }\n};\n\nexport const injectAppleScript = ({ logError, locale = 'en_US' }) => {\n if (!window.AppleID) {\n const script = window.document.createElement('script');\n const formattedLocale = replace(locale, '-', '_');\n script.src = `https://appleid.cdn-apple.com/appleauth/static/jsapi/appleid/1/${formattedLocale}/appleid.auth.js`;\n script.async = true;\n appendScriptToBody({ script, name: 'apple', logError });\n }\n};\n\nexport const injectFacebookScript = ({\n logError,\n appId,\n version,\n callback,\n locale = 'en_US'\n}) => {\n // make sure haml FB injection has not already injected script and also make sure nothing else\n // has injected FB script\n if (!window.Strava?.fbInitialized && !window.FB) {\n window.fbAsyncInit = () => {\n // ref - https://developers.facebook.com/docs/javascript/reference/FB.init/v13.0\n window.FB.init({\n appId,\n xfbml: true,\n version,\n status: true,\n cookie: true\n });\n callback();\n };\n\n // facebook uses format ll_CC - see https://developers.facebook.com/docs/javascript/internationalization\n const formattedLocale = replace(locale, '-', '_');\n\n const script = window.document.createElement('script');\n script.src = `https://connect.facebook.net/${formattedLocale}/sdk.js`;\n script.async = true;\n appendScriptToBody({ script, name: 'facebook-jssdk', logError });\n } else {\n callback();\n }\n};\n\nexport default { injectGoogleScript, injectAppleScript, injectFacebookScript };\n","import { useEffect } from 'react';\nimport { injectAppleScript } from './externalSocialPartners';\n\ndeclare global {\n interface Window {\n AppleID: {\n stravaInit: boolean;\n auth: {\n init: (params: {\n clientId: string;\n scope: string;\n redirectURI: string;\n state: string;\n }) => void;\n signIn: () => void;\n };\n };\n }\n}\n\n/**\n *\n * @param {String} state https://developer.apple.com/documentation/sign_in_with_apple/clientconfigi/3230956-state\n */\nexport const useApple = (state: string, logError: (error: Error) => void) => {\n useEffect(() => {\n injectAppleScript({ logError });\n }, [logError]);\n\n const signin = () => {\n if (!window.AppleID.stravaInit) {\n window.AppleID.auth.init({\n clientId: 'com.strava.app.sign.in',\n scope: 'name email',\n redirectURI: 'https://www.strava.com/o_auth/apple',\n state\n });\n window.AppleID.stravaInit = true;\n }\n window.AppleID.auth.signIn();\n };\n\n return { signin };\n};\n\nexport default useApple;\n","export const YOUNGEST_AGE_ON_PLATFORM = 13;\n\nexport const YOUNGEST_AGE_FOR_HEALTH_AND_PROMO = 16;\n\nexport const GENDER = Object.freeze({\n man: 'man',\n woman: 'woman',\n preferNotSay: 'prefer_not_say',\n nonBinary: 'nonbinary'\n});\n\nexport const LOCALE = Object.freeze({\n deDE: 'de-DE',\n enUS: 'en-US',\n enGB: 'en-GB',\n esES: 'es-ES',\n es419: 'es-419',\n frFR: 'fr-FR',\n itIT: 'it-IT',\n jaJP: 'ja-JP',\n koKR: 'ko-KR',\n nlNL: 'nl-NL',\n ptBR: 'pt-BR',\n ptPT: 'pt-PT',\n ruRU: 'ru-RU',\n zhCN: 'zh-CN',\n zhTW: 'zh-TW'\n});\n\n// If a language has more than one locale, the first in the list is the default\nexport const LANGUAGE_LOCALES = Object.freeze({\n de: [LOCALE.deDE],\n // en is intentionally omitted here since English is the global default\n es: [LOCALE.esES, LOCALE.es419],\n fr: [LOCALE.frFR],\n it: [LOCALE.itIT],\n ja: [LOCALE.jaJP],\n ko: [LOCALE.koKR],\n nl: [LOCALE.nlNL],\n pt: [LOCALE.ptPT, LOCALE.ptBR],\n ru: [LOCALE.ruRU],\n zh: [LOCALE.zhCN, LOCALE.zhTW]\n});\n\nexport const EXPERIMENT_COHORTS = Object.freeze({\n control: 'control',\n variantA: 'variant-a',\n variantB: 'variant-b'\n});\n\nexport const MOBILE_OS = Object.freeze({\n android: 'android',\n iPhone: 'iphone',\n iPad: 'ipad'\n});\n\nexport const SUPPORTED_BROWSERS = Object.freeze({\n chrome: 'chrome',\n firefox: 'firefox',\n safari: 'safari'\n});\n\n// universal link paths from 'apple-app-site-association' file in active\nexport const APPLE_APP_LINK_PATHS = [\n '/dashboard',\n '/activities/*',\n '/athletes/*',\n '/segments/*',\n '/challenges/*',\n '/videos/*',\n '/routes/*',\n '/premium/*',\n '/settings/*',\n '/shop/*',\n '/athlete/*',\n '/clubs/*',\n '/summit/join',\n '/summit/perks',\n '/oauth/mobile/authorize'\n];\n\nexport const ATHLETES_VISIBILITY = Object.freeze({\n optedOut: 'opted_out' // Strava::Athletes::Visibility::OPTED_OUT\n});\n\nexport default {\n YOUNGEST_AGE_ON_PLATFORM,\n YOUNGEST_AGE_FOR_HEALTH_AND_PROMO,\n GENDER,\n LOCALE,\n EXPERIMENT_COHORTS,\n MOBILE_OS,\n SUPPORTED_BROWSERS,\n APPLE_APP_LINK_PATHS,\n ATHLETES_VISIBILITY\n};\n","// extracted by mini-css-extract-plugin\nexport default {\"registrationOptions\":\"DesktopRegistrationOptions--registrationOptions--E-NPY\",\"noMarginTop\":\"DesktopRegistrationOptions--noMarginTop--MT-+7\",\"disclaimerText\":\"DesktopRegistrationOptions--disclaimerText--OvkQU\",\"loginOption\":\"DesktopRegistrationOptions--loginOption--nzmpV\",\"variant\":\"DesktopRegistrationOptions--variant--4ZY17\"};","import React, { useEffect } from 'react';\nimport { AlertContainer, AlertStatus, useAlertContext } from '@strava/ui/Alert';\nimport { useStravaTranslations } from '@strava/container-context';\nimport {\n DisclaimerText,\n AccountAuthButton,\n OrDivider,\n APPLE,\n FACEBOOK,\n GOOGLE,\n EmailRegistrationForm,\n EMAIL_REGISTRATION_FORM_ALERT_ID,\n AnalyticsFieldsTypes,\n EmailRegistrationFormProps\n} from '@strava/authentication-ui';\nimport styles from './DesktopRegistrationOptions.module.scss';\n\nconst i18nPrefix = 'account_registration_page_ui';\n\nexport type DesktopRegistrationOptionsProps = EmailRegistrationFormProps & {\n flashMessage?: string;\n};\n\nconst DesktopRegistrationOptions = ({\n emailAuthorizationUrl,\n handleExtAuthBtnClick,\n flashMessage,\n track,\n ...emailRegFormProps\n}: DesktopRegistrationOptionsProps & {\n emailAuthorizationUrl: string;\n track: (fields: AnalyticsFieldsTypes) => void;\n handleExtAuthBtnClick: (\n option: typeof FACEBOOK | typeof GOOGLE | typeof APPLE\n ) => void;\n}) => {\n const { t } = useStravaTranslations();\n const { showAlert } = useAlertContext();\n\n useEffect(() => {\n if (flashMessage) {\n showAlert({\n alertType: AlertStatus.ERROR,\n content: flashMessage,\n hideCloseButton: true,\n containerId: EMAIL_REGISTRATION_FORM_ALERT_ID,\n id: 'flashMessage'\n });\n }\n }, [flashMessage, showAlert]);\n\n const externalSignups = (\n <>\n handleExtAuthBtnClick(FACEBOOK)}\n data-testid=\"facebook_auth_btn\"\n >\n {t(`${i18nPrefix}.signup_ctas.facebook_cta_v2`)}\n \n\n handleExtAuthBtnClick(GOOGLE)}\n data-testid=\"google_auth_btn\"\n >\n {t(`${i18nPrefix}.signup_ctas.google_cta_v2`)}\n \n \n );\n\n const emailSignup = (\n <>\n \n\n \n \n );\n\n return (\n
\n \n\n {externalSignups}\n\n \n\n {emailSignup}\n\n

\n {t(`${i18nPrefix}.login_option.already_a_member`)}{' '}\n \n {t(`${i18nPrefix}.login_option.log_in`)}\n \n

\n
\n );\n};\n\nexport default DesktopRegistrationOptions;\n",null,null,null,null,null,null,null,null,"// extracted by mini-css-extract-plugin\nexport default {\"registrationMessage\":\"DesktopRegistrationMessage--registrationMessage--YbNw8\",\"heading\":\"DesktopRegistrationMessage--heading--ut77-\",\"withAvatar\":\"DesktopRegistrationMessage--withAvatar--628fC\"};","import React from 'react';\nimport { Markup } from 'interweave';\nimport clsx from '@strava/ui/clsx';\nimport Avatar, { AvatarType } from '@strava/ui/Avatar';\nimport { useStravaTranslations } from '@strava/container-context';\nimport styles from './DesktopRegistrationMessage.module.scss';\n\nexport type DesktopRegistrationMessageProps = {\n textKey: string;\n name?: string;\n avatar?: string;\n avatarType?: AvatarType;\n};\n\nexport const DesktopRegistrationMessage = ({\n textKey,\n name,\n avatar,\n avatarType\n}: DesktopRegistrationMessageProps) => {\n const { t } = useStravaTranslations();\n\n return (\n \n {avatar && (\n \n )}\n

\n \n

\n \n );\n};\n\nexport default DesktopRegistrationMessage;\n","import React, { useEffect } from 'react';\nimport { useStravaTranslations } from '@strava/container-context';\nimport {\n DisclaimerText,\n AccountAuthButton,\n APPLE,\n FACEBOOK,\n GOOGLE,\n EmailRegistrationForm,\n AnalyticsFieldsTypes,\n EmailRegistrationFormProps,\n OrDivider,\n EMAIL_REGISTRATION_FORM_ALERT_ID\n} from '@strava/authentication-ui';\nimport { AlertContainer, AlertStatus, useAlertContext } from '@strava/ui/Alert';\n\ntype MobileRegistrationOptionsProps = EmailRegistrationFormProps & {\n track: (fields: AnalyticsFieldsTypes) => void;\n emailAuthorizationUrl: string;\n handleExtAuthBtnClick: (\n option: typeof FACEBOOK | typeof GOOGLE | typeof APPLE\n ) => void;\n cohort?: string | undefined;\n flashMessage?: string | undefined;\n};\n\nexport const MobileRegistrationOptions = ({\n emailAuthorizationUrl,\n handleExtAuthBtnClick,\n track,\n flashMessage,\n ...emailRegFormProps\n}: MobileRegistrationOptionsProps) => {\n const { t } = useStravaTranslations();\n const { showAlert } = useAlertContext();\n\n useEffect(() => {\n if (flashMessage) {\n showAlert({\n alertType: AlertStatus.ERROR,\n content: flashMessage,\n hideCloseButton: true,\n containerId: EMAIL_REGISTRATION_FORM_ALERT_ID,\n id: 'flashMessage'\n });\n }\n }, [flashMessage, showAlert]);\n\n const i18nPrefix = 'account_registration_page_ui';\n\n return (\n <>\n \n\n
\n handleExtAuthBtnClick(FACEBOOK)}\n data-testid=\"facebook_auth_btn\"\n >\n {t(`${i18nPrefix}.signup_ctas.facebook_cta_v2`)}\n \n\n handleExtAuthBtnClick(GOOGLE)}\n data-testid=\"google_auth_btn\"\n >\n {t(`${i18nPrefix}.signup_ctas.google_cta_v2`)}\n \n\n handleExtAuthBtnClick(APPLE)}\n data-testid=\"apple_auth_btn\"\n >\n {t(`${i18nPrefix}.signup_ctas.apple_cta_v2`)}\n \n\n \n \n\n \n
\n \n );\n};\n\nexport default MobileRegistrationOptions;\n","// extracted by mini-css-extract-plugin\nexport default {\"mobileRegistrationMessage\":\"MobileRegistrationMessage--mobileRegistrationMessage--8H5CO\"};","import React from 'react';\nimport { useStravaTranslations } from '@strava/container-context';\nimport clsx from '@strava/ui/clsx';\nimport styles from './MobileRegistrationMessage.module.scss';\n\ninterface MobileRegistrationMessageProps {\n className?: string;\n}\n\nexport const MobileRegistrationMessage = ({\n className\n}: MobileRegistrationMessageProps) => {\n const i18nPrefix = 'account_registration_page_ui';\n const { t } = useStravaTranslations();\n\n return (\n
\n

{t(`${i18nPrefix}.mobile.title`)}

\n

{t(`${i18nPrefix}.mobile.subtitle`)}

\n
\n );\n};\n\nexport default MobileRegistrationMessage;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\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 * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\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 * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\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/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\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 * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\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 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\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 * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\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 * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import Stack from './_Stack.js';\nimport baseIsEqual from './_baseIsEqual.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\nfunction baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n}\n\nexport default baseIsMatch;\n","import isObject from './isObject.js';\n\n/**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\nfunction isStrictComparable(value) {\n return value === value && !isObject(value);\n}\n\nexport default isStrictComparable;\n","import isStrictComparable from './_isStrictComparable.js';\nimport keys from './keys.js';\n\n/**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\nfunction getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n}\n\nexport default getMatchData;\n","/**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n}\n\nexport default matchesStrictComparable;\n","import baseIsMatch from './_baseIsMatch.js';\nimport getMatchData from './_getMatchData.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\n\n/**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n}\n\nexport default baseMatches;\n","import isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nexport default isKey;\n","import MapCache from './_MapCache.js';\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nexport default memoize;\n","import memoize from './memoize.js';\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nexport default memoizeCapped;\n","import memoizeCapped from './_memoizeCapped.js';\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nexport default stringToPath;\n","import isArray from './isArray.js';\nimport isKey from './_isKey.js';\nimport stringToPath from './_stringToPath.js';\nimport toString from './toString.js';\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nexport default castPath;\n","import isSymbol from './isSymbol.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nexport default toKey;\n","import castPath from './_castPath.js';\nimport toKey from './_toKey.js';\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nexport default baseGet;\n","import baseGet from './_baseGet.js';\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nexport default get;\n","/**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\nfunction baseHasIn(object, key) {\n return object != null && key in Object(object);\n}\n\nexport default baseHasIn;\n","import castPath from './_castPath.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isIndex from './_isIndex.js';\nimport isLength from './isLength.js';\nimport toKey from './_toKey.js';\n\n/**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\nfunction hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n}\n\nexport default hasPath;\n","import baseHasIn from './_baseHasIn.js';\nimport hasPath from './_hasPath.js';\n\n/**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\nfunction hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n}\n\nexport default hasIn;\n","import baseIsEqual from './_baseIsEqual.js';\nimport get from './get.js';\nimport hasIn from './hasIn.js';\nimport isKey from './_isKey.js';\nimport isStrictComparable from './_isStrictComparable.js';\nimport matchesStrictComparable from './_matchesStrictComparable.js';\nimport toKey from './_toKey.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\nfunction baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n}\n\nexport default baseMatchesProperty;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n}\n\nexport default baseProperty;\n","import baseGet from './_baseGet.js';\n\n/**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n}\n\nexport default basePropertyDeep;\n","import baseProperty from './_baseProperty.js';\nimport basePropertyDeep from './_basePropertyDeep.js';\nimport isKey from './_isKey.js';\nimport toKey from './_toKey.js';\n\n/**\n * Creates a function that returns the value at `path` of a given object.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n * @example\n *\n * var objects = [\n * { 'a': { 'b': 2 } },\n * { 'a': { 'b': 1 } }\n * ];\n *\n * _.map(objects, _.property('a.b'));\n * // => [2, 1]\n *\n * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b');\n * // => [1, 2]\n */\nfunction property(path) {\n return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path);\n}\n\nexport default property;\n","import baseMatches from './_baseMatches.js';\nimport baseMatchesProperty from './_baseMatchesProperty.js';\nimport identity from './identity.js';\nimport isArray from './isArray.js';\nimport property from './property.js';\n\n/**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\nfunction baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n}\n\nexport default baseIteratee;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import isArrayLike from './isArrayLike.js';\n\n/**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n}\n\nexport default createBaseEach;\n","import baseForOwn from './_baseForOwn.js';\nimport createBaseEach from './_createBaseEach.js';\n\n/**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\nvar baseEach = createBaseEach(baseForOwn);\n\nexport default baseEach;\n","import baseFor from './_baseFor.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n}\n\nexport default baseForOwn;\n","import baseEach from './_baseEach.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nexport default baseMap;\n","import arrayMap from './_arrayMap.js';\nimport baseIteratee from './_baseIteratee.js';\nimport baseMap from './_baseMap.js';\nimport isArray from './isArray.js';\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\nexport default map;\n","/**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n}\n\nexport default baseFindIndex;\n","/**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\nfunction baseIsNaN(value) {\n return value !== value;\n}\n\nexport default baseIsNaN;\n","/**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n}\n\nexport default strictIndexOf;\n","import baseFindIndex from './_baseFindIndex.js';\nimport baseIsNaN from './_baseIsNaN.js';\nimport strictIndexOf from './_strictIndexOf.js';\n\n/**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n}\n\nexport default baseIndexOf;\n","import baseIndexOf from './_baseIndexOf.js';\n\n/**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n}\n\nexport default arrayIncludes;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nexport default arrayIncludesWith;\n","/**\n * This method returns `undefined`.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Util\n * @example\n *\n * _.times(2, _.noop);\n * // => [undefined, undefined]\n */\nfunction noop() {\n // No operation performed.\n}\n\nexport default noop;\n","import Set from './_Set.js';\nimport noop from './noop.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nexport default createSet;\n","import SetCache from './_SetCache.js';\nimport arrayIncludes from './_arrayIncludes.js';\nimport arrayIncludesWith from './_arrayIncludesWith.js';\nimport cacheHas from './_cacheHas.js';\nimport createSet from './_createSet.js';\nimport setToArray from './_setToArray.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nexport default baseUniq;\n","import baseIteratee from './_baseIteratee.js';\nimport baseUniq from './_baseUniq.js';\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nexport default uniqBy;\n","import { map, uniqBy } from 'lodash-es';\n\nexport const getUniqueSizesFromImages = (images) =>\n map(uniqBy(images, 'size.id'), 'size');\n\nexport const getUniqueFormatsFromImages = (images) =>\n map(uniqBy(images, 'format'), 'format');\n\nexport const getUniqueResolutionsFromImages = (images) =>\n map(uniqBy(images, 'resolution'), 'resolution');\n\nexport const getImagesBySize = (images, size) => {\n return images.filter((image) => image.size.id === size.id);\n};\n\nexport const getImagesByFormat = (images, format) => {\n return images.filter((image) => image.format === format);\n};\n\nexport const getImagesByResolution = (images, resolution) => {\n return images.filter((image) => image.resolution === resolution);\n};\n\nexport default {\n getUniqueSizesFromImages,\n getUniqueFormatsFromImages,\n getUniqueResolutionsFromImages,\n getImagesBySize,\n getImagesByFormat,\n getImagesByResolution\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useStravaErrorLogging } from '@strava/container-context';\nimport {\n getUniqueSizesFromImages,\n getUniqueFormatsFromImages,\n getUniqueResolutionsFromImages,\n getImagesBySize,\n getImagesByFormat,\n getImagesByResolution\n} from './helpers';\n\nconst SourceTags = ({ images }) => {\n const { logError } = useStravaErrorLogging();\n const [sources, setSources] = useState([]);\n\n useEffect(() => {\n const getSourceData = () => {\n const sourceData = [];\n\n try {\n getUniqueSizesFromImages(images).forEach((size) => {\n // Loop through sizes\n const imagesForSize = getImagesBySize(images, size); // Get images for current size\n const formatsForSize = getUniqueFormatsFromImages(imagesForSize); // Get formats for current sized images\n\n formatsForSize.forEach((format) => {\n // Loop through formats\n const imagesForSizeAndFormat = getImagesByFormat(\n imagesForSize,\n format\n ); // Get images for current size and format\n\n const resolutionsForSizeAndFormat = getUniqueResolutionsFromImages(\n imagesForSizeAndFormat\n ); // Get resolutions for current size and format\n\n // Get srcSet value\n const srcSet = resolutionsForSizeAndFormat\n .map((resolution) => {\n // Map through resolutions\n const imageBySizeAndFormatAndResolution = getImagesByResolution(\n imagesForSizeAndFormat,\n resolution\n ); // Get image for current size, format and resolution\n if (imageBySizeAndFormatAndResolution[0]) {\n return `${imageBySizeAndFormatAndResolution[0].file} ${resolution}`; // Return filename and resolution e.g. '863bfd6a6d3c6e43e7c6.png 1x'\n }\n return false;\n })\n .filter(Boolean) // Strip out any falsy values\n .join(', '); // Concatenate to form srcSet e.g. '863bfd6a6d3c6e43e7c6.png 1x, edbe289c4c8ee72858c6.png 2x'\n\n sourceData.push({\n size,\n format,\n srcSet\n });\n });\n });\n } catch (error) {\n logError(new Error(`Source tags not created, Error: ${error}`));\n }\n\n return sourceData;\n };\n\n const sourceData = getSourceData();\n setSources(sourceData);\n }, [images, logError]);\n\n return (\n <>\n {sources.map((source) => {\n const { size, format, srcSet } = source;\n\n return (\n \n );\n })}\n \n );\n};\n\nSourceTags.propTypes = {\n images: PropTypes.arrayOf(\n PropTypes.shape({\n file: PropTypes.string.isRequired,\n format: PropTypes.oneOf(['png', 'jpg', 'webp']).isRequired,\n resolution: PropTypes.oneOf(['1x', '2x']).isRequired,\n size: PropTypes.shape({\n id: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n value: PropTypes.string,\n minVw: PropTypes.string\n }).isRequired\n })\n ).isRequired\n};\n\nexport default SourceTags;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ImgTag = ({ src, className, isLazy, altText, dataCy }) => (\n \n);\n\nImgTag.propTypes = {\n src: PropTypes.string,\n className: PropTypes.string.isRequired,\n isLazy: PropTypes.bool,\n altText: PropTypes.string,\n dataCy: PropTypes.string\n};\n\nImgTag.defaultProps = {\n src: null,\n isLazy: false,\n altText: '',\n dataCy: null\n};\n\nexport default ImgTag;\n","export const DEFAULT_IMG_TAG_FALLBACK_CONFIG = {\n size: 'md',\n format: 'png',\n resolution: '1x'\n};\n\nexport default {\n DEFAULT_IMG_TAG_FALLBACK_CONFIG\n};\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport SourceTags from './components/SourceTags';\nimport ImgTag from './components/ImgTag';\nimport DEFAULT_IMG_TAG_FALLBACK_CONFIG from './constants';\n\n/**\n * This component accepts an Array of objects representing `images` and other configuration parameters and renders a element with relevant tags and an tag\n * @param {Array} images Array of objects representing images e.g. [{ file: [FILEDATA], format: 'webp', resolution: '2x', 'size: { id: 'lg', value: 'large', minVw: '900px' }}]\n * @param {String} altText String to use as image alt text (optional)\n * @param {Object} imgTagFallbackConfig Overrides the DEFAULT_IMG_TAG_FALLBACK_CONFIG which selects the image to use as the fallback img src (optional)\n * @param {String} className Classname to apply to `` (optional)\n * @param {Boolean} isLazy Indicates if image loading attribute should be set to 'lazy' or 'eager' (optional, defaults to false => 'eager')\n * @param {String} dataCy Cypress test id to be applied to `` (optional)\n */\n\nexport const Picture = ({\n images,\n altText,\n imgTagFallbackConfig = DEFAULT_IMG_TAG_FALLBACK_CONFIG,\n className,\n isLazy,\n dataCy\n}) => {\n const [fallbackImgSrc, setFallbackImgSrc] = useState(null);\n\n useEffect(() => {\n if (!fallbackImgSrc) {\n const defaultImage = images.find(\n (image) =>\n image.resolution === imgTagFallbackConfig.resolution &&\n image.format === imgTagFallbackConfig.format &&\n image.size.id === imgTagFallbackConfig.size\n );\n\n if (defaultImage?.file) {\n setFallbackImgSrc(defaultImage.file);\n }\n }\n }, [images, imgTagFallbackConfig, fallbackImgSrc]);\n\n if (!images.length) {\n return false;\n }\n\n return (\n \n \n \n \n );\n};\n\nPicture.defaultProps = {\n imgTagFallbackConfig: DEFAULT_IMG_TAG_FALLBACK_CONFIG,\n altText: '',\n className: '',\n isLazy: false,\n dataCy: null\n};\n\nPicture.propTypes = {\n images: PropTypes.arrayOf(\n PropTypes.shape({\n file: PropTypes.string.isRequired,\n format: PropTypes.oneOf(['png', 'webp', 'jpg']).isRequired,\n resolution: PropTypes.oneOf(['1x', '2x']).isRequired,\n size: PropTypes.shape({\n id: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n value: PropTypes.string,\n minVw: PropTypes.string\n }).isRequired\n })\n ).isRequired,\n imgTagFallbackConfig: PropTypes.shape({\n size: PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl']),\n format: PropTypes.oneOf(['png', 'webp', 'jpg']),\n resolution: PropTypes.oneOf(['1x', '2x'])\n }),\n altText: PropTypes.string,\n className: PropTypes.string,\n isLazy: PropTypes.bool,\n dataCy: PropTypes.string\n};\n\nexport default Picture;\n","// extracted by mini-css-extract-plugin\nexport default {\"tabletImage\":\"TabletImage--tabletImage--2cLKT\"};","import React, { useEffect, useState } from 'react';\nimport clsx from '@strava/ui/clsx';\nimport {\n breakpoints,\n matchMaxMedia,\n matchMinMedia\n} from '@strava/ui/MediaQuery';\nimport { useStravaErrorLogging } from '@strava/container-context';\nimport { Picture } from '@strava/shared-ui';\nimport styles from './TabletImage.module.scss';\n\ninterface TabletImageProps {\n className?: string;\n}\n\ntype Image = {\n file: string;\n resolution: '1x' | '2x';\n format: 'webp' | 'png';\n size: { id: string; minVw: string };\n};\n\nexport const TabletImage = ({ className }: TabletImageProps) => {\n const { logError } = useStravaErrorLogging();\n const [tabletImages, setTabletImages] = useState([]);\n\n useEffect(() => {\n (async () => {\n const isTablet = matchMinMedia.screenSm() && matchMaxMedia.screenSmMax();\n\n if (isTablet) {\n // webpack comments ensure that the background images are included\n // with the current chunk, which prevents `active` from making a forbidden\n // request to cloudfront\n const importImage = async (filename: string) => {\n try {\n return (\n await import(\n /* webpackMode: \"eager\" */\n /* webpackExports: [\"default\", \"named\"] */\n `./assets/${filename}`\n )\n ).default;\n } catch (error) {\n logError(error);\n }\n };\n\n const resolutions = ['1x', '2x'] as const;\n const formats = ['png', 'webp'] as const;\n\n resolutions.forEach((resolution) => {\n formats.forEach(async (format) => {\n const file = await importImage(\n `Sign-Up-Page-Tablet@${resolution}.${format}`\n );\n\n if (file) {\n setTabletImages((prev) => [\n ...prev,\n {\n format,\n resolution,\n file,\n size: { id: 'sm', minVw: `${breakpoints.screenSm}px` }\n }\n ]);\n }\n });\n });\n }\n })();\n }, [logError]);\n\n return (\n
\n \n
\n );\n};\n\nexport default TabletImage;\n","// extracted by mini-css-extract-plugin\nexport default {\"noBackground\":\"src--noBackground--4HFP2\",\"desktopRegContainer\":\"src--desktopRegContainer--uG8L4\",\"mobileRegContainer\":\"src--mobileRegContainer--dqTUB\",\"mobileAndTabletContainer\":\"src--mobileAndTabletContainer--iCZmP\",\"mobileAndTabletOnly\":\"src--mobileAndTabletOnly--jp8h3\",\"tabletOnly\":\"src--tabletOnly--eVoI4\",\"desktopOnly\":\"src--desktopOnly--AzphY\"};","import React, { useCallback, useEffect } from 'react';\nimport FrontDoorsPageContainer, {\n getDefaultEventHandlers\n} from '@strava/front-doors-page-container-ui';\nimport { AlertProvider } from '@strava/ui/Alert';\nimport {\n AnalyticsFieldsTypes,\n EMAIL,\n EmailRegistrationFormProps\n} from '@strava/authentication-ui';\nimport {\n useStravaAnalytics,\n useStravaErrorLogging,\n useStravaBranch\n} from '@strava/container-context';\nimport { useApple } from '@strava/utils/src/externalSocialPartners/useApple';\nimport { setFullScreenBackgroundImage } from '@strava/utils/src/utils';\nimport DesktopRegistrationOptions from './components/DesktopRegistrationOptions';\nimport DesktopRegistrationMessage, {\n DesktopRegistrationMessageProps\n} from './components/DesktopRegistrationMessage';\nimport MobileRegistrationOptions from './components/MobileRegistrationOptions';\nimport MobileRegistrationMessage from './components/MobileRegistrationMessage';\nimport TabletImage from './components/TabletImage';\nimport { useExtAuthBtnClickHandler } from './helpers/useExtAuthBtnClickHandler.hook';\nimport { matchMinMedia } from '@strava/ui/MediaQuery';\nimport clsx from '@strava/ui/clsx';\nimport styles from './AccountRegistrationPage.module.scss';\n\nexport type AccountRegistrationPageProps = EmailRegistrationFormProps & {\n registrationMessage: DesktopRegistrationMessageProps;\n authorizationUrls: {\n email: string;\n facebook: string;\n google: string;\n };\n background: `background-${string}`; // where string is a number ('background-3')\n locale: string;\n denyNonessentialCookies: boolean;\n dataSharingOptedOut: boolean;\n userAgent: string;\n appleState: string;\n cohort?: string | undefined;\n flashMessage?: string | undefined;\n};\n\nconst AccountRegistrationPage = ({\n registrationMessage,\n background,\n locale,\n denyNonessentialCookies,\n dataSharingOptedOut,\n authorizationUrls,\n userAgent,\n appleState,\n ...regOptionsProps\n}: AccountRegistrationPageProps) => {\n const { track: _track } = useStravaAnalytics();\n const { logError } = useStravaErrorLogging();\n const { signin: appleSignin } = useApple(appleState, logError);\n\n useEffect(() => {\n (async () => {\n // only import background image on desktop\n if (matchMinMedia.screenMd()) {\n // webpack comments ensure that the background images are included\n // with the current chunk, which prevents `active` from making a forbidden\n // request to cloudfront\n const importImage = async () => {\n try {\n return (\n await import(\n /* webpackMode: \"eager\" */\n /* webpackExports: [\"default\", \"named\"] */\n `./assets/${background}.jpg`\n )\n ).default;\n } catch (error) {\n logError(error);\n }\n };\n\n const backgroundImage = await importImage();\n\n if (backgroundImage) {\n // apply background image directly to ``\n setFullScreenBackgroundImage(backgroundImage);\n }\n }\n })();\n }, [background, logError]);\n\n const track = useCallback(\n (fields: AnalyticsFieldsTypes) => {\n _track({\n category: 'onboarding',\n page: 'register',\n ...fields,\n properties: {\n background,\n ...fields.properties\n }\n });\n },\n [_track, background]\n );\n\n const { handleExtAuthBtnClick } = useExtAuthBtnClickHandler({\n appleSignin,\n authorizationUrls,\n track\n });\n\n const { isProcessing, appLink, createLink, cookiesAccepted } =\n useStravaBranch();\n\n // generate branch appLink (deeplink) when the sdk has successfully been\n // initialized.\n useEffect(() => {\n if (!isProcessing) {\n createLink({ feature: 'register' });\n }\n\n // only listen to cookiesAccepted and isProcessing\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [cookiesAccepted, isProcessing]);\n\n return (\n \n \n \n
\n \n \n
\n
\n \n
\n \n\n
\n \n \n
\n \n
\n );\n};\n\nexport default AccountRegistrationPage;\n","import {\n MOBILE_OS,\n SUPPORTED_BROWSERS,\n APPLE_APP_LINK_PATHS\n} from '@strava/constants/src/appConstants';\nimport { isString } from 'lodash-es';\nimport camelCase from 'lodash-es/camelCase';\nimport snakeCase from 'lodash-es/snakeCase';\nimport isObject from 'lodash-es/isObject';\nimport { CamelCasedPropertiesDeep, SnakeCasedPropertiesDeep } from 'type-fest';\n\nexport const generateRandomId = () => Math.random().toString(36).substring(2);\n\n// Capitalizes all the words and replaces some characters in the string to create a nicer looking title.\n// eg. 'man from the boondocks' => 'Man From The Boondocks'\nexport const titleize = (sentence: string) => {\n return sentence\n .split(' ')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ');\n};\n\nexport const displayName = (\n { firstName = '', lastName = '' },\n options = { forceAnonymize: false, maxLength: 100 }\n) => {\n const { maxLength, forceAnonymize } = options;\n const fullName = `${firstName} ${lastName}`;\n\n if (forceAnonymize || fullName.length > maxLength) {\n if (firstName.length > maxLength - 3) {\n return `${titleize(firstName.substring(0, maxLength - 4))}... ${lastName\n .charAt(0)\n .toUpperCase()}.`;\n }\n return `${titleize(firstName)} ${lastName.charAt(0).toUpperCase()}.`;\n }\n return fullName.trim();\n};\n\n/**\n * Checks to see if device is mobile\n * @param {string} userAgent - user agent string for the current browser. For next-js apps (SSR),\n * this value can be retrieved from request.headers['user-agent']\n * @returns {boolean} - true if the device is mobile\n */\nexport const isMobile = (userAgent = window?.navigator?.userAgent) => {\n if (isString(userAgent)) {\n // ref - https://developer.mozilla.org/en-US/docs/Web/HTTP/Browser_detection_using_the_user_agent#mobile_tablet_or_desktop\n return userAgent.toLowerCase().includes('mobi');\n }\n return false;\n};\n\n/**\n * Determines the OS for mobile devices\n * @param {string} userAgent - user agent string for the current browser. For next-js apps (SSR),\n * this value can be retrieved from request.headers['user-agent']\n * @returns {(string|null)} - one of ['android', 'ipad', 'iphone'] or null for unknown\n */\nexport const getMobileOS = (userAgent = window?.navigator?.userAgent) => {\n if (isString(userAgent)) {\n if (userAgent.includes('Android')) {\n return MOBILE_OS.android;\n }\n if (userAgent.includes('iPad')) {\n return MOBILE_OS.iPad;\n }\n if (userAgent.includes('iPhone')) {\n return MOBILE_OS.iPhone;\n }\n }\n return null;\n};\n\n/**\n * Determines, in a limited fashion, the browser according to the user agent.\n * NOTE: UAs are notoriously difficult to parse. This is meant as a bare-bones, noncomprehensive parser,\n * based on https://www.whatismybrowser.com/guides/the-latest-user-agent/.\n *\n * The order of conditionals is important, bc some Chrome & Firefox UAs include 'Safari', too.\n * Some Edge UAs may be recognized as Chrome for now, since they can include 'Chrome'. We don't\n * officially support Edge (yet?).\n *\n * @param {string} userAgent - user agent string for the current browser. For next-js apps (SSR),\n * this value can be retrieved from request.headers['user-agent']\n * @returns {(string|null)} - one of ['chrome', 'firefox', 'safari'] or null for unknown/unsupported browser\n */\nexport const getBrowser = (userAgent = window?.navigator?.userAgent) => {\n if (isString(userAgent)) {\n if (userAgent.includes('Chrome') || userAgent.includes('CriOS')) {\n return SUPPORTED_BROWSERS.chrome;\n }\n if (userAgent.includes('Firefox') || userAgent.includes('FxiOS'))\n return SUPPORTED_BROWSERS.firefox;\n if (userAgent.includes('Safari')) {\n return SUPPORTED_BROWSERS.safari;\n }\n }\n\n return null;\n};\n\n/**\n * Universal links are determined by the paths described in `apple-app-site-association` in active.\n * @param {string} pathname - window.location.pathname or nextjs equivalent\n * @returns {boolean} - whether the pathname string matches\n */\nexport const isUniversalLinkPage = (pathname: string) => {\n if (isString(pathname)) {\n return APPLE_APP_LINK_PATHS.some((path: string) => {\n const pathWithoutAsterisk = path.replace('/*', '');\n return pathname.startsWith(pathWithoutAsterisk);\n });\n }\n return false;\n};\n\n// eg. given,\n// \"urls\": {\n// \"100\": \"https://photo_url_1\",\n// \"1800\": \"https://photo_url_2\"\n// }\n// returns https://photo_url_2\nexport const getPhotoWithMaxDimension = (\n photoUrlHash: Record\n) => {\n if (!isObject(photoUrlHash)) {\n return '';\n }\n const key = Object.keys(photoUrlHash).reduce((a, b) => (a > b ? a : b));\n return photoUrlHash[key];\n};\n\n/**\n * Immutably merges a payload into an item in an array of objects\n * @param {array} array - An array of objects\n * @param {string|number} id - The unique id of the item in the array to update\n * @param {object} payload - the value to merge into the matched item\n * @param {object} options\n * @param {string} [options.idName=id] - the key of the unique identifier\n * @param {bool} [options.upsert=false] - if true, will insert the payload into the array as a new item if no matching item is found\n * @return {array} - A copy of the original array with the matching item updated\n */\nexport function arrayUpdateItemById(\n array: T[],\n id: string | number,\n payload: Partial,\n { idName, upsert }: { idName?: keyof T; upsert?: boolean } = {}\n): T[] {\n let itemFound = false;\n const property = idName || ('id' as keyof T);\n const mappedArray = array.map((item) => {\n itemFound = itemFound || item[property] === id;\n return item[property] === id ? { ...item, ...payload } : item;\n });\n\n return itemFound || !upsert ? mappedArray : ([...array, payload] as T[]);\n}\n\n/**\n * Immutably removes an item from an array by index\n * @param {array} array\n * @param {number} index - the index of the item to remove\n * @return {array} - A copy of the original array with the matching item removed\n */\nexport function arrayRemoveByIndex(array: T[], index: number): T[] {\n return index === -1\n ? array\n : [...array.slice(0, index), ...array.slice(index + 1)];\n}\n\n/**\n * Immutably removes an item from an array of objects\n * @param {array} array - An array of objects\n * @param {string|number} id - The unique id of the item in the array to remove\n * @param {string} [idName=id] - the key of the unique identifier\n * @return {array} - A copy of the original array with the matching item removed\n */\n\nexport function arrayRemoveItemById(\n array: T[],\n propertyValue: string | number,\n idName = 'id'\n): T[] {\n const index = array.findIndex(\n (item) => item[idName as keyof T] === propertyValue\n );\n return arrayRemoveByIndex(array, index);\n}\n\nexport const capitalizeFirstLetter = (string: string) =>\n `${string.charAt(0).toUpperCase()}${string.slice(1)}`;\n\n/**\n * @description Converts Object keys from string of any case to camelCase.\n * Handles nested objects and arrays.\n * */\nexport function convertKeysToCamel(object: T): CamelCasedPropertiesDeep {\n if (Array.isArray(object)) {\n return (object as unknown[]).map((item) =>\n convertKeysToCamel(item)\n ) as CamelCasedPropertiesDeep;\n }\n\n if (isObject(object)) {\n return Object.keys(object).reduce((o, k) => {\n const key = camelCase(k);\n const value = object[\n k as keyof typeof object\n ] as CamelCasedPropertiesDeep;\n\n if (isObject(value)) {\n return {\n ...o,\n [key]: convertKeysToCamel(value)\n };\n }\n\n if (Array.isArray(value)) {\n return {\n ...o,\n [key]: (value as unknown[]).map((item) => convertKeysToCamel(item))\n };\n }\n\n return {\n ...o,\n [key]: value\n };\n }, {} as CamelCasedPropertiesDeep);\n }\n\n return object as CamelCasedPropertiesDeep;\n}\n\n/**\n * @description Converts Object keys from string of any case to snakeCase.\n * Handles nested objects and arrays.\n * */\nexport function convertKeysToSnake(object: T): SnakeCasedPropertiesDeep {\n if (Array.isArray(object)) {\n return (object as unknown[]).map((item) =>\n convertKeysToSnake(item)\n ) as SnakeCasedPropertiesDeep;\n }\n\n if (isObject(object)) {\n return Object.keys(object).reduce((o, k) => {\n const key = snakeCase(k);\n const value = object[\n k as keyof typeof object\n ] as SnakeCasedPropertiesDeep;\n\n if (isObject(value)) {\n return {\n ...o,\n [key]: convertKeysToSnake(value)\n };\n }\n\n if (Array.isArray(value)) {\n return {\n ...o,\n [key]: (value as unknown[]).map((item) => convertKeysToSnake(item))\n };\n }\n\n return {\n ...o,\n [key]: value\n };\n }, {} as SnakeCasedPropertiesDeep);\n }\n\n return object as SnakeCasedPropertiesDeep;\n}\n\n/**\n * Checks to see if localStorage is available\n *\n * @return {boolean} - true if localStorage can be used\n */\nexport const isLocalStorageAvailable = () => {\n const test = 'test';\n try {\n localStorage.setItem(test, test);\n localStorage.removeItem(test);\n return true;\n } catch (e) {\n return false;\n }\n};\n\n/**\n * Appends querystring params to a URL\n *\n * @param {string} originalUrl - The original URL to append params to\n * @param {object} params - An object of key value parameters to append to URL\n * @return {string} - URL with params appended\n */\nexport const addParamsToURL = (originalUrl: string, params: object) => {\n const url = new URL(originalUrl);\n\n Object.entries(params).forEach(([key, value]) => {\n url.searchParams.append(key, value);\n });\n\n return url.toString();\n};\n\n/**\n * Some of our logged-out pages have a full-screen image background.\n * This util helps with setting the background image on the `` element, and\n * just requires passing in the image to be used.\n * @param {string} background\n */\nexport const setFullScreenBackgroundImage = (background: string) => {\n // apply background image directly to ``\n const body = document.querySelector('body');\n if (body) {\n body.style.setProperty('background-image', `url(${background})`);\n body.style.setProperty('background-size', 'cover');\n body.style.setProperty('background-position', 'center');\n }\n};\n\n/**\n * Uses the host to determine if a page is being loaded in staging or localhost.\n *\n * This util function is helpful for apps that run on nextJS which has node process\n * defined as production in both staging and production.\n *\n * @param host - host name\n * @returns {boolean} - true if app is running in staging or local\n */\nexport const isStagingOrLocal = (host: string) =>\n ['staging', 'localhost'].some((_host) => host.includes(_host));\n\n/**\n * Adds an id property to each object in an array. Uses the object's index as the value for the id\n * @param {array} objects - An array of objects\n * @return {array} - A copy of the original array with id property added to each object\n */\nexport const arrayAddIndexAsId = (objects: Array) =>\n objects.map((object, index) => ({ ...object, id: index }));\n","import {\n elemAttrForAnalytics,\n APPLE,\n FACEBOOK,\n GOOGLE,\n AnalyticsFieldsTypes\n} from '@strava/authentication-ui';\n\nexport const useExtAuthBtnClickHandler = ({\n appleSignin,\n authorizationUrls,\n track\n}: {\n appleSignin: () => void;\n authorizationUrls: {\n google: string;\n facebook: string;\n };\n track: (fields: AnalyticsFieldsTypes) => void;\n}) => {\n /**\n * Facebook, Google, & Apple signup buttons onClick handler\n * Apple sign in uses function provided by Apple web sdk to handle sign in, FB & Google\n * sign ins use url provided by server\n */\n const handleExtAuthBtnClick = (\n option: typeof FACEBOOK | typeof GOOGLE | typeof APPLE\n ) => {\n const element = elemAttrForAnalytics(option);\n track({\n action: 'click',\n element\n });\n track({\n action: 'redirect',\n element,\n properties: {\n // no redirect url for Apple, so send `null` instead\n redirect_url: option === APPLE ? null : authorizationUrls[option],\n path_type: 'external_partner'\n }\n });\n\n if (option === APPLE) {\n appleSignin();\n } else {\n window.location.assign(authorizationUrls[option]);\n }\n };\n\n return { handleExtAuthBtnClick };\n};\n","import { useRef, useCallback, useEffect, useState } from 'react';\n\n/**\n * The `useSafeState` hook acts the same as React's `useState`,\n * where we can set the initial state, and it returns (1) the current state,\n * and (2) the state setter.\n *\n * But with `useSafeState`, it will only set the state when the component is mounted\n * in order to prevent memory leaks and avoid this warning:\n * \"Warning: Can’t perform a React state update on an unmounted component.\"\n * When a component is unmounted, we don't want to set the state.\n *\n * This helps when we have async behavior where we call an async API call,\n * then based on the async response, we set the state. But if the component\n * unmounts before the API call resolves, we don't want to set the state.\n * */\nexport const useSafeState = (initialState) => {\n const mountedRef = useRef(false);\n const [state, setState] = useState(initialState);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const setSafeState = useCallback(\n (args) => (mountedRef.current ? setState(args) : () => {}),\n []\n );\n\n return [state, setSafeState];\n};\n\nexport default useSafeState;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgNavigationProfileHighlightedMedium = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n )\n);\nSvgNavigationProfileHighlightedMedium.defaultProps = {\n color: \"currentColor\",\n size: 32,\n title: undefined,\n titleId: undefined,\n};\nSvgNavigationProfileHighlightedMedium.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgNavigationProfileHighlightedMedium;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorSuperuserSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorSuperuserSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorSuperuserSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorSuperuserSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorSummitSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorSummitSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorSummitSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorSummitSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorProSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n \n )\n);\nSvgBadgesMulticolorProSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorProSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorProSmall;\n","import * as React from \"react\";\nimport PropTypes from \"prop-types\";\nconst SvgBadgesMulticolorVerifiedSmall = React.forwardRef(\n ({ color, size, title, titleId, ...props }, ref) => (\n \n {title ? {title} : null}\n \n \n \n \n \n )\n);\nSvgBadgesMulticolorVerifiedSmall.defaultProps = {\n color: \"currentColor\",\n size: 24,\n title: undefined,\n titleId: undefined,\n};\nSvgBadgesMulticolorVerifiedSmall.propTypes = {\n color: PropTypes.string,\n size: PropTypes.number,\n title: PropTypes.string,\n titleId: PropTypes.string,\n};\nexport default SvgBadgesMulticolorVerifiedSmall;\n","// extracted by mini-css-extract-plugin\nexport default {\"avatar\":\"Avatar--avatar--EjA+i\",\"imgWrapper\":\"Avatar--imgWrapper--no4rK\",\"badge\":\"Avatar--badge--AGhgx\",\"athlete\":\"Avatar--athlete--swByo\",\"xsmall\":\"Avatar--xsmall--ooxrp\",\"small\":\"Avatar--small--d-InS\",\"large\":\"Avatar--large--yUfy1\",\"xlarge\":\"Avatar--xlarge--Yt5UL\",\"club\":\"Avatar--club--HMeLa\",\"default\":\"Avatar--default--cRgUh\"};","import React, { useEffect } from 'react';\nimport { useSafeState } from '@strava/react-hooks/src/use-safe-state';\nimport AvatarFallback from '@strava/icons/NavigationProfileHighlightedMedium';\nimport EmployeeBadge from '@strava/icons/BadgesMulticolorSuperuserSmall';\nimport SubscriberBadge from '@strava/icons/BadgesMulticolorSummitSmall';\nimport ProBadge from '@strava/icons/BadgesMulticolorProSmall';\nimport VerifiedBadge from '@strava/icons/BadgesMulticolorVerifiedSmall';\nimport clsx from '../clsx';\n\nimport styles from './Avatar.module.scss';\n\ninterface ImgProps {\n src: string;\n alt: string;\n title: string;\n fallback?: React.ReactNode;\n}\n\nconst Img = ({ src, alt, title, fallback = null }: ImgProps) => {\n const [children, setChildren] = useSafeState(\n {alt}\n );\n\n useEffect(() => {\n let image: HTMLImageElement | null = new Image();\n image.onload = () => {\n setChildren({alt});\n };\n image.onerror = () => {\n setChildren(fallback);\n };\n image.src = src;\n return () => {\n image = null;\n };\n }, [src, alt, title, fallback]);\n\n return <>{children};\n};\n\nfunction getBadge(badge: string) {\n switch (badge) {\n case 'ambassador':\n return ;\n case 'employee':\n return ;\n case 'subscriber':\n case 'premium':\n return ;\n case 'pro':\n return ;\n case 'verified':\n return ;\n default:\n return null;\n }\n}\n\nexport type AvatarType = 'athlete' | 'club';\nexport type AvatarSize = 'xsmall' | 'small' | 'default' | 'large' | 'xlarge';\nexport type AvatarBadge =\n | '' // in some cases active has member_type as empty string for default users\n | 'ambassador'\n | 'employee'\n | 'subscriber'\n | 'premium' // legacy name referring to 'subscriber', used in active\n | 'pro'\n | 'verified';\n\ninterface BaseAvatarProps {\n src: string;\n type: AvatarType;\n name?: string;\n alt?: string;\n title?: string;\n size?: AvatarSize;\n badge?: AvatarBadge;\n className?: string;\n}\n\ntype AnchorProps = React.ComponentPropsWithoutRef<'a'> & {\n href?: string;\n};\ntype DivProps = React.ComponentPropsWithoutRef<'div'> & {\n href?: never;\n};\n\n// Guard to check if href exists in props\nconst hasHref = (props: AnchorProps | DivProps): props is AnchorProps =>\n 'href' in props;\n\ntype AvatarProps = BaseAvatarProps & (AnchorProps | DivProps);\n\n/**\n * Prop Deprecation Warning: We are slowly deprecating the `name` prop in favor of the `title` prop\n * so that the React props match up to the element's attribute.\n * */\nconst Avatar = ({\n name = '',\n alt = '',\n title,\n type,\n src,\n size,\n badge,\n className,\n ...otherProps\n}: AvatarProps) => {\n const classNames = clsx([\n styles.avatar,\n styles[type],\n className,\n size && styles[size]\n ]);\n\n // TODO: uncomment when existing Avatar usage is refactored. Otherwise, there will be a lot of warning in the console.\n // if (name || process.env.NODE_ENV !== 'production') {\n // console.warn(\n // '[Prop Deprecation Warning] Deprecating the `name` prop in favor of the `title`.'\n // );\n // }\n\n const children = (\n <>\n {badge &&
{getBadge(badge)}
}\n
\n : null}\n />\n
\n \n );\n\n if (hasHref(otherProps)) {\n return (\n \n {children}\n \n );\n }\n\n return (\n \n {children}\n \n );\n};\n\nexport default Avatar;\n"],"names":["global","Object","freeSelf","self","freeGlobal","Function","root","array","iteratee","index","length","result","Array","isArray","objectProto","prototype","hasOwnProperty","nativeObjectToString","toString","symToStringTag","Symbol","undefined","value","isOwn","call","tag","unmasked","e","getRawTag","objectToString","isObjectLike","baseGetTag","symbolProto","symbolToString","baseToString","arrayMap","isSymbol","args","arguments","string","replace","appendScriptToBody","_ref","script","name","logError","document","querySelector","appendChild","Error","injectAppleScript","_ref3","locale","window","AppleID","createElement","formattedLocale","src","async","useApple","state","useEffect","signin","stravaInit","auth","init","clientId","scope","redirectURI","signIn","freeze","man","woman","preferNotSay","nonBinary","LOCALE","deDE","enUS","enGB","esES","es419","frFR","itIT","jaJP","koKR","nlNL","ptBR","ptPT","ruRU","zhCN","zhTW","de","es","fr","it","ja","ko","nl","pt","ru","zh","control","variantA","variantB","android","iPhone","iPad","chrome","firefox","safari","optedOut","i18nPrefix","emailAuthorizationUrl","handleExtAuthBtnClick","flashMessage","track","emailRegFormProps","t","useStravaTranslations","showAlert","useAlertContext","alertType","AlertStatus","content","hideCloseButton","containerId","EMAIL_REGISTRATION_FORM_ALERT_ID","id","externalSignups","React","AccountAuthButton","variant","onClick","FACEBOOK","GOOGLE","emailSignup","EmailRegistrationForm","_extends","authorizationUrl","idPrefix","DisclaimerText","className","styles","AlertContainer","OrDivider","text","href","target","Element","attributes","_ref$attributes","_ref$children","children","_ref$selfClose","selfClose","Tag","_proto","_node","Filter","a","type","address","invalid","audio","br","void","body","TYPE_FLOW","button","TYPE_PHRASING","caption","parent","col","colgroup","details","dd","dl","dt","figcaption","footer","header","hr","img","li","main","ol","picture","rb","rp","rt","rtc","ruby","source","summary","table","tbody","td","tfoot","th","thead","tr","ul","video","wbr","createConfigBuilder","config","tagConfigs","_extends2","forEach","TYPE_PALPABLE","alt","cite","class","colspan","controls","datetime","default","disabled","dir","height","kind","label","lang","loading","loop","media","muted","poster","role","sizes","span","start","style","srclang","srcset","title","width","rowspan","StyleFilter","_Filter","apply","keys","key","String","match","INVALID_STYLES","createHTMLDocument","Parser","props","matchers","filters","concat","keyIndex","container","allowed","allowList","ALLOWED_TAG_LIST","Set","BANNED_TAG_LIST","_proto3","reduce","nextNode","filter","node","parentConfig","tagName","matchedString","parts","valid","_parts","isVoid","partProps","tokenName","elementIndex","tokenizedString","_this","elements","_match","slice","includes","childConfig","Boolean","noHtml","disableLineBreaks","nextMarkup","createContainer","createDocument","INVALID_ROOTS","el","newName","ATTRIBUTES","newValue","Number","_this2","count","letter","toUpperCase","protocol","toLowerCase","parseNode","parentNode","transform","transformOnlyAllowList","mergedText","_this3","transformed","has","elementProps","open","_open","_match2","startIndex","_elements$tokenName","matcher","endIndex","nodes","push","containerTagName","emptyContent","parsedContent","mainContent","markup","textKey","avatar","avatarType","clsx","Avatar","size","Markup","noWrap","APPLE","theme","this","__data__","other","eq","splice","data","assocIndexOf","pop","ListCache","entries","clear","entry","set","listCacheClear","listCacheDelete","get","listCacheGet","listCacheHas","listCacheSet","uid","isObject","maskSrcKey","exec","coreJsData","func","funcToString","reIsHostCtor","funcProto","reIsNative","RegExp","isMasked","isFunction","test","toSource","object","getValue","baseIsNative","getNative","nativeCreate","Hash","hashClear","hashDelete","hashGet","hashHas","hashSet","Map","map","isKeyable","getMapData","MapCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","pairs","LARGE_ARRAY_SIZE","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","SetCache","values","add","setCacheAdd","setCacheHas","predicate","cache","bitmask","customizer","equalFunc","stack","isPartial","arrLength","othLength","arrStacked","othStacked","seen","arrValue","othValue","compared","arraySome","othIndex","cacheHas","symbolValueOf","valueOf","byteLength","byteOffset","buffer","Uint8Array","message","convert","mapToArray","setToArray","stacked","equalArrays","offset","keysFunc","symbolsFunc","arrayPush","resIndex","propertyIsEnumerable","nativeGetSymbols","getOwnPropertySymbols","arrayFilter","symbol","stubArray","n","isArguments","baseIsArguments","freeExports","exports","nodeType","freeModule","module","Buffer","isBuffer","stubFalse","reIsUint","typedArrayTags","isLength","freeProcess","nodeUtil","types","require","binding","nodeIsTypedArray","baseUnary","baseIsTypedArray","inherited","isArr","isArg","isBuff","isType","isTypedArray","skipIndexes","baseTimes","isIndex","Ctor","constructor","arg","overArg","isPrototype","nativeKeys","isArrayLike","arrayLikeKeys","baseKeys","baseGetAllKeys","getSymbols","objProps","getAllKeys","objLength","objStacked","skipCtor","objValue","objCtor","othCtor","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","DataView","mapCtorString","promiseCtorString","Promise","setCtorString","weakMapCtorString","WeakMap","getTag","ArrayBuffer","ctorString","argsTag","arrayTag","objectTag","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","baseIsEqual","baseIsEqualDeep","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isStrictComparable","getMatchData","matchesStrictComparable","baseIsMatch","reIsDeepProp","reIsPlainProp","memoize","resolver","TypeError","memoized","Cache","rePropName","reEscapeChar","stringToPath","memoizeCapped","charCodeAt","number","quote","subString","isKey","path","castPath","toKey","defaultValue","baseGet","hasFunc","hasPath","baseHasIn","hasIn","baseProperty","basePropertyDeep","identity","baseMatchesProperty","baseMatches","property","fromRight","iterable","createBaseFor","eachFunc","collection","createBaseEach","baseFor","baseEach","baseMap","baseIteratee","fromIndex","strictIndexOf","baseFindIndex","baseIsNaN","baseIndexOf","comparator","noop","arrayIncludes","isCommon","arrayIncludesWith","createSet","outer","computed","seenIndex","baseUniq","getUniqueSizesFromImages","images","uniqBy","getUniqueFormatsFromImages","getUniqueResolutionsFromImages","getImagesBySize","image","getImagesByFormat","format","getImagesByResolution","resolution","SourceTags","useStravaErrorLogging","sources","setSources","useState","sourceData","getSourceData","imagesForSize","imagesForSizeAndFormat","srcSet","imageBySizeAndFormatAndResolution","file","join","error","minVw","propTypes","PropTypes","isRequired","ImgTag","isLazy","altText","dataCy","defaultProps","DEFAULT_IMG_TAG_FALLBACK_CONFIG","Picture","imgTagFallbackConfig","fallbackImgSrc","setFallbackImgSrc","defaultImage","find","tabletImages","setTabletImages","matchMinMedia","matchMaxMedia","importImage","filename","formats","prev","breakpoints","registrationMessage","background","denyNonessentialCookies","dataSharingOptedOut","authorizationUrls","userAgent","appleState","regOptionsProps","_track","useStravaAnalytics","appleSignin","backgroundImage","setProperty","setFullScreenBackgroundImage","useCallback","fields","category","page","properties","option","element","elemAttrForAnalytics","action","redirect_url","path_type","location","assign","useExtAuthBtnClickHandler","isProcessing","appLink","createLink","cookiesAccepted","useStravaBranch","feature","AlertProvider","FrontDoorsPageContainer","cpraI18nPrefix","menuConfig","showLoginOptionOnly","getDefaultEventHandlers","MobileRegistrationMessage","MobileRegistrationOptions","EMAIL","TabletImage","DesktopRegistrationMessage","DesktopRegistrationOptions","useSafeState","initialState","mountedRef","useRef","setState","current","SvgNavigationProfileHighlightedMedium","ref","color","titleId","fill","xmlns","viewBox","d","SvgBadgesMulticolorSuperuserSmall","fillRule","SvgBadgesMulticolorSummitSmall","SvgBadgesMulticolorProSmall","SvgBadgesMulticolorVerifiedSmall","Img","fallback","setChildren","Image","onload","onerror","_ref2","badge","otherProps","classNames","ProBadge","EmployeeBadge","SubscriberBadge","VerifiedBadge","getBadge","AvatarFallback"],"sourceRoot":""}