{"version":3,"file":"static/js/689.d80f20cd.js","mappings":"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","sources":["../node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/attr-accept/dist/es/index.js","../node_modules/aws-sdk/clients/cognitoidentity.js","../node_modules/aws-sdk/clients/s3.js","../node_modules/aws-sdk/clients/sts.js","../node_modules/aws-sdk/lib/api_loader.js","../node_modules/aws-sdk/lib/browserCryptoLib.js","../node_modules/aws-sdk/lib/browserHashUtils.js","../node_modules/aws-sdk/lib/browserHmac.js","../node_modules/aws-sdk/lib/browserMd5.js","../node_modules/aws-sdk/lib/browserSha1.js","../node_modules/aws-sdk/lib/browserSha256.js","../node_modules/aws-sdk/lib/browser_loader.js","../node_modules/aws-sdk/lib/config.js","../node_modules/aws-sdk/lib/config_regional_endpoint.js","../node_modules/aws-sdk/lib/core.js","../node_modules/aws-sdk/lib/credentials.js","../node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","../node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","../node_modules/aws-sdk/lib/credentials/saml_credentials.js","../node_modules/aws-sdk/lib/credentials/temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","../node_modules/aws-sdk/lib/discover_endpoint.js","../node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","../node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","../node_modules/aws-sdk/lib/event-stream/int64.js","../node_modules/aws-sdk/lib/event-stream/parse-event.js","../node_modules/aws-sdk/lib/event-stream/parse-message.js","../node_modules/aws-sdk/lib/event-stream/split-message.js","../node_modules/aws-sdk/lib/event_listeners.js","../node_modules/aws-sdk/lib/http.js","../node_modules/aws-sdk/lib/http/xhr.js","../node_modules/aws-sdk/lib/json/builder.js","../node_modules/aws-sdk/lib/json/parser.js","../node_modules/aws-sdk/lib/maintenance_mode_message.js","../node_modules/aws-sdk/lib/model/api.js","../node_modules/aws-sdk/lib/model/collection.js","../node_modules/aws-sdk/lib/model/operation.js","../node_modules/aws-sdk/lib/model/paginator.js","../node_modules/aws-sdk/lib/model/resource_waiter.js","../node_modules/aws-sdk/lib/model/shape.js","../node_modules/aws-sdk/lib/param_validator.js","../node_modules/aws-sdk/lib/protocol/helpers.js","../node_modules/aws-sdk/lib/protocol/json.js","../node_modules/aws-sdk/lib/protocol/query.js","../node_modules/aws-sdk/lib/protocol/rest.js","../node_modules/aws-sdk/lib/protocol/rest_json.js","../node_modules/aws-sdk/lib/protocol/rest_xml.js","../node_modules/aws-sdk/lib/query/query_param_serializer.js","../node_modules/aws-sdk/lib/realclock/browserClock.js","../node_modules/aws-sdk/lib/region/utils.js","../node_modules/aws-sdk/lib/region_config.js","../node_modules/aws-sdk/lib/request.js","../node_modules/aws-sdk/lib/resource_waiter.js","../node_modules/aws-sdk/lib/response.js","../node_modules/aws-sdk/lib/s3/managed_upload.js","../node_modules/aws-sdk/lib/sequential_executor.js","../node_modules/aws-sdk/lib/service.js","../node_modules/aws-sdk/lib/services/s3.js","../node_modules/aws-sdk/lib/services/s3util.js","../node_modules/aws-sdk/lib/services/sts.js","../node_modules/aws-sdk/lib/signers/bearer.js","../node_modules/aws-sdk/lib/signers/presign.js","../node_modules/aws-sdk/lib/signers/request_signer.js","../node_modules/aws-sdk/lib/signers/s3.js","../node_modules/aws-sdk/lib/signers/v2.js","../node_modules/aws-sdk/lib/signers/v3.js","../node_modules/aws-sdk/lib/signers/v3https.js","../node_modules/aws-sdk/lib/signers/v4.js","../node_modules/aws-sdk/lib/signers/v4_credentials.js","../node_modules/aws-sdk/lib/state_machine.js","../node_modules/aws-sdk/lib/util.js","../node_modules/aws-sdk/lib/xml/browser_parser.js","../node_modules/aws-sdk/lib/xml/builder.js","../node_modules/aws-sdk/lib/xml/escape-attribute.js","../node_modules/aws-sdk/lib/xml/escape-element.js","../node_modules/aws-sdk/lib/xml/xml-node.js","../node_modules/aws-sdk/lib/xml/xml-text.js","../node_modules/aws-sdk/node_modules/uuid/dist/bytesToUuid.js","../node_modules/aws-sdk/node_modules/uuid/dist/index.js","../node_modules/aws-sdk/node_modules/uuid/dist/md5-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/rng-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/sha1-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/v1.js","../node_modules/aws-sdk/node_modules/uuid/dist/v3.js","../node_modules/aws-sdk/node_modules/uuid/dist/v35.js","../node_modules/aws-sdk/node_modules/uuid/dist/v4.js","../node_modules/aws-sdk/node_modules/uuid/dist/v5.js","../node_modules/aws-sdk/vendor/endpoint-cache/index.js","../node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","../node_modules/base64-js/index.js","../node_modules/buffer/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/createForOfIteratorHelper.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/createSuper.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/define-data-property/index.js","../node_modules/es-define-property/index.js","../node_modules/es-errors/eval.js","../node_modules/es-errors/index.js","../node_modules/es-errors/range.js","../node_modules/es-errors/ref.js","../node_modules/es-errors/syntax.js","../node_modules/es-errors/type.js","../node_modules/es-errors/uri.js","../node_modules/events/events.js","../node_modules/for-each/index.js","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/hasown/index.js","../node_modules/resolve-pathname/esm/resolve-pathname.js","../node_modules/value-equal/esm/value-equal.js","../node_modules/history/esm/history.js","../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","../node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/hoist-non-react-statics/node_modules/react-is/index.js","../node_modules/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/is-arguments/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-typed-array/index.js","../node_modules/isarray/index.js","../node_modules/jmespath/jmespath.js","../node_modules/localized-strings/lib/LocalizedStrings.js","../node_modules/localized-strings/lib/utils.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Hash.js","../node_modules/lodash/_ListCache.js","../node_modules/lodash/_Map.js","../node_modules/lodash/_MapCache.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_SetCache.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_Symbol.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_arrayAggregator.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/_arrayIncludes.js","../node_modules/lodash/_arrayIncludesWith.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_arrayMap.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_arraySome.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_assocIndexOf.js","../node_modules/lodash/_baseAggregator.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_baseEach.js","../node_modules/lodash/_baseFindIndex.js","../node_modules/lodash/_baseFor.js","../node_modules/lodash/_baseForOwn.js","../node_modules/lodash/_baseGet.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_baseGetTag.js","../node_modules/lodash/_baseHasIn.js","../node_modules/lodash/_baseIndexOf.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/_baseIsEqual.js","../node_modules/lodash/_baseIsEqualDeep.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/_baseIsMatch.js","../node_modules/lodash/_baseIsNaN.js","../node_modules/lodash/_baseIsNative.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseIteratee.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/_baseMatches.js","../node_modules/lodash/_baseMatchesProperty.js","../node_modules/lodash/_baseProperty.js","../node_modules/lodash/_basePropertyDeep.js","../node_modules/lodash/_baseSlice.js","../node_modules/lodash/_baseSum.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseToString.js","../node_modules/lodash/_baseTrim.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_baseUniq.js","../node_modules/lodash/_cacheHas.js","../node_modules/lodash/_castPath.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_coreJsData.js","../node_modules/lodash/_createAggregator.js","../node_modules/lodash/_createBaseEach.js","../node_modules/lodash/_createBaseFor.js","../node_modules/lodash/_createSet.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_equalArrays.js","../node_modules/lodash/_equalByTag.js","../node_modules/lodash/_equalObjects.js","../node_modules/lodash/_freeGlobal.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_getMapData.js","../node_modules/lodash/_getMatchData.js","../node_modules/lodash/_getNative.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getRawTag.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_getValue.js","../node_modules/lodash/_hasPath.js","../node_modules/lodash/_hashClear.js","../node_modules/lodash/_hashDelete.js","../node_modules/lodash/_hashGet.js","../node_modules/lodash/_hashHas.js","../node_modules/lodash/_hashSet.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/_isIterateeCall.js","../node_modules/lodash/_isKey.js","../node_modules/lodash/_isKeyable.js","../node_modules/lodash/_isMasked.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_isStrictComparable.js","../node_modules/lodash/_listCacheClear.js","../node_modules/lodash/_listCacheDelete.js","../node_modules/lodash/_listCacheGet.js","../node_modules/lodash/_listCacheHas.js","../node_modules/lodash/_listCacheSet.js","../node_modules/lodash/_mapCacheClear.js","../node_modules/lodash/_mapCacheDelete.js","../node_modules/lodash/_mapCacheGet.js","../node_modules/lodash/_mapCacheHas.js","../node_modules/lodash/_mapCacheSet.js","../node_modules/lodash/_mapToArray.js","../node_modules/lodash/_matchesStrictComparable.js","../node_modules/lodash/_memoizeCapped.js","../node_modules/lodash/_nativeCreate.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/_objectToString.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_root.js","../node_modules/lodash/_setCacheAdd.js","../node_modules/lodash/_setCacheHas.js","../node_modules/lodash/_setToArray.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_strictIndexOf.js","../node_modules/lodash/_stringToPath.js","../node_modules/lodash/_toKey.js","../node_modules/lodash/_toSource.js","../node_modules/lodash/_trimmedEndIndex.js","../node_modules/lodash/chunk.js","../node_modules/lodash/cloneDeep.js","../node_modules/lodash/eq.js","../node_modules/lodash/get.js","../node_modules/lodash/groupBy.js","../node_modules/lodash/hasIn.js","../node_modules/lodash/identity.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/isArray.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/isFunction.js","../node_modules/lodash/isLength.js","../node_modules/lodash/isMap.js","../node_modules/lodash/isObject.js","../node_modules/lodash/isObjectLike.js","../node_modules/lodash/isSet.js","../node_modules/lodash/isSymbol.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/keys.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/memoize.js","../node_modules/lodash/noop.js","../node_modules/lodash/property.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/sum.js","../node_modules/lodash/toFinite.js","../node_modules/lodash/toInteger.js","../node_modules/lodash/toNumber.js","../node_modules/lodash/toString.js","../node_modules/lodash/uniq.js","../node_modules/possible-typed-array-names/index.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/index.js","../node_modules/react-dropdown/dist/index.js","../node_modules/file-selector/src/file.ts","../node_modules/file-selector/src/file-selector.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js","../node_modules/react-localization/lib/LocalizedStrings.js","../node_modules/react-router-dom/modules/BrowserRouter.js","../node_modules/react-router-dom/modules/HashRouter.js","../node_modules/react-router-dom/modules/utils/locationUtils.js","../node_modules/react-router-dom/modules/Link.js","../node_modules/react-router-dom/modules/NavLink.js","../node_modules/react-router/node_modules/mini-create-react-context/dist/esm/index.js","../node_modules/react-router/modules/createNameContext.js","../node_modules/react-router/modules/HistoryContext.js","../node_modules/react-router/modules/RouterContext.js","../node_modules/react-router/modules/Router.js","../node_modules/react-router/modules/MemoryRouter.js","../node_modules/react-router/modules/Lifecycle.js","../node_modules/react-router/modules/generatePath.js","../node_modules/react-router/modules/Redirect.js","../node_modules/react-router/modules/matchPath.js","../node_modules/react-router/modules/Route.js","../node_modules/react-router/modules/StaticRouter.js","../node_modules/react-router/modules/Switch.js","../node_modules/react-router/modules/hooks.js","../node_modules/react-router/node_modules/isarray/index.js","../node_modules/react-router/node_modules/path-to-regexp/index.js","../node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-router/node_modules/react-is/index.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/set-function-length/index.js","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/url.js","../node_modules/use-debounce/src/useDebouncedCallback.ts","../node_modules/use-debounce/src/useDebounce.ts","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/which-typed-array/index.js","../node_modules/available-typed-arrays/index.js","../node_modules/classnames/index.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@aws-amplify/auth/src/common/AuthErrorStrings.ts","../node_modules/@aws-amplify/auth/src/errors/AuthError.ts","../node_modules/@aws-amplify/auth/src/errors/constants.ts","../node_modules/@aws-amplify/auth/src/errors/types/validation.ts","../node_modules/@aws-amplify/auth/src/errors/utils/assertServiceError.ts","../node_modules/@aws-amplify/auth/src/errors/utils/assertValidationError.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/autoSignIn.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/confirmResetPassword.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/confirmSignUp.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/internal/fetchUserAttributes.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/fetchUserAttributes.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/getCurrentUser.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/internal/getCurrentUser.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/resetPassword.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/sendUserAttributeVerificationCode.ts","../node_modules/@aws-amplify/core/src/utils/convert/base64/base64Encoder.ts","../node_modules/@aws-amplify/core/src/utils/convert/base64/bytesToString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/types/errors.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signInStore.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/textEncoder/index.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/BigInteger/BigInteger.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/calculate/calculateS.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/constants.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getBytesFromHex.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHexFromBytes.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHashFromData.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHashFromHex.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getPaddedHex.ts","../node_modules/@aws-amplify/core/src/utils/WordArray.ts","../node_modules/@aws-amplify/core/src/utils/cryptoSecureRandomInt.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getRandomBytes.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/AuthenticationHelper/AuthenticationHelper.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getRandomString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/calculate/calculateU.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getHkdfKey.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/calculate/calculateA.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getAuthenticationHelper.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getNowString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/srp/getSignatureString.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signInHelpers.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/cacheTokens.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/dispatchSignedInHubEvent.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithCustomSRPAuth.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithSRP.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signIn.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithUserPassword.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signInWithCustomAuth.ts","../node_modules/@aws-amplify/core/src/singleton/apis/clearCredentials.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/getRedirectUrl.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/oAuthSignOutRedirect.ts","../node_modules/@aws-amplify/auth/src/utils/openAuthSession.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/handleOAuthSignOut.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/completeOAuthSignOut.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signOut.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/apis/signUp.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/types.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/errorHelpers.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/TokenStore.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/refreshAuthTokens.ts","../node_modules/@aws-amplify/core/src/utils/deDupeAsyncFunction.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/oAuthStore.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/oauth/inflightPromise.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/TokenOrchestrator.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/tokenProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/tokenProvider/CognitoUserPoolsTokenProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/apiHelpers.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/base.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/index.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/clients/CognitoIdentityProvider/utils.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signInWithRedirectStore.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/signUpHelpers.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/types.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/utils/userContextData.ts","../node_modules/@aws-amplify/auth/src/utils/getAuthUserAgentValue.ts","../node_modules/@aws-amplify/core/src/Hub/index.ts","../node_modules/@aws-amplify/core/src/Logger/types.ts","../node_modules/@aws-amplify/core/src/Logger/ConsoleLogger.ts","../node_modules/@aws-amplify/core/src/Platform/detection/helpers.ts","../node_modules/@aws-amplify/core/src/Platform/detection/index.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Expo.ts","../node_modules/@aws-amplify/core/src/Platform/detection/ReactNative.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Next.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Nuxt.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Angular.ts","../node_modules/@aws-amplify/core/src/Platform/detection/React.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Vue.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Svelte.ts","../node_modules/@aws-amplify/core/src/Platform/detection/Web.ts","../node_modules/@aws-amplify/core/src/Platform/detectFramework.ts","../node_modules/@aws-amplify/core/src/Platform/version.ts","../node_modules/@aws-amplify/core/src/Platform/customUserAgent.ts","../node_modules/@aws-amplify/core/src/Platform/index.ts","../node_modules/@aws-amplify/core/src/Platform/types.ts","../node_modules/@aws-amplify/core/src/clients/endpoints/partitions.ts","../node_modules/@aws-amplify/core/src/clients/endpoints/getDnsSuffix.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/middleware.ts","../node_modules/@aws-amplify/core/src/clients/utils/memoization.ts","../node_modules/@aws-amplify/core/src/clients/handlers/fetch.ts","../node_modules/@aws-amplify/core/src/clients/handlers/unauthenticated.ts","../node_modules/@aws-amplify/core/src/clients/middleware/userAgent/middleware.ts","../node_modules/@aws-amplify/core/src/clients/internal/composeServiceApi.ts","../node_modules/@aws-amplify/core/src/clients/internal/composeTransferHandler.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/isClockSkewError.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/defaultRetryDecider.ts","../node_modules/@aws-amplify/core/src/clients/middleware/retry/jitteredBackoff.ts","../node_modules/@aws-amplify/core/src/utils/retry/jitteredBackoff.ts","../node_modules/@aws-amplify/core/src/utils/retry/constants.ts","../node_modules/@aws-amplify/core/src/clients/serde/json.ts","../node_modules/@aws-amplify/core/src/clients/serde/responseInfo.ts","../node_modules/@aws-amplify/core/src/constants.ts","../node_modules/@aws-amplify/core/src/errors/AmplifyError.ts","../node_modules/@aws-amplify/core/src/errors/createAssertionFunction.ts","../node_modules/@aws-amplify/core/src/parseAWSExports.ts","../node_modules/@aws-amplify/core/src/utils/deepFreeze.ts","../node_modules/@aws-amplify/core/src/singleton/constants.ts","../node_modules/@aws-amplify/core/src/singleton/Amplify.ts","../node_modules/@aws-amplify/core/src/singleton/Auth/index.ts","../node_modules/@aws-amplify/core/src/singleton/Auth/utils/errorHelpers.ts","../node_modules/@aws-amplify/core/src/singleton/Auth/utils/index.ts","../node_modules/@aws-amplify/core/src/singleton/apis/fetchAuthSession.ts","../node_modules/@aws-amplify/core/src/singleton/apis/internal/fetchAuthSession.ts","../node_modules/@aws-amplify/core/src/errors/PlatformNotSupportedError.ts","../node_modules/@aws-amplify/core/src/storage/KeyValueStorage.ts","../node_modules/@aws-amplify/core/src/storage/InMemoryStorage.ts","../node_modules/@aws-amplify/core/src/storage/index.ts","../node_modules/@aws-amplify/core/src/storage/DefaultStorage.ts","../node_modules/@aws-amplify/core/src/storage/utils.ts","../node_modules/@aws-amplify/core/src/storage/SessionStorage.ts","../node_modules/@aws-amplify/core/src/types/errors.ts","../node_modules/@aws-amplify/core/src/utils/amplifyUrl/index.ts","../node_modules/@aws-amplify/core/src/utils/convert/base64/base64Decoder.ts","../node_modules/@aws-amplify/core/src/utils/globalHelpers/index.ts","../node_modules/js-cookie/dist/js.cookie.mjs","../node_modules/@aws-amplify/core/src/storage/CookieStorage.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/types.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/IdentityIdStore.ts","../node_modules/@aws-amplify/core/node_modules/@smithy/util-hex-encoding/dist-es/index.js","../node_modules/@aws-amplify/core/src/awsClients/cognitoIdentity/base.ts","../node_modules/@aws-amplify/core/src/awsClients/cognitoIdentity/getCredentialsForIdentity.ts","../node_modules/@aws-amplify/core/src/awsClients/cognitoIdentity/getId.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/utils.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/IdentityIdProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/credentialsProvider.ts","../node_modules/@aws-amplify/auth/src/providers/cognito/credentialsProvider/index.ts","../node_modules/aws-amplify/src/initSingleton.ts","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/AxiosURLSearchParams.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/platform/browser/index.js","../node_modules/axios/lib/platform/browser/classes/URLSearchParams.js","../node_modules/axios/lib/platform/browser/classes/FormData.js","../node_modules/axios/lib/platform/browser/classes/Blob.js","../node_modules/axios/lib/platform/common/utils.js","../node_modules/axios/lib/platform/index.js","../node_modules/axios/lib/helpers/formDataToJSON.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/helpers/toURLEncodedForm.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/core/AxiosHeaders.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/speedometer.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/adapters/adapters.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/HttpStatusCode.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/tiny-invariant/dist/esm/tiny-invariant.js","../node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@smithy/util-utf8\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private hash: RawSha256;\n private outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.hash = new RawSha256();\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise {\n return this.digestSync();\n }\n\n reset(): void {\n this.hash = new RawSha256();\n if (this.secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(this.secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentity'] = {};\nAWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-identity-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentity;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['s3'] = {};\nAWS.S3 = Service.defineService('s3', ['2006-03-01']);\nrequire('../lib/services/s3');\nObject.defineProperty(apiLoader.services['s3'], '2006-03-01', {\n get: function get() {\n var model = require('../apis/s3-2006-03-01.min.json');\n model.paginators = require('../apis/s3-2006-03-01.paginators.json').pagination;\n model.waiters = require('../apis/s3-2006-03-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.S3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\nrequire('../lib/services/sts');\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.STS;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","var Hmac = require('./browserHmac');\nvar Md5 = require('./browserMd5');\nvar Sha1 = require('./browserSha1');\nvar Sha256 = require('./browserSha256');\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createHmac: function createHmac(alg, key) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Hmac(Md5, key);\n } else if (alg === 'sha256') {\n return new Hmac(Sha256, key);\n } else if (alg === 'sha1') {\n return new Hmac(Sha1, key);\n }\n\n throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createSign: function() {\n throw new Error('createSign is not implemented in the browser');\n }\n };\n","var Buffer = require('buffer/').Buffer;\n\n/**\n * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is\n * e.g. missing in IE 10.\n *\n * @api private\n */\nif (\n typeof ArrayBuffer !== 'undefined' &&\n typeof ArrayBuffer.isView === 'undefined'\n) {\n ArrayBuffer.isView = function(arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n\n/**\n * @api private\n */\nvar viewStrings = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]',\n '[object DataView]',\n];\n\n/**\n * @api private\n */\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nfunction convertToBuffer(data) {\n if (typeof data === 'string') {\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer,\n};\n","var hashUtils = require('./browserHashUtils');\n\n/**\n * @api private\n */\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\n\n var inner = bufferFromSecret(hashCtor, secret);\n var outer = new Uint8Array(hashCtor.BLOCK_SIZE);\n outer.set(inner);\n\n for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // Zero out the copied key buffer.\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Hmac;\n\nHmac.prototype.update = function (toHash) {\n if (hashUtils.isEmptyData(toHash) || this.error) {\n return this;\n }\n\n try {\n this.hash.update(hashUtils.convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n\n return this;\n};\n\nHmac.prototype.digest = function (encoding) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest(encoding);\n};\n\nfunction bufferFromSecret(hashCtor, secret) {\n var input = hashUtils.convertToBuffer(secret);\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor;\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","var hashUtils = require('./browserHashUtils');\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 16;\n\nvar INIT = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n];\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function (sourceData) {\n if (hashUtils.isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n var data = hashUtils.convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function (encoding) {\n if (!this.finished) {\n var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n var bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 20;\n\nvar KEY = new Uint32Array([\n 0x5a827999,\n 0x6ed9eba1,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var length = data.length;\n this.totalLength += length * 8;\n for (var i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xff) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) this.processBlock();\n};\n\nSha1.prototype.digest = function (encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n var outView = new DataView(out.buffer);\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (var i = 16; i < 80; i++) {\n var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n var a = this.h0;\n var b = this.h1;\n var c = this.h2;\n var d = this.h3;\n var e = this.h4;\n var f, k;\n\n // Main loop:\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n }\n else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0);\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 32;\n\nvar KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function (encoding) {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n var state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xff) << 24) |\n ((buffer[(i * 4) + 1] & 0xff) << 16) |\n ((buffer[(i * 4) + 2] & 0xff) << 8) |\n (buffer[(i * 4) + 3] & 0xff));\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n var t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7))\n + ((state4 & state5) ^ (~state4 & state6))) | 0)\n + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n var t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","var util = require('./util');\n\n// browser specific modules\nutil.crypto.lib = require('./browserCryptoLib');\nutil.Buffer = require('buffer/').Buffer;\nutil.url = require('url/');\nutil.querystring = require('querystring/');\nutil.realClock = require('./realclock/browserClock');\nutil.environment = 'js';\nutil.createEventStream = require('./event-stream/buffered-create-event-stream').createEventStream;\nutil.isBrowser = function() { return true; };\nutil.isNode = function() { return false; };\n\nvar AWS = require('./core');\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nrequire('./credentials/temporary_credentials');\nrequire('./credentials/chainable_temporary_credentials');\nrequire('./credentials/web_identity_credentials');\nrequire('./credentials/cognito_identity_credentials');\nrequire('./credentials/saml_credentials');\n\n// Load the DOMParser XML parser\nAWS.XML.Parser = require('./xml/browser_parser');\n\n// Load the XHR HttpClient\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * Loads token from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Token} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your token is loaded prior to a request, you can use this method\n * directly to provide accurate token data stored in the object.\n *\n * @note If you configure the SDK with static token, the token data should\n * already be present in {token} attribute. This method is primarily necessary\n * to load token from asynchronous sources, or sources that can refresh\n * token periodically.\n * @example Getting your access token\n * AWS.config.getToken(function(err) {\n * if (err) console.log(err.stack); // token not loaded\n * else console.log(\"Token:\", AWS.config.token.token);\n * })\n * @callback callback function(err)\n * Called when the {token} have been properly set on the configuration object.\n *\n * @param err [Error] if this is set, token was not successfully loaded and\n * this error provides information why.\n * @see token\n */\n getToken: function getToken(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.token);\n }\n\n function tokenError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'TokenError',\n message: msg,\n name: 'TokenError'\n });\n }\n\n function getAsyncToken() {\n self.token.get(function(err) {\n if (err) {\n var msg = 'Could not load token from ' +\n self.token.constructor.name;\n err = tokenError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticToken() {\n var err = null;\n if (!self.token.token) {\n err = tokenError('Missing token');\n }\n finish(err);\n }\n\n if (self.token) {\n if (typeof self.token.get === 'function') {\n getAsyncToken();\n } else { // static token\n getStaticToken();\n }\n } else if (self.tokenProvider) {\n self.tokenProvider.resolve(function(err, token) {\n if (err) {\n err = tokenError('Could not load token from any providers', err);\n }\n self.token = token;\n finish(err);\n });\n } else {\n finish(tokenError('No token to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false,\n token: null\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1638.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\nrequire('./maintenance_mode_message');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","var AWS = require('./core');\n\n/**\n * Represents your AWS security credentials, specifically the\n * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}.\n * Creating a `Credentials` object allows you to pass around your\n * security information to configuration and service objects.\n *\n * Note that this class typically does not need to be constructed manually,\n * as the {AWS.Config} and {AWS.Service} classes both accept simple\n * options hashes with the three keys. These structures will be converted\n * into Credentials objects automatically.\n *\n * ## Expiring and Refreshing Credentials\n *\n * Occasionally credentials can expire in the middle of a long-running\n * application. In this case, the SDK will automatically attempt to\n * refresh the credentials from the storage location if the Credentials\n * class implements the {refresh} method.\n *\n * If you are implementing a credential storage location, you\n * will want to create a subclass of the `Credentials` class and\n * override the {refresh} method. This method allows credentials to be\n * retrieved from the backing store, be it a file system, database, or\n * some network storage. The method should reset the credential attributes\n * on the object.\n *\n * @!attribute expired\n * @return [Boolean] whether the credentials have been expired and\n * require a refresh. Used in conjunction with {expireTime}.\n * @!attribute expireTime\n * @return [Date] a time when credentials should be considered expired. Used\n * in conjunction with {expired}.\n * @!attribute accessKeyId\n * @return [String] the AWS access key ID\n * @!attribute secretAccessKey\n * @return [String] the AWS secret access key\n * @!attribute sessionToken\n * @return [String] an optional AWS session token\n */\nAWS.Credentials = AWS.util.inherit({\n /**\n * A credentials object can be created using positional arguments or an options\n * hash.\n *\n * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null)\n * Creates a Credentials object with a given set of credential information\n * as positional arguments.\n * @param accessKeyId [String] the AWS access key ID\n * @param secretAccessKey [String] the AWS secret access key\n * @param sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials('akid', 'secret', 'session');\n * @overload AWS.Credentials(options)\n * Creates a Credentials object with a given set of credential information\n * as an options hash.\n * @option options accessKeyId [String] the AWS access key ID\n * @option options secretAccessKey [String] the AWS secret access key\n * @option options sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials({\n * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session'\n * });\n */\n constructor: function Credentials() {\n // hide secretAccessKey from being displayed with util.inspect\n AWS.util.hideProperties(this, ['secretAccessKey']);\n\n this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n if (arguments.length === 1 && typeof arguments[0] === 'object') {\n var creds = arguments[0].credentials || arguments[0];\n this.accessKeyId = creds.accessKeyId;\n this.secretAccessKey = creds.secretAccessKey;\n this.sessionToken = creds.sessionToken;\n } else {\n this.accessKeyId = arguments[0];\n this.secretAccessKey = arguments[1];\n this.sessionToken = arguments[2];\n }\n },\n\n /**\n * @return [Integer] the number of seconds before {expireTime} during which\n * the credentials will be considered expired.\n */\n expiryWindow: 15,\n\n /**\n * @return [Boolean] whether the credentials object should call {refresh}\n * @note Subclasses should override this method to provide custom refresh\n * logic.\n */\n needsRefresh: function needsRefresh() {\n var currentTime = AWS.util.date.getDate().getTime();\n var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);\n\n if (this.expireTime && adjustedTime > this.expireTime) {\n return true;\n } else {\n return this.expired || !this.accessKeyId || !this.secretAccessKey;\n }\n },\n\n /**\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means either credentials\n * do not need to be refreshed or refreshed credentials information has\n * been loaded into the object (as the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n */\n get: function get(callback) {\n var self = this;\n if (this.needsRefresh()) {\n this.refresh(function(err) {\n if (!err) self.expired = false; // reset expired flag\n if (callback) callback(err);\n });\n } else if (callback) {\n callback();\n }\n },\n\n /**\n * @!method getPromise()\n * Returns a 'thenable' promise.\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means either credentials do not need to be refreshed or refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `get` call.\n * @example Calling the `getPromise` method.\n * var promise = credProvider.getPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * @!method refreshPromise()\n * Returns a 'thenable' promise.\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means refreshed credentials information has been loaded into the object\n * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Calling the `refreshPromise` method.\n * var promise = credProvider.refreshPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @note Subclasses should override this class to reset the\n * {accessKeyId}, {secretAccessKey} and optional {sessionToken}\n * on the credentials object and then call the callback with\n * any error information.\n * @see get\n */\n refresh: function refresh(callback) {\n this.expired = false;\n callback();\n },\n\n /**\n * @api private\n * @param callback\n */\n coalesceRefresh: function coalesceRefresh(callback, sync) {\n var self = this;\n if (self.refreshCallbacks.push(callback) === 1) {\n self.load(function onLoad(err) {\n AWS.util.arrayEach(self.refreshCallbacks, function(callback) {\n if (sync) {\n callback(err);\n } else {\n // callback could throw, so defer to ensure all callbacks are notified\n AWS.util.defer(function () {\n callback(err);\n });\n }\n });\n self.refreshCallbacks.length = 0;\n });\n }\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n callback();\n }\n});\n\n/**\n * @api private\n */\nAWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency);\n this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in\n * the way masterCredentials and refreshes are handled.\n * AWS.ChainableTemporaryCredentials refreshes expired credentials using the\n * masterCredentials passed by the user to support chaining of STS credentials.\n * However, AWS.TemporaryCredentials recursively collapses the masterCredentials\n * during instantiation, precluding the ability to refresh credentials which\n * require intermediate, temporary credentials.\n *\n * For example, if the application should use RoleA, which must be assumed from\n * RoleB, and the environment provides credentials which can assume RoleB, then\n * AWS.ChainableTemporaryCredentials must be used to support refreshing the\n * temporary credentials for RoleA:\n *\n * ```javascript\n * var roleACreds = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleA'},\n * masterCredentials: new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleB'},\n * masterCredentials: new AWS.EnvironmentCredentials('AWS')\n * })\n * });\n * ```\n *\n * If AWS.TemporaryCredentials had been used in the previous example,\n * `roleACreds` would fail to refresh because `roleACreds` would\n * use the environment credentials for the AssumeRole request.\n *\n * Another difference is that AWS.ChainableTemporaryCredentials creates the STS\n * service instance during instantiation while AWS.TemporaryCredentials creates\n * the STS service instance during the first refresh. Creating the service\n * instance during instantiation effectively captures the master credentials\n * from the global config, so that subsequent changes to the global config do\n * not affect the master credentials used to refresh the temporary credentials.\n *\n * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned\n * to AWS.config.credentials:\n *\n * ```javascript\n * var envCreds = new AWS.EnvironmentCredentials('AWS');\n * AWS.config.credentials = envCreds;\n * // masterCredentials will be envCreds\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * Similarly, to use the CredentialProviderChain's default providers as the\n * master credentials, simply create a new instance of\n * AWS.ChainableTemporaryCredentials:\n *\n * ```javascript\n * AWS.config.credentials = new ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * @!attribute service\n * @return [AWS.STS] the STS service instance used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @param options [map] a set of options\n * @option options params [map] ({}) a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must\n * also be passed in or an error will be thrown.\n * @option options masterCredentials [AWS.Credentials] the master credentials\n * used to get and refresh temporary credentials from AWS STS. By default,\n * AWS.config.credentials or AWS.config.credentialProvider will be used.\n * @option options tokenCodeFn [Function] (null) Function to provide\n * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function\n * is called with value of `SerialNumber` and `callback`, and should provide\n * the `TokenCode` or an error to the callback in the format\n * `callback(err, token)`.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials'\n * }\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function ChainableTemporaryCredentials(options) {\n AWS.Credentials.call(this);\n options = options || {};\n this.errorCode = 'ChainableTemporaryCredentialsProviderFailure';\n this.expired = true;\n this.tokenCodeFn = null;\n\n var params = AWS.util.copy(options.params) || {};\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) {\n throw new AWS.util.error(\n new Error('tokenCodeFn must be a function when params.SerialNumber is given'),\n {code: this.errorCode}\n );\n } else {\n this.tokenCodeFn = options.tokenCodeFn;\n }\n }\n var config = AWS.util.merge(\n {\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n },\n options.stsConfig || {}\n );\n this.service = new STS(config);\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken';\n this.getTokenCode(function (err, tokenCode) {\n var params = {};\n if (err) {\n callback(err);\n return;\n }\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n if (err instanceof Error) {\n message = err.message;\n }\n callback(\n AWS.util.error(\n new Error('Error fetching MFA token: ' + message),\n { code: self.errorCode}\n )\n );\n return;\n }\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});\n","var AWS = require('../core');\nvar CognitoIdentity = require('../../clients/cognitoidentity');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation using\n * the Amazon Cognito Identity service.\n *\n * By default this provider gets credentials using the\n * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which\n * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito\n * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to\n * obtain an `IdentityId`. If the identity or identity pool is not configured in\n * the Amazon Cognito Console to use IAM roles with the appropriate permissions,\n * then additionally a `RoleArn` is required containing the ARN of the IAM trust\n * policy for the Amazon Cognito role that the user will log into. If a `RoleArn`\n * is provided, then this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an\n * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}.\n *\n * In addition, if this credential provider is used to provide authenticated\n * login, the `Logins` map may be set to the tokens provided by the respective\n * identity providers. See {constructor} for an example on creating a credentials\n * object with proper property values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.CognitoIdentity.getId},\n * {AWS.CognitoIdentity.getOpenIdToken}, and\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.CognitoIdentity.getCredentialsForIdentity}, or\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n * @!attribute identityId\n * @return [String] the Cognito ID returned by the last call to\n * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual\n * final resolved identity ID from Amazon Cognito.\n */\nAWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * @api private\n */\n localStorageKey: {\n id: 'aws.cognito.identity-id.',\n providers: 'aws.cognito.identity-providers.'\n },\n\n /**\n * Creates a new credentials object.\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n *\n * // either IdentityPoolId or IdentityId is required\n * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below)\n * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity\n * // or AWS.CognitoIdentity.getOpenIdToken (linked below)\n * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',\n * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f'\n *\n * // optional, only necessary when the identity pool is not configured\n * // to use IAM roles in the Amazon Cognito Console\n * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity',\n *\n * // optional tokens, used for authenticated login\n * // See the Logins param for AWS.CognitoIdentity.getID (linked below)\n * Logins: {\n * 'graph.facebook.com': 'FBTOKEN',\n * 'www.amazon.com': 'AMAZONTOKEN',\n * 'accounts.google.com': 'GOOGLETOKEN',\n * 'api.twitter.com': 'TWITTERTOKEN',\n * 'www.digits.com': 'DIGITSTOKEN'\n * },\n *\n * // optional name, defaults to web-identity\n * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleSessionName: 'web',\n *\n * // optional, only necessary when application runs in a browser\n * // and multiple users are signed in at once, used for caching\n * LoginId: 'example@gmail.com'\n *\n * }, {\n * // optionally provide configuration to apply to the underlying service clients\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // region should match the region your identity pool is located in\n * region: 'us-east-1',\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.CognitoIdentity.getId\n * @see AWS.CognitoIdentity.getCredentialsForIdentity\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.CognitoIdentity.getOpenIdToken\n * @see AWS.Config\n * @note If a region is not provided in the global AWS.config, or\n * specified in the `clientConfig` to the CognitoIdentityCredentials\n * constructor, you may encounter a 'Missing credentials in config' error\n * when calling making a service call.\n */\n constructor: function CognitoIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.data = null;\n this._identityId = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n this.loadCachedId();\n var self = this;\n Object.defineProperty(this, 'identityId', {\n get: function() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function(identityId) {\n self._identityId = identityId;\n }\n });\n },\n\n /**\n * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity},\n * or {AWS.STS.assumeRoleWithWebIdentity}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.data = null;\n self._identityId = null;\n self.getId(function(err) {\n if (!err) {\n if (!self.params.RoleArn) {\n self.getCredentialsForIdentity(callback);\n } else {\n self.getCredentialsFromSTS(callback);\n }\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * Clears the cached Cognito ID associated with the currently configured\n * identity pool ID. Use this to manually invalidate your cache if\n * the identity pool ID was deleted.\n */\n clearCachedId: function clearCache() {\n this._identityId = null;\n delete this.params.IdentityId;\n\n var poolId = this.params.IdentityPoolId;\n var loginId = this.params.LoginId || '';\n delete this.storage[this.localStorageKey.id + poolId + loginId];\n delete this.storage[this.localStorageKey.providers + poolId + loginId];\n },\n\n /**\n * @api private\n */\n clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) {\n var self = this;\n if (err.code == 'NotAuthorizedException') {\n self.clearCachedId();\n }\n },\n\n /**\n * Retrieves a Cognito ID, loading from cache if it was already retrieved\n * on this device.\n *\n * @callback callback function(err, identityId)\n * @param err [Error, null] an error object if the call failed or null if\n * it succeeded.\n * @param identityId [String, null] if successful, the callback will return\n * the Cognito ID.\n * @note If not loaded explicitly, the Cognito ID is loaded and stored in\n * localStorage in the browser environment of a device.\n * @api private\n */\n getId: function getId(callback) {\n var self = this;\n if (typeof self.params.IdentityId === 'string') {\n return callback(null, self.params.IdentityId);\n }\n\n self.cognito.getId(function(err, data) {\n if (!err && data.IdentityId) {\n self.params.IdentityId = data.IdentityId;\n callback(null, data.IdentityId);\n } else {\n callback(err);\n }\n });\n },\n\n\n /**\n * @api private\n */\n loadCredentials: function loadCredentials(data, credentials) {\n if (!data || !credentials) return;\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n },\n\n /**\n * @api private\n */\n getCredentialsForIdentity: function getCredentialsForIdentity(callback) {\n var self = this;\n self.cognito.getCredentialsForIdentity(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.data = data;\n self.loadCredentials(self.data, self);\n } else {\n self.clearIdOnNotAuthorized(err);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n getCredentialsFromSTS: function getCredentialsFromSTS(callback) {\n var self = this;\n self.cognito.getOpenIdToken(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.params.WebIdentityToken = data.Token;\n self.webIdentityCredentials.refresh(function(webErr) {\n if (!webErr) {\n self.data = self.webIdentityCredentials.data;\n self.sts.credentialsFrom(self.data, self);\n }\n callback(webErr);\n });\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * @api private\n */\n loadCachedId: function loadCachedId() {\n var self = this;\n\n // in the browser we source default IdentityId from localStorage\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders =\n (self.getStorage('providers') || '').split(',');\n\n // only load ID if at least one provider used this ID before\n var intersect = cachedProviders.filter(function(n) {\n return actualProviders.indexOf(n) !== -1;\n });\n if (intersect.length !== 0) {\n self.params.IdentityId = id;\n }\n } else if (id) {\n self.params.IdentityId = id;\n }\n }\n },\n\n /**\n * @api private\n */\n createClients: function() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials ||\n new AWS.WebIdentityCredentials(this.params, clientConfig);\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\n this.sts = this.sts || new STS(clientConfig);\n },\n\n /**\n * @api private\n */\n cacheId: function cacheId(data) {\n this._identityId = data.IdentityId;\n this.params.IdentityId = this._identityId;\n\n // cache this IdentityId in browser localStorage if possible\n if (AWS.util.isBrowser()) {\n this.setStorage('id', data.IdentityId);\n\n if (this.params.Logins) {\n this.setStorage('providers', Object.keys(this.params.Logins).join(','));\n }\n }\n },\n\n /**\n * @api private\n */\n getStorage: function getStorage(key) {\n return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];\n },\n\n /**\n * @api private\n */\n setStorage: function setStorage(key, val) {\n try {\n this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;\n } catch (_) {}\n },\n\n /**\n * @api private\n */\n storage: (function() {\n try {\n var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?\n window.localStorage : {};\n\n // Test set/remove which would throw an error in Safari's private browsing\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n\n return storage;\n } catch (_) {\n return {};\n }\n })()\n});\n","var AWS = require('../core');\n\n/**\n * Creates a credential provider chain that searches for AWS credentials\n * in a list of credential providers specified by the {providers} property.\n *\n * By default, the chain will use the {defaultProviders} to resolve credentials.\n * These providers will look in the environment using the\n * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes.\n *\n * ## Setting Providers\n *\n * Each provider in the {providers} list should be a function that returns\n * a {AWS.Credentials} object, or a hardcoded credentials object. The function\n * form allows for delayed execution of the credential construction.\n *\n * ## Resolving Credentials from a Chain\n *\n * Call {resolve} to return the first valid credential object that can be\n * loaded by the provider chain.\n *\n * For example, to resolve a chain with a custom provider that checks a file\n * on disk after the set of {defaultProviders}:\n *\n * ```javascript\n * var diskProvider = new AWS.FileSystemCredentials('./creds.json');\n * var chain = new AWS.CredentialProviderChain();\n * chain.providers.push(diskProvider);\n * chain.resolve();\n * ```\n *\n * The above code will return the `diskProvider` object if the\n * file contains credentials and the `defaultProviders` do not contain\n * any credential settings.\n *\n * @!attribute providers\n * @return [Array]\n * a list of credentials objects or functions that return credentials\n * objects. If the provider is a function, the function will be\n * executed lazily when the provider needs to be checked for valid\n * credentials. By default, this object will be set to the\n * {defaultProviders}.\n * @see defaultProviders\n */\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\n\n /**\n * Creates a new CredentialProviderChain with a default set of providers\n * specified by {defaultProviders}.\n */\n constructor: function CredentialProviderChain(providers) {\n if (providers) {\n this.providers = providers;\n } else {\n this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);\n }\n this.resolveCallbacks = [];\n },\n\n /**\n * @!method resolvePromise()\n * Returns a 'thenable' promise.\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(credentials)\n * Called if the promise is fulfilled and the provider resolves the chain\n * to a credentials object\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param err [Error] the error object returned if no credentials are found.\n * @return [Promise] A promise that represents the state of the `resolve` method call.\n * @example Calling the `resolvePromise` method.\n * var promise = chain.resolvePromise();\n * promise.then(function(credentials) { ... }, function(err) { ... });\n */\n\n /**\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * @callback callback function(err, credentials)\n * Called when the provider resolves the chain to a credentials object\n * or null if no credentials can be found.\n *\n * @param err [Error] the error object returned if no credentials are\n * found.\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @return [AWS.CredentialProviderChain] the provider, for chaining.\n */\n resolve: function resolve(callback) {\n var self = this;\n if (self.providers.length === 0) {\n callback(new Error('No providers'));\n return self;\n }\n\n if (self.resolveCallbacks.push(callback) === 1) {\n var index = 0;\n var providers = self.providers.slice(0);\n\n function resolveNext(err, creds) {\n if ((!err && creds) || index === providers.length) {\n AWS.util.arrayEach(self.resolveCallbacks, function (callback) {\n callback(err, creds);\n });\n self.resolveCallbacks.length = 0;\n return;\n }\n\n var provider = providers[index++];\n if (typeof provider === 'function') {\n creds = provider.call();\n } else {\n creds = provider;\n }\n\n if (creds.get) {\n creds.get(function (getErr) {\n resolveNext(getErr, getErr ? null : creds);\n });\n } else {\n resolveNext(null, creds);\n }\n }\n\n resolveNext();\n }\n\n return self;\n }\n});\n\n/**\n * The default set of providers used by a vanilla CredentialProviderChain.\n *\n * In the browser:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = []\n * ```\n *\n * In Node.js:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = [\n * function () { return new AWS.EnvironmentCredentials('AWS'); },\n * function () { return new AWS.EnvironmentCredentials('AMAZON'); },\n * function () { return new AWS.SsoCredentials(); },\n * function () { return new AWS.SharedIniFileCredentials(); },\n * function () { return new AWS.ECSCredentials(); },\n * function () { return new AWS.ProcessCredentials(); },\n * function () { return new AWS.TokenFileWebIdentityCredentials(); },\n * function () { return new AWS.EC2MetadataCredentials() }\n * ]\n * ```\n */\nAWS.CredentialProviderChain.defaultProviders = [];\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS SAML support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithSAML} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given, as well as a `PrincipalArn`\n * representing the ARN for the SAML identity provider. In addition, the\n * `SAMLAssertion` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the SAMLAssertion, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.SAMLAssertion = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithSAML}. To update the token, set the\n * `params.SAMLAssertion` property.\n */\nAWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithSAML)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.SAMLCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole',\n * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal',\n * SAMLAssertion: 'base64-token', // base64-encoded token from IdP\n * });\n * @see AWS.STS.assumeRoleWithSAML\n */\n constructor: function SAMLCredentials(params) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithSAML}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithSAML(function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","/**\n * Takes in a buffer of event messages and splits them into individual messages.\n * @param {Buffer} buffer\n * @api private\n */\nfunction eventMessageChunker(buffer) {\n /** @type Buffer[] */\n var messages = [];\n var offset = 0;\n\n while (offset < buffer.length) {\n var totalLength = buffer.readInt32BE(offset);\n\n // create new buffer for individual message (shares memory with original)\n var message = buffer.slice(offset, totalLength + offset);\n // increment offset to it starts at the next message\n offset += totalLength;\n\n messages.push(message);\n }\n\n return messages;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n\n this.bytes = bytes;\n}\n\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\nInt64.fromNumber = function(number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(\n number + ' is too large (or, if negative, too small) to represent as an Int64'\n );\n }\n\n var bytes = new Uint8Array(8);\n for (\n var i = 7, remaining = Math.abs(Math.round(number));\n i > -1 && remaining > 0;\n i--, remaining /= 256\n ) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n\n/**\n * @returns {number}\n *\n * @api private\n */\nInt64.prototype.valueOf = function() {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1);\n};\n\nInt64.prototype.toString = function() {\n return String(this.valueOf());\n};\n\n/**\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xFF;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0) {\n break;\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n Int64: Int64\n};\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","var Int64 = require('./int64').Int64;\n\nvar splitMessage = require('./split-message').splitMessage;\n\nvar BOOLEAN_TAG = 'boolean';\nvar BYTE_TAG = 'byte';\nvar SHORT_TAG = 'short';\nvar INT_TAG = 'integer';\nvar LONG_TAG = 'long';\nvar BINARY_TAG = 'binary';\nvar STRING_TAG = 'string';\nvar TIMESTAMP_TAG = 'timestamp';\nvar UUID_TAG = 'uuid';\n\n/**\n * @api private\n *\n * @param {Buffer} headers\n */\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n switch (headers.readUInt8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.readInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: headers.slice(position, position + binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(\n position,\n position + stringLength\n ).toString()\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(\n new Int64(headers.slice(position, position + 8))\n .valueOf()\n )\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidChars = headers.slice(position, position + 16)\n .toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' +\n uuidChars.substr(8, 4) + '-' +\n uuidChars.substr(12, 4) + '-' +\n uuidChars.substr(16, 4) + '-' +\n uuidChars.substr(20)\n };\n break;\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return { headers: parseHeaders(parsed.headers), body: parsed.body };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseMessage: parseMessage\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n\n/**\n * @api private\n *\n * @param {Buffer} message\n */\nfunction splitMessage(message) {\n if (!util.Buffer.isBuffer(message)) message = toBuffer(message);\n\n if (message.length < MINIMUM_MESSAGE_LENGTH) {\n throw new Error('Provided message too short to accommodate event stream message overhead');\n }\n\n if (message.length !== message.readUInt32BE(0)) {\n throw new Error('Reported message length does not match received message length');\n }\n\n var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH);\n\n if (\n expectedPreludeChecksum !== util.crypto.crc32(\n message.slice(0, PRELUDE_LENGTH)\n )\n ) {\n throw new Error(\n 'The prelude checksum specified in the message (' +\n expectedPreludeChecksum +\n ') does not match the calculated CRC32 checksum.'\n );\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (\n expectedMessageChecksum !== util.crypto.crc32(\n message.slice(0, message.length - CHECKSUM_LENGTH)\n )\n ) {\n throw new Error(\n 'The message checksum did not match the expected value of ' +\n expectedMessageChecksum\n );\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH),\n };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n splitMessage: splitMessage\n};\n","var AWS = require('./core');\nvar SequentialExecutor = require('./sequential_executor');\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\nAWS.EventListeners = {\n /**\n * @!attribute VALIDATE_CREDENTIALS\n * A request listener that validates whether the request is being\n * sent with credentials.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating credentials\n * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_REGION\n * A request listener that validates whether the region is set\n * for a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating region configuration\n * var listener = AWS.EventListeners.Core.VALIDATE_REGION;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_PARAMETERS\n * A request listener that validates input parameters in a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating parameters\n * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS;\n * request.removeListener('validate', listener);\n * @example Disable parameter validation globally\n * AWS.EventListeners.Core.removeListener('validate',\n * AWS.EventListeners.Core.VALIDATE_REGION);\n * @readonly\n * @return [Function]\n * @!attribute SEND\n * A request listener that initiates the HTTP connection for a\n * request being sent. Handles the {AWS.Request~send 'send' Request event}\n * @example Replacing the HTTP handler\n * var listener = AWS.EventListeners.Core.SEND;\n * request.removeListener('send', listener);\n * request.on('send', function(response) {\n * customHandler.send(response);\n * });\n * @return [Function]\n * @readonly\n * @!attribute HTTP_DATA\n * A request listener that reads data from the HTTP connection in order\n * to build the response data.\n * Handles the {AWS.Request~httpData 'httpData' Request event}.\n * Remove this handler if you are overriding the 'httpData' event and\n * do not want extra data processing and buffering overhead.\n * @example Disabling default data processing\n * var listener = AWS.EventListeners.Core.HTTP_DATA;\n * request.removeListener('httpData', listener);\n * @return [Function]\n * @readonly\n */\n Core: {} /* doc hack */\n};\n\n/**\n * @api private\n */\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\n/**\n * @api private\n */\nfunction getIdentityType(req) {\n var service = req.service;\n\n if (service.config.signatureVersion) {\n return service.config.signatureVersion;\n }\n\n if (service.api.signatureVersion) {\n return service.api.signatureVersion;\n }\n\n return getOperationAuthtype(req);\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {\n addAsync(\n 'VALIDATE_CREDENTIALS', 'validate',\n function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n var identityType = getIdentityType(req);\n if (identityType === 'bearer') {\n req.service.config.getToken(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err, {code: 'TokenError'});\n }\n done();\n });\n return;\n }\n\n req.service.config.getCredentials(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err,\n {\n code: 'CredentialsError',\n message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1'\n }\n );\n }\n done();\n });\n });\n\n add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {\n if (!req.service.isGlobalEndpoint) {\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Invalid region in config'});\n }\n }\n });\n\n add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var idempotentMembers = operation.idempotentMembers;\n if (!idempotentMembers.length) {\n return;\n }\n // creates a copy of params so user's param object isn't mutated\n var params = AWS.util.copy(req.params);\n for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) {\n if (!params[idempotentMembers[i]]) {\n // add the member\n params[idempotentMembers[i]] = AWS.util.uuid.v4();\n }\n }\n req.params = params;\n });\n\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var rules = req.service.api.operations[req.operation].input;\n var validation = req.service.config.paramValidation;\n new AWS.ParamValidator(validation).validate(rules, req.params);\n });\n\n add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var body = req.httpRequest.body;\n var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string');\n var headers = req.httpRequest.headers;\n if (\n operation.httpChecksumRequired &&\n req.service.config.computeChecksums &&\n isNonStreamingPayload &&\n !headers['Content-MD5']\n ) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!req.service.api.signatureVersion && !authtype && !req.service.config.signatureVersion) return done(); // none\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n AWS.util.computeSha256(body, function(err, sha) {\n if (err) {\n done(err);\n }\n else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\n }\n });\n\n add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {\n var authtype = getOperationAuthtype(req);\n var payloadMember = AWS.util.getRequestPayloadShape(req);\n if (req.httpRequest.headers['Content-Length'] === undefined) {\n try {\n var length = AWS.util.string.byteLength(req.httpRequest.body);\n req.httpRequest.headers['Content-Length'] = length;\n } catch (err) {\n if (payloadMember && payloadMember.isStreaming) {\n if (payloadMember.requiresLength) {\n //streaming payload requires length(s3, glacier)\n throw err;\n } else if (authtype.indexOf('unsigned-body') >= 0) {\n //unbounded streaming payload(lex, mediastore)\n req.httpRequest.headers['Transfer-Encoding'] = 'chunked';\n return;\n } else {\n throw err;\n }\n }\n throw err;\n }\n }\n });\n\n add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {\n req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;\n });\n\n add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) {\n var traceIdHeaderName = 'X-Amzn-Trace-Id';\n if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) {\n var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME';\n var ENV_TRACE_ID = '_X_AMZN_TRACE_ID';\n var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n var traceId = process.env[ENV_TRACE_ID];\n if (\n typeof functionName === 'string' &&\n functionName.length > 0 &&\n typeof traceId === 'string' &&\n traceId.length > 0\n ) {\n req.httpRequest.headers[traceIdHeaderName] = traceId;\n }\n }\n });\n\n add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n\n this.httpRequest = new AWS.HttpRequest(\n this.service.endpoint,\n this.service.region\n );\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var identityType = getIdentityType(req);\n if (!identityType || identityType.length === 0) return done(); // none\n\n if (identityType === 'bearer') {\n service.config.getToken(function (err, token) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var SignerClass = service.getSignerClass(req);\n var signer = new SignerClass(req.httpRequest);\n signer.addAuthorization(token);\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n } else {\n service.config.getCredentials(function (err, credentials) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var date = service.getSkewCorrectedDate();\n var SignerClass = service.getSignerClass(req);\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var signer = new SignerClass(req.httpRequest,\n service.getSigningName(req),\n {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId);\n\n // clear old authorization headers\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date'];\n\n // add new authorization\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n\n }\n });\n\n add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {\n if (this.service.successfulResponse(resp, this)) {\n resp.data = {};\n resp.error = null;\n } else {\n resp.data = null;\n resp.error = AWS.util.error(new Error(),\n {code: 'UnknownError', message: 'An unknown error occurred.'});\n }\n });\n\n add('ERROR', 'error', function ERROR(err, resp) {\n var awsQueryCompatible = resp.request.service.api.awsQueryCompatible;\n if (awsQueryCompatible) {\n var headers = resp.httpResponse.headers;\n var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined;\n if (queryErrorCode && queryErrorCode.includes(';')) {\n resp.error.code = queryErrorCode.split(';')[0];\n }\n }\n }, true);\n\n addAsync('SEND', 'send', function SEND(resp, done) {\n resp.httpResponse._abortCallback = done;\n resp.error = null;\n resp.data = null;\n\n function callback(httpResp) {\n resp.httpResponse.stream = httpResp;\n var stream = resp.request.httpRequest.stream;\n var service = resp.request.service;\n var api = service.api;\n var operationName = resp.request.operation;\n var operation = api.operations[operationName] || {};\n\n httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit(\n 'httpHeaders',\n [statusCode, headers, resp, statusMessage]\n );\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check\n // if we detect event streams, we're going to have to\n // return the stream immediately\n if (operation.hasEventOutput && service.successfulResponse(resp)) {\n // skip reading the IncomingStream\n resp.request.emit('httpDone');\n done();\n return;\n }\n\n httpResp.on('readable', function onReadable() {\n var data = httpResp.read();\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else { // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\n });\n }\n }\n });\n\n httpResp.on('end', function onEnd() {\n if (!stream || !stream.didCallback) {\n if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) {\n // don't concatenate response chunks when streaming event stream data when response is successful\n return;\n }\n resp.request.emit('httpDone');\n done();\n }\n });\n }\n\n function progress(httpResp) {\n httpResp.on('sendProgress', function onSendProgress(value) {\n resp.request.emit('httpUploadProgress', [value, resp]);\n });\n\n httpResp.on('receiveProgress', function onReceiveProgress(value) {\n resp.request.emit('httpDownloadProgress', [value, resp]);\n });\n }\n\n function error(err) {\n if (err.code !== 'RequestAbortedError') {\n var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError';\n err = AWS.util.error(err, {\n code: errCode,\n region: resp.request.httpRequest.region,\n hostname: resp.request.httpRequest.endpoint.hostname,\n retryable: true\n });\n }\n resp.error = err;\n resp.request.emit('httpError', [resp.error, resp], function() {\n done();\n });\n }\n\n function executeSend() {\n var http = AWS.HttpClient.getInstance();\n var httpOptions = resp.request.service.config.httpOptions || {};\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions,\n callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign\n this.emit('sign', [this], function(err) {\n if (err) done(err);\n else executeSend();\n });\n } else {\n executeSend();\n }\n });\n\n add('HTTP_HEADERS', 'httpHeaders',\n function HTTP_HEADERS(statusCode, headers, resp, statusMessage) {\n resp.httpResponse.statusCode = statusCode;\n resp.httpResponse.statusMessage = statusMessage;\n resp.httpResponse.headers = headers;\n resp.httpResponse.body = AWS.util.buffer.toBuffer('');\n resp.httpResponse.buffers = [];\n resp.httpResponse.numBytes = 0;\n var dateHeader = headers.date || headers.Date;\n var service = resp.request.service;\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n if (service.config.correctClockSkew\n && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\n }\n }\n });\n\n add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {\n if (chunk) {\n if (AWS.util.isNode()) {\n resp.httpResponse.numBytes += chunk.length;\n\n var total = resp.httpResponse.headers['content-length'];\n var progress = { loaded: resp.httpResponse.numBytes, total: total };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\n }\n });\n\n add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {\n // convert buffers array into single buffer\n if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {\n var body = AWS.util.buffer.concat(resp.httpResponse.buffers);\n resp.httpResponse.body = body;\n }\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n if (typeof err.code === 'string' && typeof err.message === 'string') {\n if (err.code.match(/Signature/) && err.message.match(/expired/)) {\n resp.error.retryable = true;\n }\n }\n });\n\n add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n if (this.service.clockSkewError(resp.error)\n && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 &&\n resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint =\n new AWS.Endpoint(resp.httpResponse.headers['location']);\n this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;\n this.httpRequest.path = this.httpRequest.endpoint.path;\n resp.error.redirect = true;\n resp.error.retryable = true;\n }\n });\n\n add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {\n if (resp.error) {\n if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.error.retryDelay = 0;\n } else if (resp.retryCount < resp.maxRetries) {\n resp.error.retryDelay = this.service.retryDelays(resp.retryCount, resp.error) || 0;\n }\n }\n });\n\n addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay, willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n if (resp.error.retryable && resp.retryCount < resp.maxRetries) {\n resp.retryCount++;\n willRetry = true;\n } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.redirectCount++;\n willRetry = true;\n }\n }\n\n // delay < 0 is a signal from customBackoff to skip retries\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\n }\n });\n }),\n\n CorePost: new SequentialExecutor().addNamedListeners(function(add) {\n add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);\n add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);\n\n add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' ||\n typeof err.errno === 'number' &&\n typeof AWS.util.getSystemErrorName === 'function' &&\n ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port +\n '\\'. This service may not be available in the `' + err.region +\n '\\' region.';\n this.response.error = AWS.util.error(new Error(message), {\n code: 'UnknownEndpoint',\n region: err.region,\n hostname: err.hostname,\n retryable: true,\n originalError: err\n });\n }\n });\n }),\n\n Logger: new SequentialExecutor().addNamedListeners(function(add) {\n add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {\n var req = resp.request;\n var logger = req.service.config.logger;\n if (!logger) return;\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\n switch (inputShape.type) {\n case 'structure':\n var struct = {};\n AWS.util.each(shape, function(subShapeName, subShape) {\n if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) {\n struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape);\n } else {\n struct[subShapeName] = subShape;\n }\n });\n return struct;\n case 'list':\n var list = [];\n AWS.util.arrayEach(shape, function(subShape, index) {\n list.push(filterSensitiveLog(inputShape.member, subShape));\n });\n return list;\n case 'map':\n var map = {};\n AWS.util.each(shape, function(key, value) {\n map[key] = filterSensitiveLog(inputShape.value, value);\n });\n return map;\n default:\n return shape;\n }\n }\n\n function buildMessage() {\n var time = resp.request.service.getSkewCorrectedDate().getTime();\n var delta = (time - req.startTime.getTime()) / 1000;\n var ansi = logger.isTTY ? true : false;\n var status = resp.httpResponse.statusCode;\n var censoredParams = req.params;\n if (\n req.service.api.operations &&\n req.service.api.operations[req.operation] &&\n req.service.api.operations[req.operation].input\n ) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n var params = require('util').inspect(censoredParams, true, null);\n var message = '';\n if (ansi) message += '\\x1B[33m';\n message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;\n message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';\n if (ansi) message += '\\x1B[0;1m';\n message += ' ' + AWS.util.string.lowerFirst(req.operation);\n message += '(' + params + ')';\n if (ansi) message += '\\x1B[0m';\n return message;\n }\n\n var line = buildMessage();\n if (typeof logger.log === 'function') {\n logger.log(line);\n } else if (typeof logger.write === 'function') {\n logger.write(line + '\\n');\n }\n });\n }),\n\n Json: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Rest: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n RestJson: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength);\n }),\n\n RestXml: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_xml');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Query: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/query');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","var util = require('../util');\n\nfunction JsonParser() { }\n\nJsonParser.prototype.parse = function(value, shape) {\n return translate(JSON.parse(value), shape);\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n\n var struct = {};\n var shapeMembers = shape.members;\n var isAwsQueryCompatible = shape.api && shape.api.awsQueryCompatible;\n util.each(shapeMembers, function(name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n if (Object.prototype.hasOwnProperty.call(structure, locationName)) {\n var value = structure[locationName];\n var result = translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n } else if (isAwsQueryCompatible && memberShape.defaultValue) {\n if (memberShape.type === 'list') {\n struct[name] = typeof memberShape.defaultValue === 'function' ? memberShape.defaultValue() : memberShape.defaultValue;\n }\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonParser;\n","var warning = [\n 'The AWS SDK for JavaScript (v2) will enter maintenance mode',\n 'on September 8, 2024 and reach end-of-support on September 8, 2025.\\n',\n 'Please migrate your code to use AWS SDK for JavaScript (v3).',\n 'For more information, check blog post at https://a.co/cUPnyil'\n].join('\\n');\n\nmodule.exports = {\n suppress: false\n};\n\n/**\n * To suppress this message:\n * @example\n * require('aws-sdk/lib/maintenance_mode_message').suppress = true;\n */\nfunction emitWarning() {\n if (typeof process === 'undefined')\n return;\n\n // Skip maintenance mode message in Lambda environments\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_EXECUTION_ENV !== 'undefined' &&\n process.env.AWS_EXECUTION_ENV.indexOf('AWS_Lambda_') === 0\n ) {\n return;\n }\n\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE !== 'undefined'\n ) {\n return;\n }\n\n if (typeof process.emitWarning === 'function') {\n process.emitWarning(warning, {\n type: 'NOTE'\n });\n }\n}\n\nsetTimeout(function () {\n if (!module.exports.suppress) {\n emitWarning();\n }\n}, 0);\n","var Collection = require('./collection');\nvar Operation = require('./operation');\nvar Shape = require('./shape');\nvar Paginator = require('./paginator');\nvar ResourceWaiter = require('./resource_waiter');\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Api(api, options) {\n var self = this;\n api = api || {};\n options = options || {};\n options.api = this;\n\n api.metadata = api.metadata || {};\n\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\n\n property(this, 'isApi', true, false);\n property(this, 'apiVersion', api.metadata.apiVersion);\n property(this, 'endpointPrefix', api.metadata.endpointPrefix);\n property(this, 'signingName', api.metadata.signingName);\n property(this, 'globalEndpoint', api.metadata.globalEndpoint);\n property(this, 'signatureVersion', api.metadata.signatureVersion);\n property(this, 'jsonVersion', api.metadata.jsonVersion);\n property(this, 'targetPrefix', api.metadata.targetPrefix);\n property(this, 'protocol', api.metadata.protocol);\n property(this, 'timestampFormat', api.metadata.timestampFormat);\n property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);\n property(this, 'abbreviation', api.metadata.serviceAbbreviation);\n property(this, 'fullName', api.metadata.serviceFullName);\n property(this, 'serviceId', api.metadata.serviceId);\n if (serviceIdentifier && metadata[serviceIdentifier]) {\n property(this, 'xmlNoDefaultLists', metadata[serviceIdentifier].xmlNoDefaultLists, false);\n }\n\n memoizedProperty(this, 'className', function() {\n var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;\n if (!name) return null;\n\n name = name.replace(/^Amazon|AWS\\s*|\\(.*|\\s+|\\W+/g, '');\n if (name === 'ElasticLoadBalancing') name = 'ELB';\n return name;\n });\n\n function addEndpointOperation(name, operation) {\n if (operation.endpointoperation === true) {\n property(self, 'endpointOperation', util.string.lowerFirst(name));\n }\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(\n self,\n 'hasRequiredEndpointDiscovery',\n operation.endpointdiscovery.required === true\n );\n }\n }\n\n property(this, 'operations', new Collection(api.operations, options, function(name, operation) {\n return new Operation(name, operation, options);\n }, util.string.lowerFirst, addEndpointOperation));\n\n property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {\n return Shape.create(shape, options);\n }));\n\n property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {\n return new Paginator(name, paginator, options);\n }));\n\n property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {\n return new ResourceWaiter(name, waiter, options);\n }, util.string.lowerFirst));\n\n if (options.documentation) {\n property(this, 'documentation', api.documentation);\n property(this, 'documentationUrl', api.documentationUrl);\n }\n property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible);\n}\n\n/**\n * @api private\n */\nmodule.exports = Api;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var Shape = require('./shape');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\n\n operation.http = operation.http || {};\n property(this, 'endpoint', operation.endpoint);\n property(this, 'httpMethod', operation.http.method || 'POST');\n property(this, 'httpPath', operation.http.requestUri || '/');\n property(this, 'authtype', operation.authtype || '');\n property(\n this,\n 'endpointDiscoveryRequired',\n operation.endpointdiscovery ?\n (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') :\n 'NULL'\n );\n\n // httpChecksum replaces usage of httpChecksumRequired, but some APIs\n // (s3control) still uses old trait.\n var httpChecksumRequired = operation.httpChecksumRequired\n || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired);\n property(this, 'httpChecksumRequired', httpChecksumRequired, false);\n\n memoizedProperty(this, 'input', function() {\n if (!operation.input) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.input, options);\n });\n\n memoizedProperty(this, 'output', function() {\n if (!operation.output) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.output, options);\n });\n\n memoizedProperty(this, 'errors', function() {\n var list = [];\n if (!operation.errors) return null;\n\n for (var i = 0; i < operation.errors.length; i++) {\n list.push(Shape.create(operation.errors[i], options));\n }\n\n return list;\n });\n\n memoizedProperty(this, 'paginator', function() {\n return options.api.paginators[name];\n });\n\n if (options.documentation) {\n property(this, 'documentation', operation.documentation);\n property(this, 'documentationUrl', operation.documentationUrl);\n }\n\n // idempotentMembers only tracks top-level input shapes\n memoizedProperty(this, 'idempotentMembers', function() {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n if (!input.members) {\n return idempotentMembers;\n }\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n return idempotentMembers;\n });\n\n memoizedProperty(this, 'hasEventOutput', function() {\n var output = self.output;\n return hasEventStream(output);\n });\n}\n\nfunction hasEventStream(topLevelShape) {\n var members = topLevelShape.members;\n var payload = topLevelShape.payload;\n\n if (!topLevelShape.members) {\n return false;\n }\n\n if (payload) {\n var payloadMember = members[payload];\n return payloadMember.isEventStream;\n }\n\n // check if any member is an event stream\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = Operation;\n","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","var Collection = require('./collection');\n\nvar util = require('../util');\n\nfunction property(obj, name, value) {\n if (value !== null && value !== undefined) {\n util.property.apply(this, arguments);\n }\n}\n\nfunction memoizedProperty(obj, name) {\n if (!obj.constructor.prototype[name]) {\n util.memoizedProperty.apply(this, arguments);\n }\n}\n\nfunction Shape(shape, options, memberName) {\n options = options || {};\n\n property(this, 'shape', shape.shape);\n property(this, 'api', options.api, false);\n property(this, 'type', shape.type);\n property(this, 'enum', shape.enum);\n property(this, 'min', shape.min);\n property(this, 'max', shape.max);\n property(this, 'pattern', shape.pattern);\n property(this, 'location', shape.location || this.location || 'body');\n property(this, 'name', this.name || shape.xmlName || shape.queryName ||\n shape.locationName || memberName);\n property(this, 'isStreaming', shape.streaming || this.isStreaming || false);\n property(this, 'requiresLength', shape.requiresLength, false);\n property(this, 'isComposite', shape.isComposite || false);\n property(this, 'isShape', true, false);\n property(this, 'isQueryName', Boolean(shape.queryName), false);\n property(this, 'isLocationName', Boolean(shape.locationName), false);\n property(this, 'isIdempotent', shape.idempotencyToken === true);\n property(this, 'isJsonValue', shape.jsonvalue === true);\n property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true);\n property(this, 'isEventStream', Boolean(shape.eventstream), false);\n property(this, 'isEvent', Boolean(shape.event), false);\n property(this, 'isEventPayload', Boolean(shape.eventpayload), false);\n property(this, 'isEventHeader', Boolean(shape.eventheader), false);\n property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false);\n property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false);\n property(this, 'hostLabel', Boolean(shape.hostLabel), false);\n\n if (options.documentation) {\n property(this, 'documentation', shape.documentation);\n property(this, 'documentationUrl', shape.documentationUrl);\n }\n\n if (shape.xmlAttribute) {\n property(this, 'isXmlAttribute', shape.xmlAttribute || false);\n }\n\n // type conversion and parsing\n property(this, 'defaultValue', null);\n this.toWireFormat = function(value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n this.toType = function(value) { return value; };\n}\n\n/**\n * @api private\n */\nShape.normalizedTypes = {\n character: 'string',\n double: 'float',\n long: 'integer',\n short: 'integer',\n biginteger: 'integer',\n bigdecimal: 'float',\n blob: 'binary'\n};\n\n/**\n * @api private\n */\nShape.types = {\n 'structure': StructureShape,\n 'list': ListShape,\n 'map': MapShape,\n 'boolean': BooleanShape,\n 'timestamp': TimestampShape,\n 'float': FloatShape,\n 'integer': IntegerShape,\n 'string': StringShape,\n 'base64': Base64Shape,\n 'binary': BinaryShape\n};\n\nShape.resolve = function resolve(shape, options) {\n if (shape.shape) {\n var refShape = options.api.shapes[shape.shape];\n if (!refShape) {\n throw new Error('Cannot find shape reference: ' + shape.shape);\n }\n\n return refShape;\n } else {\n return null;\n }\n};\n\nShape.create = function create(shape, options, memberName) {\n if (shape.isShape) return shape;\n\n var refShape = Shape.resolve(shape, options);\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function(name) {\n return !name.match(/documentation/);\n });\n }\n\n // create an inline shape with extra members\n var InlineShape = function() {\n refShape.constructor.call(this, shape, options, memberName);\n };\n InlineShape.prototype = refShape;\n return new InlineShape();\n } else {\n // set type if not set\n if (!shape.type) {\n if (shape.members) shape.type = 'structure';\n else if (shape.member) shape.type = 'list';\n else if (shape.key) shape.type = 'map';\n else shape.type = 'string';\n }\n\n // normalize types\n var origType = shape.type;\n if (Shape.normalizedTypes[shape.type]) {\n shape.type = Shape.normalizedTypes[shape.type];\n }\n\n if (Shape.types[shape.type]) {\n return new Shape.types[shape.type](shape, options, memberName);\n } else {\n throw new Error('Unrecognized shape type: ' + origType);\n }\n }\n};\n\nfunction CompositeShape(shape) {\n Shape.apply(this, arguments);\n property(this, 'isComposite', true);\n\n if (shape.flattened) {\n property(this, 'flattened', shape.flattened || false);\n }\n}\n\nfunction StructureShape(shape, options) {\n var self = this;\n var requiredMap = null, firstInit = !this.isShape;\n\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function() { return false; });\n property(this, 'isDocument', Boolean(shape.document));\n }\n\n if (shape.members) {\n property(this, 'members', new Collection(shape.members, options, function(name, member) {\n return Shape.create(member, options, name);\n }));\n memoizedProperty(this, 'memberNames', function() {\n return shape.xmlOrder || Object.keys(shape.members);\n });\n\n if (shape.event) {\n memoizedProperty(this, 'eventPayloadMemberName', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n // iterate over members to find ones that are event payloads\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventPayload) {\n return memberNames[i];\n }\n }\n });\n\n memoizedProperty(this, 'eventHeaderMemberNames', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = [];\n // iterate over members to find ones that are event headers\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventHeader) {\n eventHeaderMemberNames.push(memberNames[i]);\n }\n }\n return eventHeaderMemberNames;\n });\n }\n }\n\n if (shape.required) {\n property(this, 'required', shape.required);\n property(this, 'isRequired', function(name) {\n if (!requiredMap) {\n requiredMap = {};\n for (var i = 0; i < shape.required.length; i++) {\n requiredMap[shape.required[i]] = true;\n }\n }\n\n return requiredMap[name];\n }, false, true);\n }\n\n property(this, 'resultWrapper', shape.resultWrapper || null);\n\n if (shape.payload) {\n property(this, 'payload', shape.payload);\n }\n\n if (typeof shape.xmlNamespace === 'string') {\n property(this, 'xmlNamespaceUri', shape.xmlNamespace);\n } else if (typeof shape.xmlNamespace === 'object') {\n property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);\n property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);\n }\n}\n\nfunction ListShape(shape, options) {\n var self = this, firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return []; });\n }\n\n if (shape.member) {\n memoizedProperty(this, 'member', function() {\n return Shape.create(shape.member, options);\n });\n }\n\n if (this.flattened) {\n var oldName = this.name;\n memoizedProperty(this, 'name', function() {\n return self.member.name || oldName;\n });\n }\n}\n\nfunction MapShape(shape, options) {\n var firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'key', Shape.create({type: 'string'}, options));\n property(this, 'value', Shape.create({type: 'string'}, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function() {\n return Shape.create(shape.key, options);\n });\n }\n if (shape.value) {\n memoizedProperty(this, 'value', function() {\n return Shape.create(shape.value, options);\n });\n }\n}\n\nfunction TimestampShape(shape) {\n var self = this;\n Shape.apply(this, arguments);\n\n if (shape.timestampFormat) {\n property(this, 'timestampFormat', shape.timestampFormat);\n } else if (self.isTimestampFormatSet && this.timestampFormat) {\n property(this, 'timestampFormat', this.timestampFormat);\n } else if (this.location === 'header') {\n property(this, 'timestampFormat', 'rfc822');\n } else if (this.location === 'querystring') {\n property(this, 'timestampFormat', 'iso8601');\n } else if (this.api) {\n switch (this.api.protocol) {\n case 'json':\n case 'rest-json':\n property(this, 'timestampFormat', 'unixTimestamp');\n break;\n case 'rest-xml':\n case 'query':\n case 'ec2':\n property(this, 'timestampFormat', 'iso8601');\n break;\n }\n }\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n if (typeof value.toUTCString === 'function') return value;\n return typeof value === 'string' || typeof value === 'number' ?\n util.date.parseTimestamp(value) : null;\n };\n\n this.toWireFormat = function(value) {\n return util.date.format(value, self.timestampFormat);\n };\n}\n\nfunction StringShape() {\n Shape.apply(this, arguments);\n\n var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n this.toType = function(value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ?\n value || '' : value;\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ?\n value.toString() : value;\n };\n\n this.toWireFormat = function(value) {\n return this.isJsonValue ? JSON.stringify(value) : value;\n };\n}\n\nfunction FloatShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseFloat(value);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction IntegerShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseInt(value, 10);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n this.toType = function(value) {\n var buf = util.base64.decode(value);\n if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') {\n /* Node.js can create a Buffer that is not isolated.\n * i.e. buf.byteLength !== buf.buffer.byteLength\n * This means that the sensitive data is accessible to anyone with access to buf.buffer.\n * If this is the node shared Buffer, then other code within this process _could_ find this secret.\n * Copy sensitive data to an isolated Buffer and zero the sensitive data.\n * While this is safe to do here, copying this code somewhere else may produce unexpected results.\n */\n var secureBuf = util.Buffer.alloc(buf.length, buf);\n buf.fill(0);\n buf = secureBuf;\n }\n return buf;\n };\n this.toWireFormat = util.base64.encode;\n}\n\nfunction Base64Shape() {\n BinaryShape.apply(this, arguments);\n}\n\nfunction BooleanShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (typeof value === 'boolean') return value;\n if (value === null || value === undefined) return null;\n return value === 'true';\n };\n}\n\n/**\n * @api private\n */\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n\n/**\n * @api private\n */\nmodule.exports = Shape;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","var util = require('../util');\nvar AWS = require('../core');\n\n/**\n * Prepend prefix defined by API model to endpoint that's already\n * constructed. This feature does not apply to operations using\n * endpoint discovery and can be disabled.\n * @api private\n */\nfunction populateHostPrefix(request) {\n var enabled = request.service.config.hostPrefixEnabled;\n if (!enabled) return request;\n var operationModel = request.service.api.operations[request.operation];\n //don't marshal host prefix when operation has endpoint discovery traits\n if (hasEndpointDiscover(request)) return request;\n if (operationModel.endpoint && operationModel.endpoint.hostPrefix) {\n var hostPrefixNotation = operationModel.endpoint.hostPrefix;\n var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input);\n prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix);\n validateHostname(request.httpRequest.endpoint.hostname);\n }\n return request;\n}\n\n/**\n * @api private\n */\nfunction hasEndpointDiscover(request) {\n var api = request.service.api;\n var operationModel = api.operations[request.operation];\n var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name));\n return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true);\n}\n\n/**\n * @api private\n */\nfunction expandHostPrefix(hostPrefixNotation, params, shape) {\n util.each(shape.members, function(name, member) {\n if (member.hostLabel === true) {\n if (typeof params[name] !== 'string' || params[name] === '') {\n throw util.error(new Error(), {\n message: 'Parameter ' + name + ' should be a non-empty string.',\n code: 'InvalidParameter'\n });\n }\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n\n/**\n * @api private\n */\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n\n/**\n * @api private\n */\nfunction validateHostname(hostname) {\n var labels = hostname.split('.');\n //Reference: https://tools.ietf.org/html/rfc1123#section-2\n var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]$/;\n util.arrayEach(labels, function(label) {\n if (!label.length || label.length < 1 || label.length > 63) {\n throw util.error(new Error(), {\n code: 'ValidationError',\n message: 'Hostname label length should be between 1 to 63 characters, inclusive.'\n });\n }\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(),\n {code: 'ValidationError', message: label + ' is not hostname compatible.'});\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n\n if (api.awsQueryCompatible) {\n if (!httpRequest.params) {\n httpRequest.params = {};\n }\n // because Query protocol does this.\n Object.assign(httpRequest.params, req.params);\n }\n\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n\n // The minimized models do not have error shapes, so\n // without expanding the model size, it's not possible\n // to validate the response shape (members) or\n // check if any are sensitive to logging.\n\n // Assign the fields as non-enumerable, allowing specific access only.\n for (var key in e || {}) {\n if (key === 'code' || key === 'message') {\n continue;\n }\n error['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(error, key, {\n value: e[key],\n enumerable: false,\n writable: true\n });\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar QueryParamSerializer = require('../query/query_param_serializer');\nvar Shape = require('../model/shape');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var operation = req.service.api.operations[req.operation];\n var httpRequest = req.httpRequest;\n httpRequest.headers['Content-Type'] =\n 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n };\n\n // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n var builder = new QueryParamSerializer();\n builder.serialize(req.params, operation.input, function(name, value) {\n httpRequest.params[name] = value;\n });\n httpRequest.body = util.queryParamsToString(httpRequest.params);\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data, body = resp.httpResponse.body.toString();\n if (body.match('= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\nvar Json = require('./json');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\n\nvar METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE'];\n\nfunction unsetContentLength(req) {\n var payloadMember = util.getRequestPayloadShape(req);\n if (\n payloadMember === undefined &&\n METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0\n ) {\n delete req.httpRequest.headers['Content-Length'];\n }\n}\n\nfunction populateBody(req) {\n var builder = new JsonBuilder();\n var input = req.service.api.operations[req.operation].input;\n\n if (input.payload) {\n var params = {};\n var payloadShape = input.members[input.payload];\n params = req.params[input.payload];\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params || {}, payloadShape);\n applyContentTypeHeader(req);\n } else if (params !== undefined) {\n // non-JSON payload\n req.httpRequest.body = params;\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n req.httpRequest.body = builder.build(req.params, input);\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n if (!req.httpRequest.headers['Content-Type']) {\n var type = isBinary ? 'binary/octet-stream' : 'application/json';\n req.httpRequest.headers['Content-Type'] = type;\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD/DELETE\n if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Json.extractError(resp);\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var req = resp.request;\n var operation = req.service.api.operations[req.operation];\n var rules = req.service.api.operations[req.operation].output || {};\n var parser;\n var hasEventOutput = operation.hasEventOutput;\n\n if (rules.payload) {\n var payloadMember = rules.members[rules.payload];\n var body = resp.httpResponse.body;\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[rules.payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {\n var parser = new JsonParser();\n resp.data[rules.payload] = parser.parse(body, payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[rules.payload] = body;\n } else {\n resp.data[rules.payload] = payloadMember.toType(body);\n }\n } else {\n var data = resp.data;\n Json.extractData(resp);\n resp.data = util.merge(data, resp.data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n unsetContentLength: unsetContentLength\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\n\nfunction populateBody(req) {\n var input = req.service.api.operations[req.operation].input;\n var builder = new AWS.XML.Builder();\n var params = req.params;\n\n var payload = input.payload;\n if (payload) {\n var payloadMember = input.members[payload];\n params = params[payload];\n if (params === undefined) return;\n\n if (payloadMember.type === 'structure') {\n var rootElement = payloadMember.name;\n req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);\n } else { // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name ||\n input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n\n var data;\n try {\n data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());\n } catch (e) {\n data = {\n Code: resp.httpResponse.statusCode,\n Message: resp.httpResponse.statusMessage\n };\n }\n\n if (data.Errors) data = data.Errors;\n if (data.Error) data = data.Error;\n if (data.Code) {\n resp.error = util.error(new Error(), {\n code: data.Code,\n message: data.Message\n });\n } else {\n resp.error = util.error(new Error(), {\n code: resp.httpResponse.statusCode,\n message: null\n });\n }\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var parser;\n var req = resp.request;\n var body = resp.httpResponse.body;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n var hasEventOutput = operation.hasEventOutput;\n\n var payload = output.payload;\n if (payload) {\n var payloadMember = output.members[payload];\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure') {\n parser = new AWS.XML.Parser();\n resp.data[payload] = parser.parse(body.toString(), payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[payload] = body;\n } else {\n resp.data[payload] = payloadMember.toType(body);\n }\n } else if (body.length > 0) {\n parser = new AWS.XML.Parser();\n var data = parser.parse(body.toString(), output);\n util.update(resp.data, data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var util = require('../util');\n\nfunction QueryParamSerializer() {\n}\n\nQueryParamSerializer.prototype.serialize = function(params, shape, fn) {\n serializeStructure('', params, shape, fn);\n};\n\nfunction ucfirst(shape) {\n if (shape.isQueryName || shape.api.protocol !== 'ec2') {\n return shape.name;\n } else {\n return shape.name[0].toUpperCase() + shape.name.substr(1);\n }\n}\n\nfunction serializeStructure(prefix, struct, rules, fn) {\n util.each(rules.members, function(name, member) {\n var value = struct[name];\n if (value === null || value === undefined) return;\n\n var memberName = ucfirst(member);\n memberName = prefix ? prefix + '.' + memberName : memberName;\n serializeMember(memberName, value, member, fn);\n });\n}\n\nfunction serializeMap(name, map, rules, fn) {\n var i = 1;\n util.each(map, function (key, value) {\n var prefix = rules.flattened ? '.' : '.entry.';\n var position = prefix + (i++) + '.';\n var keyName = position + (rules.key.name || 'key');\n var valueName = position + (rules.value.name || 'value');\n serializeMember(name + keyName, key, rules.key, fn);\n serializeMember(name + valueName, value, rules.value, fn);\n });\n}\n\nfunction serializeList(name, list, rules, fn) {\n var memberRules = rules.member || {};\n\n if (list.length === 0) {\n if (rules.api.protocol !== 'ec2') {\n fn.call(this, name, null);\n }\n return;\n }\n\n util.arrayEach(list, function (v, n) {\n var suffix = '.' + (n + 1);\n if (rules.api.protocol === 'ec2') {\n // Do nothing for EC2\n suffix = suffix + ''; // make linter happy\n } else if (rules.flattened) {\n if (memberRules.name) {\n var parts = name.split('.');\n parts.pop();\n parts.push(ucfirst(memberRules));\n name = parts.join('.');\n }\n } else {\n suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix;\n }\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n if (rules.type === 'structure') {\n serializeStructure(name, value, rules, fn);\n } else if (rules.type === 'list') {\n serializeList(name, value, rules, fn);\n } else if (rules.type === 'map') {\n serializeMap(name, value, rules, fn);\n } else {\n fn(name, rules.toWireFormat(value).toString());\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = QueryParamSerializer;\n","module.exports = {\n //provide realtime clock for performance measurement\n now: function now() {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n }\n};\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","var util = require('./util');\nvar regionConfig = require('./region_config_data.json');\n\nfunction generateRegionPrefix(region) {\n if (!region) return null;\n var parts = region.split('-');\n if (parts.length < 3) return null;\n return parts.slice(0, parts.length - 2).join('-') + '-*';\n}\n\nfunction derivedKeys(service) {\n var region = service.config.region;\n var regionPrefix = generateRegionPrefix(region);\n var endpointPrefix = service.api.endpointPrefix;\n\n return [\n [region, endpointPrefix],\n [regionPrefix, endpointPrefix],\n [region, '*'],\n [regionPrefix, '*'],\n ['*', endpointPrefix],\n [region, 'internal-*'],\n ['*', '*']\n ].map(function(item) {\n return item[0] && item[1] ? item.join('/') : null;\n });\n}\n\nfunction applyConfig(service, config) {\n util.each(config, function(key, value) {\n if (key === 'globalEndpoint') return;\n if (service.config[key] === undefined || service.config[key] === null) {\n service.config[key] = value;\n }\n });\n}\n\nfunction configureEndpoint(service) {\n var keys = derivedKeys(service);\n var useFipsEndpoint = service.config.useFipsEndpoint;\n var useDualstackEndpoint = service.config.useDualstackEndpoint;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n var rules = useFipsEndpoint\n ? useDualstackEndpoint\n ? regionConfig.dualstackFipsRules\n : regionConfig.fipsRules\n : useDualstackEndpoint\n ? regionConfig.dualstackRules\n : regionConfig.rules;\n\n if (Object.prototype.hasOwnProperty.call(rules, key)) {\n var config = rules[key];\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n }\n\n // set global endpoint\n service.isGlobalEndpoint = !!config.globalEndpoint;\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n }\n\n // signature version\n if (!config.signatureVersion) {\n // Note: config is a global object and should not be mutated here.\n // However, we are retaining this line for backwards compatibility.\n // The non-v4 signatureVersion will be set in a copied object below.\n config.signatureVersion = 'v4';\n }\n\n var useBearer = (service.api && service.api.signatureVersion) === 'bearer';\n\n // merge config\n applyConfig(service, Object.assign(\n {},\n config,\n { signatureVersion: useBearer ? 'bearer' : config.signatureVersion }\n ));\n return;\n }\n }\n}\n\nfunction getEndpointSuffix(region) {\n var regionRegexes = {\n '^(us|eu|ap|sa|ca|me)\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^cn\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com.cn',\n '^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$': 'c2s.ic.gov',\n '^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$': 'sc2s.sgov.gov'\n };\n var defaultSuffix = 'amazonaws.com';\n var regexes = Object.keys(regionRegexes);\n for (var i = 0; i < regexes.length; i++) {\n var regionPattern = RegExp(regexes[i]);\n var dnsSuffix = regionRegexes[regexes[i]];\n if (regionPattern.test(region)) return dnsSuffix;\n }\n return defaultSuffix;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix,\n};\n","var AWS = require('./core');\nvar AcceptorStateMachine = require('./state_machine');\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nvar hardErrorStates = {success: 1, error: 1, complete: 1};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\nfsm.setupStates = function() {\n var transition = function(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\n\n self.emit(self._asm.currentState, function(err) {\n if (err) {\n if (isTerminalState(self)) {\n if (domain && self.domain instanceof domain.Domain) {\n err.domainEmitter = self;\n err.domain = self.domain;\n err.domainThrown = false;\n self.domain.emit('error', err);\n } else {\n throw err;\n }\n } else {\n self.response.error = err;\n done(err);\n }\n } else {\n done(self.response.error);\n }\n });\n\n };\n\n this.addState('validate', 'build', 'error', transition);\n this.addState('build', 'afterBuild', 'restart', transition);\n this.addState('afterBuild', 'sign', 'restart', transition);\n this.addState('sign', 'send', 'retry', transition);\n this.addState('retry', 'afterRetry', 'afterRetry', transition);\n this.addState('afterRetry', 'sign', 'error', transition);\n this.addState('send', 'validateResponse', 'retry', transition);\n this.addState('validateResponse', 'extractData', 'extractError', transition);\n this.addState('extractError', 'extractData', 'retry', transition);\n this.addState('extractData', 'success', 'retry', transition);\n this.addState('restart', 'build', 'error', transition);\n this.addState('success', 'complete', 'complete', transition);\n this.addState('error', 'complete', 'complete', transition);\n this.addState('complete', null, null, transition);\n};\nfsm.setupStates();\n\n/**\n * ## Asynchronous Requests\n *\n * All requests made through the SDK are asynchronous and use a\n * callback interface. Each service method that kicks off a request\n * returns an `AWS.Request` object that you can use to register\n * callbacks.\n *\n * For example, the following service method returns the request\n * object as \"request\", which can be used to register callbacks:\n *\n * ```javascript\n * // request is an AWS.Request object\n * var request = ec2.describeInstances();\n *\n * // register callbacks on request to retrieve response data\n * request.on('success', function(response) {\n * console.log(response.data);\n * });\n * ```\n *\n * When a request is ready to be sent, the {send} method should\n * be called:\n *\n * ```javascript\n * request.send();\n * ```\n *\n * Since registered callbacks may or may not be idempotent, requests should only\n * be sent once. To perform the same operation multiple times, you will need to\n * create multiple request objects, each with its own registered callbacks.\n *\n * ## Removing Default Listeners for Events\n *\n * Request objects are built with default listeners for the various events,\n * depending on the service type. In some cases, you may want to remove\n * some built-in listeners to customize behaviour. Doing this requires\n * access to the built-in listener functions, which are exposed through\n * the {AWS.EventListeners.Core} namespace. For instance, you may\n * want to customize the HTTP handler used when sending a request. In this\n * case, you can remove the built-in listener associated with the 'send'\n * event, the {AWS.EventListeners.Core.SEND} listener and add your own.\n *\n * ## Multiple Callbacks and Chaining\n *\n * You can register multiple callbacks on any request object. The\n * callbacks can be registered for different events, or all for the\n * same event. In addition, you can chain callback registration, for\n * example:\n *\n * ```javascript\n * request.\n * on('success', function(response) {\n * console.log(\"Success!\");\n * }).\n * on('error', function(error, response) {\n * console.log(\"Error!\");\n * }).\n * on('complete', function(response) {\n * console.log(\"Always!\");\n * }).\n * send();\n * ```\n *\n * The above example will print either \"Success! Always!\", or \"Error! Always!\",\n * depending on whether the request succeeded or not.\n *\n * @!attribute httpRequest\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpRequest] the raw HTTP request object\n * containing request headers and body information\n * sent by the service.\n *\n * @!attribute startTime\n * @readonly\n * @!group Operation Properties\n * @return [Date] the time that the request started\n *\n * @!group Request Building Events\n *\n * @!event validate(request)\n * Triggered when a request is being validated. Listeners\n * should throw an error if the request should not be sent.\n * @param request [Request] the request object being sent\n * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS\n * @see AWS.EventListeners.Core.VALIDATE_REGION\n * @example Ensuring that a certain parameter is set before sending a request\n * var req = s3.putObject(params);\n * req.on('validate', function() {\n * if (!req.params.Body.match(/^Hello\\s/)) {\n * throw new Error('Body must start with \"Hello \"');\n * }\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event build(request)\n * Triggered when the request payload is being built. Listeners\n * should fill the necessary information to send the request\n * over HTTP.\n * @param (see AWS.Request~validate)\n * @example Add a custom HTTP header to a request\n * var req = s3.putObject(params);\n * req.on('build', function() {\n * req.httpRequest.headers['Custom-Header'] = 'value';\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event sign(request)\n * Triggered when the request is being signed. Listeners should\n * add the correct authentication headers and/or adjust the body,\n * depending on the authentication mechanism being used.\n * @param (see AWS.Request~validate)\n *\n * @!group Request Sending Events\n *\n * @!event send(response)\n * Triggered when the request is ready to be sent. Listeners\n * should call the underlying transport layer to initiate\n * the sending of the request.\n * @param response [Response] the response object\n * @context [Request] the request object that was sent\n * @see AWS.EventListeners.Core.SEND\n *\n * @!event retry(response)\n * Triggered when a request failed and might need to be retried or redirected.\n * If the response is retryable, the listener should set the\n * `response.error.retryable` property to `true`, and optionally set\n * `response.error.retryDelay` to the millisecond delay for the next attempt.\n * In the case of a redirect, `response.error.redirect` should be set to\n * `true` with `retryDelay` set to an optional delay on the next request.\n *\n * If a listener decides that a request should not be retried,\n * it should set both `retryable` and `redirect` to false.\n *\n * Note that a retryable error will be retried at most\n * {AWS.Config.maxRetries} times (based on the service object's config).\n * Similarly, a request that is redirected will only redirect at most\n * {AWS.Config.maxRedirects} times.\n *\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @example Adding a custom retry for a 404 response\n * request.on('retry', function(response) {\n * // this resource is not yet available, wait 10 seconds to get it again\n * if (response.httpResponse.statusCode === 404 && response.error) {\n * response.error.retryable = true; // retry this error\n * response.error.retryDelay = 10000; // wait 10 seconds\n * }\n * });\n *\n * @!group Data Parsing Events\n *\n * @!event extractError(response)\n * Triggered on all non-2xx requests so that listeners can extract\n * error details from the response body. Listeners to this event\n * should set the `response.error` property.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event extractData(response)\n * Triggered in successful requests to allow listeners to\n * de-serialize the response body into `response.data`.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group Completion Events\n *\n * @!event success(response)\n * Triggered when the request completed successfully.\n * `response.data` will contain the response data and\n * `response.error` will be null.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event error(error, response)\n * Triggered when an error occurs at any point during the\n * request. `response.error` will contain details about the error\n * that occurred. `response.data` will be null.\n * @param error [Error] the error object containing details about\n * the error that occurred.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event complete(response)\n * Triggered whenever a request cycle completes. `response.error`\n * should be checked, since the request may have failed.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group HTTP Events\n *\n * @!event httpHeaders(statusCode, headers, response, statusMessage)\n * Triggered when headers are sent by the remote server\n * @param statusCode [Integer] the HTTP response code\n * @param headers [map] the response headers\n * @param (see AWS.Request~send)\n * @param statusMessage [String] A status message corresponding to the HTTP\n * response code\n * @context (see AWS.Request~send)\n *\n * @!event httpData(chunk, response)\n * Triggered when data is sent by the remote server\n * @param chunk [Buffer] the buffer data containing the next data chunk\n * from the server\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @see AWS.EventListeners.Core.HTTP_DATA\n *\n * @!event httpUploadProgress(progress, response)\n * Triggered when the HTTP request has uploaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpDownloadProgress(progress, response)\n * Triggered when the HTTP request has downloaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpError(error, response)\n * Triggered when the HTTP request failed\n * @param error [Error] the error object that was thrown\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event httpDone(response)\n * Triggered when the server is finished sending data\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @see AWS.Response\n */\nAWS.Request = inherit({\n\n /**\n * Creates a request for an operation on a given service with\n * a set of input parameters.\n *\n * @param service [AWS.Service] the service to perform the operation on\n * @param operation [String] the operation to perform on the service\n * @param params [Object] parameters to send to the operation.\n * See the operation's documentation for the format of the\n * parameters.\n */\n constructor: function Request(service, operation, params) {\n var endpoint = service.endpoint;\n var region = service.config.region;\n var customUserAgent = service.config.customUserAgent;\n\n if (service.signingRegion) {\n region = service.signingRegion;\n } else if (service.isGlobalEndpoint) {\n region = 'us-east-1';\n }\n\n this.domain = domain && domain.active;\n this.service = service;\n this.operation = operation;\n this.params = params || {};\n this.httpRequest = new AWS.HttpRequest(endpoint, region);\n this.httpRequest.appendToUserAgent(customUserAgent);\n this.startTime = service.getSkewCorrectedDate();\n\n this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\n\n AWS.SequentialExecutor.call(this);\n this.emit = this.emitEvent;\n },\n\n /**\n * @!group Sending a Request\n */\n\n /**\n * @overload send(callback = null)\n * Sends the request object.\n *\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @context [AWS.Request] the request object being sent.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n * @example Sending a request with a callback\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.send(function(err, data) { console.log(err, data); });\n * @example Sending a request with no callback (using event handlers)\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.on('complete', function(response) { ... }); // register a callback\n * request.send();\n */\n send: function send(callback) {\n if (callback) {\n // append to user agent\n this.httpRequest.appendToUserAgent('callback');\n this.on('complete', function (resp) {\n callback.call(resp, resp.error, resp.data);\n });\n }\n this.runTo();\n\n return this.response;\n },\n\n /**\n * @!method promise()\n * Sends the request and returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [Object] the de-serialized data returned from the request.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param error [Error] the error object returned from the request.\n * @return [Promise] A promise that represents the state of the request.\n * @example Sending a request using promises.\n * var request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * var result = request.promise();\n * result.then(function(data) { ... }, function(error) { ... });\n */\n\n /**\n * @api private\n */\n build: function build(callback) {\n return this.runTo('send', callback);\n },\n\n /**\n * @api private\n */\n runTo: function runTo(state, done) {\n this._asm.runTo(state, done, this);\n return this;\n },\n\n /**\n * Aborts a request, emitting the error and complete events.\n *\n * @!macro nobrowser\n * @example Aborting a request after sending\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload\n * };\n * var request = s3.putObject(params);\n * request.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(request.abort.bind(request), 1000);\n *\n * // prints \"Error: RequestAbortedError Request aborted by user\"\n * @return [AWS.Request] the same request object, for chaining.\n * @since v1.4.0\n */\n abort: function abort() {\n this.removeAllListeners('validateResponse');\n this.removeAllListeners('extractError');\n this.on('validateResponse', function addAbortedError(resp) {\n resp.error = AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream\n this.httpRequest.stream.abort();\n if (this.httpRequest._abortCallback) {\n this.httpRequest._abortCallback();\n } else {\n this.removeAllListeners('send'); // haven't sent yet, so let's not\n }\n }\n\n return this;\n },\n\n /**\n * Iterates over each page of results given a pageable request, calling\n * the provided callback with each page of data. After all pages have been\n * retrieved, the callback is called with `null` data.\n *\n * @note This operation can generate multiple requests to a service.\n * @example Iterating over multiple pages of objects in an S3 bucket\n * var pages = 1;\n * s3.listObjects().eachPage(function(err, data) {\n * if (err) return;\n * console.log(\"Page\", pages++);\n * console.log(data);\n * });\n * @example Iterating over multiple pages with an asynchronous callback\n * s3.listObjects(params).eachPage(function(err, data, done) {\n * doSomethingAsyncAndOrExpensive(function() {\n * // The next page of results isn't fetched until done is called\n * done();\n * });\n * });\n * @callback callback function(err, data, [doneCallback])\n * Called with each page of resulting data from the request. If the\n * optional `doneCallback` is provided in the function, it must be called\n * when the callback is complete.\n *\n * @param err [Error] an error object, if an error occurred.\n * @param data [Object] a single page of response data. If there is no\n * more data, this object will be `null`.\n * @param doneCallback [Function] an optional done callback. If this\n * argument is defined in the function declaration, it should be called\n * when the next page is ready to be retrieved. This is useful for\n * controlling serial pagination across asynchronous operations.\n * @return [Boolean] if the callback returns `false`, pagination will\n * stop.\n *\n * @see AWS.Request.eachItem\n * @see AWS.Response.nextPage\n * @since v1.4.0\n */\n eachPage: function eachPage(callback) {\n // Make all callbacks async-ish\n callback = AWS.util.fn.makeAsync(callback, 3);\n\n function wrappedCallback(response) {\n callback.call(response, response.error, response.data, function (result) {\n if (result === false) return;\n\n if (response.hasNextPage()) {\n response.nextPage().on('complete', wrappedCallback).send();\n } else {\n callback.call(response, null, null, AWS.util.fn.noop);\n }\n });\n }\n\n this.on('complete', wrappedCallback).send();\n },\n\n /**\n * Enumerates over individual items of a request, paging the responses if\n * necessary.\n *\n * @api experimental\n * @since v1.4.0\n */\n eachItem: function eachItem(callback) {\n var self = this;\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\n\n var config = self.service.paginationConfig(self.operation);\n var resultKey = config.resultKey;\n if (Array.isArray(resultKey)) resultKey = resultKey[0];\n var items = jmespath.search(data, resultKey);\n var continueIteration = true;\n AWS.util.arrayEach(items, function(item) {\n continueIteration = callback(null, item);\n if (continueIteration === false) {\n return AWS.util.abort;\n }\n });\n return continueIteration;\n }\n\n this.eachPage(wrappedCallback);\n },\n\n /**\n * @return [Boolean] whether the operation can return multiple pages of\n * response data.\n * @see AWS.Response.eachPage\n * @since v1.4.0\n */\n isPageable: function isPageable() {\n return this.service.paginationConfig(this.operation) ? true : false;\n },\n\n /**\n * Sends the request and converts the request object into a readable stream\n * that can be read from or piped into a writable stream.\n *\n * @note The data read from a readable stream contains only\n * the raw HTTP body contents.\n * @example Manually reading from a stream\n * request.createReadStream().on('data', function(data) {\n * console.log(\"Got data:\", data.toString());\n * });\n * @example Piping a request body into a file\n * var out = fs.createWriteStream('/path/to/outfile.jpg');\n * s3.service.getObject(params).createReadStream().pipe(out);\n * @return [Stream] the readable stream object that can be piped\n * or read from (by registering 'data' event listeners).\n * @!macro nobrowser\n */\n createReadStream: function createReadStream() {\n var streams = AWS.util.stream;\n var req = this;\n var stream = null;\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n stream = new streams.PassThrough();\n process.nextTick(function() { req.send(); });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n\n stream.sent = false;\n stream.on('newListener', function(event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function() { req.send(); });\n }\n });\n }\n\n this.on('error', function(err) {\n stream.emit('error', err);\n });\n\n this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {\n if (statusCode < 300) {\n req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);\n req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);\n req.on('httpError', function streamHttpError(error) {\n resp.error = error;\n resp.error.retryable = false;\n });\n\n var shouldCheckContentLength = false;\n var expectedLen;\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\n if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) {\n shouldCheckContentLength = true;\n var receivedLen = 0;\n }\n\n var checkContentLengthAndEmit = function checkContentLengthAndEmit() {\n if (shouldCheckContentLength && receivedLen !== expectedLen) {\n stream.emit('error', AWS.util.error(\n new Error('Stream content length mismatch. Received ' +\n receivedLen + ' of ' + expectedLen + ' bytes.'),\n { code: 'StreamContentLengthMismatch' }\n ));\n } else if (AWS.HttpClient.streamsApiVersion === 2) {\n stream.end();\n } else {\n stream.emit('end');\n }\n };\n\n var httpStream = resp.httpResponse.createUnbufferedStream();\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n if (shouldCheckContentLength) {\n var lengthAccumulator = new streams.PassThrough();\n lengthAccumulator._write = function(chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\n return streams.PassThrough.prototype._write.apply(this, arguments);\n };\n\n lengthAccumulator.on('end', checkContentLengthAndEmit);\n stream.on('error', function(err) {\n shouldCheckContentLength = false;\n httpStream.unpipe(lengthAccumulator);\n lengthAccumulator.emit('end');\n lengthAccumulator.end();\n });\n httpStream.pipe(lengthAccumulator).pipe(stream, { end: false });\n } else {\n httpStream.pipe(stream);\n }\n } else {\n\n if (shouldCheckContentLength) {\n httpStream.on('data', function(arg) {\n if (arg && arg.length) {\n receivedLen += arg.length;\n }\n });\n }\n\n httpStream.on('data', function(arg) {\n stream.emit('data', arg);\n });\n httpStream.on('end', checkContentLengthAndEmit);\n }\n\n httpStream.on('error', function(err) {\n shouldCheckContentLength = false;\n stream.emit('error', err);\n });\n }\n });\n\n return stream;\n },\n\n /**\n * @param [Array,Response] args This should be the response object,\n * or an array of args to send to the event.\n * @api private\n */\n emitEvent: function emit(eventName, args, done) {\n if (typeof args === 'function') { done = args; args = null; }\n if (!done) done = function() { };\n if (!args) args = this.eventParameters(eventName, this.response);\n\n var origEmit = AWS.SequentialExecutor.prototype.emit;\n origEmit.call(this, eventName, args, function (err) {\n if (err) this.response.error = err;\n done.call(this, err);\n });\n },\n\n /**\n * @api private\n */\n eventParameters: function eventParameters(eventName) {\n switch (eventName) {\n case 'restart':\n case 'validate':\n case 'sign':\n case 'build':\n case 'afterValidate':\n case 'afterBuild':\n return [this];\n case 'error':\n return [this.response.error, this.response];\n default:\n return [this.response];\n }\n },\n\n /**\n * @api private\n */\n presign: function presign(expires, callback) {\n if (!callback && typeof expires === 'function') {\n callback = expires;\n expires = null;\n }\n return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);\n },\n\n /**\n * @api private\n */\n isPresigned: function isPresigned() {\n return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires');\n },\n\n /**\n * @api private\n */\n toUnauthenticated: function toUnauthenticated() {\n this._unAuthenticated = true;\n this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);\n this.removeListener('sign', AWS.EventListeners.Core.SIGN);\n return this;\n },\n\n /**\n * @api private\n */\n toGet: function toGet() {\n if (this.service.api.protocol === 'query' ||\n this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\n return this;\n },\n\n /**\n * @api private\n */\n buildAsGet: function buildAsGet(request) {\n request.httpRequest.method = 'GET';\n request.httpRequest.path = request.service.endpoint.path +\n '?' + request.httpRequest.body;\n request.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete request.httpRequest.headers['Content-Length'];\n delete request.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @api private\n */\n haltHandlersOnError: function haltHandlersOnError() {\n this._haltHandlersOnError = true;\n }\n});\n\n/**\n * @api private\n */\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this;\n // append to user agent\n this.httpRequest.appendToUserAgent('promise');\n return new PromiseDependency(function(resolve, reject) {\n self.on('complete', function(resp) {\n if (resp.error) {\n reject(resp.error);\n } else {\n // define $response property so that it is not enumerable\n // this prevents circular reference errors when stringifying the JSON object\n resolve(Object.defineProperty(\n resp.data || {},\n '$response',\n {value: resp}\n ));\n }\n });\n self.runTo();\n });\n };\n};\n\n/**\n * @api private\n */\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\n\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);\n","/**\n * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You\n * may not use this file except in compliance with the License. A copy of\n * the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n */\n\nvar AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nfunction CHECK_ACCEPTORS(resp) {\n var waiter = resp.request._waiter;\n var acceptors = waiter.config.acceptors;\n var acceptorMatched = false;\n var state = 'retry';\n\n acceptors.forEach(function(acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\n }\n }\n });\n\n if (!acceptorMatched && resp.error) state = 'failure';\n\n if (state === 'success') {\n waiter.setSuccess(resp);\n } else {\n waiter.setError(resp, state === 'retry');\n }\n}\n\n/**\n * @api private\n */\nAWS.ResourceWaiter = inherit({\n /**\n * Waits for a given state on a service object\n * @param service [Service] the service object to wait on\n * @param state [String] the state (defined in waiter configuration) to wait\n * for.\n * @example Create a waiter for running EC2 instances\n * var ec2 = new AWS.EC2;\n * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning');\n */\n constructor: function constructor(service, state) {\n this.service = service;\n this.state = state;\n this.loadWaiterConfig(this.state);\n },\n\n service: null,\n\n state: null,\n\n config: null,\n\n matchers: {\n path: function(resp, expected, argument) {\n try {\n var result = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n return jmespath.strictDeepEqual(result,expected);\n },\n\n pathAll: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n if (!numResults) return false;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n return true;\n },\n\n pathAny: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n return false;\n },\n\n status: function(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return (typeof statusCode === 'number') && (statusCode === expected);\n },\n\n error: function(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n }\n // if expected is not string, can be boolean indicating presence of error\n return expected === !!resp.error;\n }\n },\n\n listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) {\n add('RETRY_CHECK', 'retry', function(resp) {\n var waiter = resp.request._waiter;\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\n\n add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS);\n }),\n\n /**\n * @return [AWS.Request]\n */\n wait: function wait(params, callback) {\n if (typeof params === 'function') {\n callback = params; params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\n delete params.$waiter;\n }\n\n var request = this.service.makeRequest(this.config.operation, params);\n request._waiter = this;\n request.response.maxRetries = this.config.maxAttempts;\n request.addListeners(this.listeners);\n\n if (callback) request.send(callback);\n return request;\n },\n\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\n },\n\n setError: function setError(resp, retryable) {\n resp.data = null;\n resp.error = AWS.util.error(resp.error || new Error(), {\n code: 'ResourceNotReady',\n message: 'Resource is not in the state ' + this.state,\n retryable: retryable\n });\n },\n\n /**\n * Loads waiter configuration from API configuration\n *\n * @api private\n */\n loadWaiterConfig: function loadWaiterConfig(state) {\n if (!this.service.api.waiters[state]) {\n throw new AWS.util.error(new Error(), {\n code: 'StateNotFoundError',\n message: 'State ' + state + ' not found.'\n });\n }\n\n this.config = AWS.util.copy(this.service.api.waiters[state]);\n }\n});\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","var AWS = require('../core');\nvar byteLength = AWS.util.string.byteLength;\nvar Buffer = AWS.util.Buffer;\n\n/**\n * The managed uploader allows for easy and efficient uploading of buffers,\n * blobs, or streams, using a configurable amount of concurrency to perform\n * multipart uploads where possible. This abstraction also enables uploading\n * streams of unknown size due to the use of multipart uploads.\n *\n * To construct a managed upload object, see the {constructor} function.\n *\n * ## Tracking upload progress\n *\n * The managed upload object can also track progress by attaching an\n * 'httpUploadProgress' listener to the upload manager. This event is similar\n * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress\n * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more\n * information.\n *\n * ## Handling Multipart Cleanup\n *\n * By default, this class will automatically clean up any multipart uploads\n * when an individual part upload fails. This behavior can be disabled in order\n * to manually handle failures by setting the `leavePartsOnError` configuration\n * option to `true` when initializing the upload object.\n *\n * @!event httpUploadProgress(progress)\n * Triggered when the uploader has uploaded more data.\n * @note The `total` property may not be set if the stream being uploaded has\n * not yet finished chunking. In this case the `total` will be undefined\n * until the total stream size is known.\n * @note This event will not be emitted in Node.js 0.8.x.\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload\n * size is known.\n * @context (see AWS.Request~send)\n */\nAWS.S3.ManagedUpload = AWS.util.inherit({\n /**\n * Creates a managed upload object with a set of configuration options.\n *\n * @note A \"Body\" parameter is required to be set prior to calling {send}.\n * @note In Node.js, sending \"Body\" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream}\n * may result in upload hangs. Using buffer stream is preferable.\n * @option options params [map] a map of parameters to pass to the upload\n * requests. The \"Body\" parameter is required to be specified either on\n * the service or in the params option.\n * @note ContentMD5 should not be provided when using the managed upload object.\n * Instead, setting \"computeChecksums\" to true will enable automatic ContentMD5 generation\n * by the managed upload object.\n * @option options queueSize [Number] (4) the size of the concurrent queue\n * manager to upload parts in parallel. Set to 1 for synchronous uploading\n * of parts. Note that the uploader will buffer at most queueSize * partSize\n * bytes into memory at any given time.\n * @option options partSize [Number] (5mb) the size in bytes for each\n * individual part to be uploaded. Adjust the part size to ensure the number\n * of parts does not exceed {maxTotalParts}. See {minPartSize} for the\n * minimum allowed part size.\n * @option options leavePartsOnError [Boolean] (false) whether to abort the\n * multipart upload if an error occurs. Set to true if you want to handle\n * failures manually.\n * @option options service [AWS.S3] an optional S3 service object to use for\n * requests. This object might have bound parameters used by the uploader.\n * @option options tags [Array] The tags to apply to the uploaded object.\n * Each tag should have a `Key` and `Value` keys.\n * @example Creating a default uploader for a stream object\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with concurrency of 1 and partSize of 10mb\n * var upload = new AWS.S3.ManagedUpload({\n * partSize: 10 * 1024 * 1024, queueSize: 1,\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with tags\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream},\n * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}]\n * });\n * @see send\n */\n constructor: function ManagedUpload(options) {\n var self = this;\n AWS.SequentialExecutor.call(self);\n self.body = null;\n self.sliceFn = null;\n self.callback = null;\n self.parts = {};\n self.completeInfo = [];\n self.fillQueue = function() {\n self.callback(new Error('Unsupported body payload ' + typeof self.body));\n };\n\n self.configure(options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n options = options || {};\n this.partSize = this.minPartSize;\n\n if (options.queueSize) this.queueSize = options.queueSize;\n if (options.partSize) this.partSize = options.partSize;\n if (options.leavePartsOnError) this.leavePartsOnError = true;\n if (options.tags) {\n if (!Array.isArray(options.tags)) {\n throw new Error('Tags must be specified as an array; ' +\n typeof options.tags + ' provided.');\n }\n this.tags = options.tags;\n }\n\n if (this.partSize < this.minPartSize) {\n throw new Error('partSize must be greater than ' +\n this.minPartSize);\n }\n\n this.service = options.service;\n this.bindServiceObject(options.params);\n this.validateBody();\n this.adjustTotalBytes();\n },\n\n /**\n * @api private\n */\n leavePartsOnError: false,\n\n /**\n * @api private\n */\n queueSize: 4,\n\n /**\n * @api private\n */\n partSize: null,\n\n /**\n * @readonly\n * @return [Number] the minimum number of bytes for an individual part\n * upload.\n */\n minPartSize: 1024 * 1024 * 5,\n\n /**\n * @readonly\n * @return [Number] the maximum allowed number of parts in a multipart upload.\n */\n maxTotalParts: 10000,\n\n /**\n * Initiates the managed upload for the payload.\n *\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * * `Location` (String) the URL of the uploaded object\n * * `ETag` (String) the ETag of the uploaded object\n * * `Bucket` (String) the bucket to which the object was uploaded\n * * `Key` (String) the key to which the object was uploaded\n * @example Sending a managed upload object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var upload = new AWS.S3.ManagedUpload({params: params});\n * upload.send(function(err, data) {\n * console.log(err, data);\n * });\n */\n send: function(callback) {\n var self = this;\n self.failed = false;\n self.callback = callback || function(err) { if (err) throw err; };\n\n var runFill = true;\n if (self.sliceFn) {\n self.fillQueue = self.fillBuffer;\n } else if (AWS.util.isNode()) {\n var Stream = AWS.util.stream.Stream;\n if (self.body instanceof Stream) {\n runFill = false;\n self.fillQueue = self.fillStream;\n self.partBuffers = [];\n self.body.\n on('error', function(err) { self.cleanup(err); }).\n on('readable', function() { self.fillQueue(); }).\n on('end', function() {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers;\n self.fillQueue.call(self);\n\n if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) {\n self.finishMultiPart();\n }\n });\n }\n }\n\n if (runFill) self.fillQueue.call(self);\n },\n\n /**\n * @!method promise()\n * Returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [map] The response data from the successful upload:\n * `Location` (String) the URL of the uploaded object\n * `ETag` (String) the ETag of the uploaded object\n * `Bucket` (String) the bucket to which the object was uploaded\n * `Key` (String) the key to which the object was uploaded\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] an error or null if no error occurred.\n * @return [Promise] A promise that represents the state of the upload request.\n * @example Sending an upload request using promises.\n * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream});\n * var promise = upload.promise();\n * promise.then(function(data) { ... }, function(err) { ... });\n */\n\n /**\n * Aborts a managed upload, including all concurrent upload requests.\n * @note By default, calling this function will cleanup a multipart upload\n * if one was created. To leave the multipart upload around after aborting\n * a request, configure `leavePartsOnError` to `true` in the {constructor}.\n * @note Calling {abort} in the browser environment will not abort any requests\n * that are already in flight. If a multipart upload was created, any parts\n * not yet uploaded will not be sent, and the multipart upload will be cleaned up.\n * @example Aborting an upload\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload\n * };\n * var upload = s3.upload(params);\n * upload.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(upload.abort.bind(upload), 1000);\n */\n abort: function() {\n var self = this;\n //abort putObject request\n if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) {\n self.singlePart.abort();\n } else {\n self.cleanup(AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n }));\n }\n },\n\n /**\n * @api private\n */\n validateBody: function validateBody() {\n var self = this;\n self.body = self.service.config.params.Body;\n if (typeof self.body === 'string') {\n self.body = AWS.util.buffer.toBuffer(self.body);\n } else if (!self.body) {\n throw new Error('params.Body is required');\n }\n self.sliceFn = AWS.util.arraySliceFn(self.body);\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(params) {\n params = params || {};\n var self = this;\n // bind parameters to new service object\n if (!self.service) {\n self.service = new AWS.S3({params: params});\n } else {\n // Create a new S3 client from the supplied client's constructor.\n var service = self.service;\n var config = AWS.util.copy(service.config);\n config.signatureVersion = service.getSignatureVersion();\n self.service = new service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, params);\n Object.defineProperty(self.service, '_originalConfig', {\n get: function() { return service._originalConfig; },\n enumerable: false,\n configurable: true\n });\n }\n },\n\n /**\n * @api private\n */\n adjustTotalBytes: function adjustTotalBytes() {\n var self = this;\n try { // try to get totalBytes\n self.totalBytes = byteLength(self.body);\n } catch (e) { }\n\n // try to adjust partSize if we know payload length\n if (self.totalBytes) {\n var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);\n if (newPartSize > self.partSize) self.partSize = newPartSize;\n } else {\n self.totalBytes = undefined;\n }\n },\n\n /**\n * @api private\n */\n isDoneChunking: false,\n\n /**\n * @api private\n */\n partPos: 0,\n\n /**\n * @api private\n */\n totalChunkedBytes: 0,\n\n /**\n * @api private\n */\n totalUploadedBytes: 0,\n\n /**\n * @api private\n */\n totalBytes: undefined,\n\n /**\n * @api private\n */\n numParts: 0,\n\n /**\n * @api private\n */\n totalPartNumbers: 0,\n\n /**\n * @api private\n */\n activeParts: 0,\n\n /**\n * @api private\n */\n doneParts: 0,\n\n /**\n * @api private\n */\n parts: null,\n\n /**\n * @api private\n */\n completeInfo: null,\n\n /**\n * @api private\n */\n failed: false,\n\n /**\n * @api private\n */\n multipartReq: null,\n\n /**\n * @api private\n */\n partBuffers: null,\n\n /**\n * @api private\n */\n partBufferLength: 0,\n\n /**\n * @api private\n */\n fillBuffer: function fillBuffer() {\n var self = this;\n var bodyLen = byteLength(self.body);\n\n if (bodyLen === 0) {\n self.isDoneChunking = true;\n self.numParts = 1;\n self.nextChunk(self.body);\n return;\n }\n\n while (self.activeParts < self.queueSize && self.partPos < bodyLen) {\n var endPos = Math.min(self.partPos + self.partSize, bodyLen);\n var buf = self.sliceFn.call(self.body, self.partPos, endPos);\n self.partPos += self.partSize;\n\n if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers + 1;\n }\n self.nextChunk(buf);\n }\n },\n\n /**\n * @api private\n */\n fillStream: function fillStream() {\n var self = this;\n if (self.activeParts >= self.queueSize) return;\n\n var buf = self.body.read(self.partSize - self.partBufferLength) ||\n self.body.read();\n if (buf) {\n self.partBuffers.push(buf);\n self.partBufferLength += buf.length;\n self.totalChunkedBytes += buf.length;\n }\n\n if (self.partBufferLength >= self.partSize) {\n // if we have single buffer we avoid copyfull concat\n var pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n\n // if we have more than partSize, push the rest back on the queue\n if (pbuf.length > self.partSize) {\n var rest = pbuf.slice(self.partSize);\n self.partBuffers.push(rest);\n self.partBufferLength += rest.length;\n pbuf = pbuf.slice(0, self.partSize);\n }\n\n self.nextChunk(pbuf);\n }\n\n if (self.isDoneChunking && !self.isDoneSending) {\n // if we have single buffer we avoid copyfull concat\n pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n self.totalBytes = self.totalChunkedBytes;\n self.isDoneSending = true;\n\n if (self.numParts === 0 || pbuf.length > 0) {\n self.numParts++;\n self.nextChunk(pbuf);\n }\n }\n\n self.body.read(0);\n },\n\n /**\n * @api private\n */\n nextChunk: function nextChunk(chunk) {\n var self = this;\n if (self.failed) return null;\n\n var partNumber = ++self.totalPartNumbers;\n if (self.isDoneChunking && partNumber === 1) {\n var params = {Body: chunk};\n if (this.tags) {\n params.Tagging = this.getTaggingHeader();\n }\n var req = self.service.putObject(params);\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);\n self.singlePart = req; //save the single part request\n return null;\n } else if (self.service.config.params.ContentMD5) {\n var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {\n code: 'InvalidDigest', retryable: false\n });\n\n self.cleanup(err);\n return null;\n }\n\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {\n return null; // Already uploaded this part.\n }\n\n self.activeParts++;\n if (!self.service.config.params.UploadId) {\n\n if (!self.multipartReq) { // create multipart\n self.multipartReq = self.service.createMultipartUpload();\n self.multipartReq.on('success', function(resp) {\n self.service.config.params.UploadId = resp.data.UploadId;\n self.multipartReq = null;\n });\n self.queueChunks(chunk, partNumber);\n self.multipartReq.on('error', function(err) {\n self.cleanup(err);\n });\n self.multipartReq.send();\n } else {\n self.queueChunks(chunk, partNumber);\n }\n } else { // multipart is created, just send\n self.uploadPart(chunk, partNumber);\n }\n },\n\n /**\n * @api private\n */\n getTaggingHeader: function getTaggingHeader() {\n var kvPairStrings = [];\n for (var i = 0; i < this.tags.length; i++) {\n kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' +\n AWS.util.uriEscape(this.tags[i].Value));\n }\n\n return kvPairStrings.join('&');\n },\n\n /**\n * @api private\n */\n uploadPart: function uploadPart(chunk, partNumber) {\n var self = this;\n\n var partParams = {\n Body: chunk,\n ContentLength: AWS.util.string.byteLength(chunk),\n PartNumber: partNumber\n };\n\n var partInfo = {ETag: null, PartNumber: partNumber};\n self.completeInfo[partNumber] = partInfo;\n\n var req = self.service.uploadPart(partParams);\n self.parts[partNumber] = req;\n req._lastUploadedBytes = 0;\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress);\n req.send(function(err, data) {\n delete self.parts[partParams.PartNumber];\n self.activeParts--;\n\n if (!err && (!data || !data.ETag)) {\n var message = 'No access to ETag property on response.';\n if (AWS.util.isBrowser()) {\n message += ' Check CORS configuration to expose ETag header.';\n }\n\n err = AWS.util.error(new Error(message), {\n code: 'ETagMissing', retryable: false\n });\n }\n if (err) return self.cleanup(err);\n //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304)\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null;\n partInfo.ETag = data.ETag;\n self.doneParts++;\n if (self.isDoneChunking && self.doneParts === self.totalPartNumbers) {\n self.finishMultiPart();\n } else {\n self.fillQueue.call(self);\n }\n });\n },\n\n /**\n * @api private\n */\n queueChunks: function queueChunks(chunk, partNumber) {\n var self = this;\n self.multipartReq.on('success', function() {\n self.uploadPart(chunk, partNumber);\n });\n },\n\n /**\n * @api private\n */\n cleanup: function cleanup(err) {\n var self = this;\n if (self.failed) return;\n\n // clean up stream\n if (typeof self.body.removeAllListeners === 'function' &&\n typeof self.body.resume === 'function') {\n self.body.removeAllListeners('readable');\n self.body.removeAllListeners('end');\n self.body.resume();\n }\n\n // cleanup multipartReq listeners\n if (self.multipartReq) {\n self.multipartReq.removeAllListeners('success');\n self.multipartReq.removeAllListeners('error');\n self.multipartReq.removeAllListeners('complete');\n delete self.multipartReq;\n }\n\n if (self.service.config.params.UploadId && !self.leavePartsOnError) {\n self.service.abortMultipartUpload().send();\n } else if (self.leavePartsOnError) {\n self.isDoneChunking = false;\n }\n\n AWS.util.each(self.parts, function(partNumber, part) {\n part.removeAllListeners('complete');\n part.abort();\n });\n\n self.activeParts = 0;\n self.partPos = 0;\n self.numParts = 0;\n self.totalPartNumbers = 0;\n self.parts = {};\n self.failed = true;\n self.callback(err);\n },\n\n /**\n * @api private\n */\n finishMultiPart: function finishMultiPart() {\n var self = this;\n var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };\n self.service.completeMultipartUpload(completeParams, function(err, data) {\n if (err) {\n return self.cleanup(err);\n }\n\n if (data && typeof data.Location === 'string') {\n data.Location = data.Location.replace(/%2F/g, '/');\n }\n\n if (Array.isArray(self.tags)) {\n for (var i = 0; i < self.tags.length; i++) {\n self.tags[i].Value = String(self.tags[i].Value);\n }\n self.service.putObjectTagging(\n {Tagging: {TagSet: self.tags}},\n function(e, d) {\n if (e) {\n self.callback(e);\n } else {\n self.callback(e, data);\n }\n }\n );\n } else {\n self.callback(err, data);\n }\n });\n },\n\n /**\n * @api private\n */\n finishSinglePart: function finishSinglePart(err, data) {\n var upload = this.request._managedUpload;\n var httpReq = this.request.httpRequest;\n var endpoint = httpReq.endpoint;\n if (err) return upload.callback(err);\n data.Location =\n [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');\n data.key = this.request.params.Key; // will stay undocumented\n data.Key = this.request.params.Key;\n data.Bucket = this.request.params.Bucket;\n upload.callback(err, data);\n },\n\n /**\n * @api private\n */\n progress: function progress(info) {\n var upload = this._managedUpload;\n if (this.operation === 'putObject') {\n info.part = 1;\n info.key = this.params.Key;\n } else {\n upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;\n this._lastUploadedBytes = info.loaded;\n info = {\n loaded: upload.totalUploadedBytes,\n total: upload.totalBytes,\n part: this.params.PartNumber,\n key: this.params.Key\n };\n }\n upload.emit('httpUploadProgress', [info]);\n }\n});\n\nAWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.S3.ManagedUpload);\n\n/**\n * @api private\n */\nmodule.exports = AWS.S3.ManagedUpload;\n","var AWS = require('./core');\n\n/**\n * @api private\n * @!method on(eventName, callback)\n * Registers an event listener callback for the event given by `eventName`.\n * Parameters passed to the callback function depend on the individual event\n * being triggered. See the event documentation for those parameters.\n *\n * @param eventName [String] the event name to register the listener for\n * @param callback [Function] the listener callback function\n * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true.\n * Default to be false.\n * @return [AWS.SequentialExecutor] the same object for chaining\n */\nAWS.SequentialExecutor = AWS.util.inherit({\n\n constructor: function SequentialExecutor() {\n this._events = {};\n },\n\n /**\n * @api private\n */\n listeners: function listeners(eventName) {\n return this._events[eventName] ? this._events[eventName].slice(0) : [];\n },\n\n on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ?\n this._events[eventName].unshift(listener) :\n this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n return this;\n },\n\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n return this;\n },\n\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function() { };\n var listeners = this.listeners(eventName);\n var count = listeners.length;\n this.callListeners(listeners, eventArgs, doneCallback);\n return count > 0;\n },\n\n /**\n * @api private\n */\n callListeners: function callListeners(listeners, args, doneCallback, prevError) {\n var self = this;\n var error = prevError || null;\n\n function callNextListener(err) {\n if (err) {\n error = AWS.util.error(error || new Error(), err);\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n if (listener._isAsync) { // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else { // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\n }\n }\n doneCallback.call(self, error);\n },\n\n /**\n * Adds or copies a set of listeners from another list of\n * listeners or SequentialExecutor object.\n *\n * @param listeners [map>, AWS.SequentialExecutor]\n * a list of events and callbacks, or an event emitter object\n * containing listeners to add to this emitter object.\n * @return [AWS.SequentialExecutor] the emitter object, for chaining.\n * @example Adding listeners from a map of listeners\n * emitter.addListeners({\n * event1: [function() { ... }, function() { ... }],\n * event2: [function() { ... }]\n * });\n * emitter.emit('event1'); // emitter has event1\n * emitter.emit('event2'); // emitter has event2\n * @example Adding listeners from another emitter object\n * var emitter1 = new AWS.SequentialExecutor();\n * emitter1.on('event1', function() { ... });\n * emitter1.on('event2', function() { ... });\n * var emitter2 = new AWS.SequentialExecutor();\n * emitter2.addListeners(emitter1);\n * emitter2.emit('event1'); // emitter2 has event1\n * emitter2.emit('event2'); // emitter2 has event2\n */\n addListeners: function addListeners(listeners) {\n var self = this;\n\n // extract listeners if parameter is an SequentialExecutor object\n if (listeners._events) listeners = listeners._events;\n\n AWS.util.each(listeners, function(event, callbacks) {\n if (typeof callbacks === 'function') callbacks = [callbacks];\n AWS.util.arrayEach(callbacks, function(callback) {\n self.on(event, callback);\n });\n });\n\n return self;\n },\n\n /**\n * Registers an event with {on} and saves the callback handle function\n * as a property on the emitter object using a given `name`.\n *\n * @param name [String] the property name to set on this object containing\n * the callback function handle so that the listener can be removed in\n * the future.\n * @param (see on)\n * @return (see on)\n * @example Adding a named listener DATA_CALLBACK\n * var listener = function() { doSomething(); };\n * emitter.addNamedListener('DATA_CALLBACK', 'data', listener);\n *\n * // the following prints: true\n * console.log(emitter.DATA_CALLBACK == listener);\n */\n addNamedListener: function addNamedListener(name, eventName, callback, toHead) {\n this[name] = callback;\n this.addListener(eventName, callback, toHead);\n return this;\n },\n\n /**\n * @api private\n */\n addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) {\n callback._isAsync = true;\n return this.addNamedListener(name, eventName, callback, toHead);\n },\n\n /**\n * Helper method to add a set of named listeners using\n * {addNamedListener}. The callback contains a parameter\n * with a handle to the `addNamedListener` method.\n *\n * @callback callback function(add)\n * The callback function is called immediately in order to provide\n * the `add` function to the block. This simplifies the addition of\n * a large group of named listeners.\n * @param add [Function] the {addNamedListener} function to call\n * when registering listeners.\n * @example Adding a set of named listeners\n * emitter.addNamedListeners(function(add) {\n * add('DATA_CALLBACK', 'data', function() { ... });\n * add('OTHER', 'otherEvent', function() { ... });\n * add('LAST', 'lastEvent', function() { ... });\n * });\n *\n * // these properties are now set:\n * emitter.DATA_CALLBACK;\n * emitter.OTHER;\n * emitter.LAST;\n */\n addNamedListeners: function addNamedListeners(callback) {\n var self = this;\n callback(\n function() {\n self.addNamedListener.apply(self, arguments);\n },\n function() {\n self.addNamedAsyncListener.apply(self, arguments);\n }\n );\n return this;\n }\n});\n\n/**\n * {on} is the prefered method.\n * @api private\n */\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n\n/**\n * @api private\n */\nmodule.exports = AWS.SequentialExecutor;\n","var AWS = require('./core');\nvar Api = require('./model/api');\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\nvar region_utils = require('./region/utils');\n\n/**\n * The service class representing an AWS service.\n *\n * @class_abstract This class is an abstract class.\n *\n * @!attribute apiVersions\n * @return [Array] the list of API versions supported by this service.\n * @readonly\n */\nAWS.Service = inherit({\n /**\n * Create a new service object with a configuration object\n *\n * @param config [map] a map of configuration options\n */\n constructor: function Service(config) {\n if (!this.loadServiceClass) {\n throw AWS.util.error(new Error(),\n 'Service must be constructed with `new\\' operator');\n }\n\n if (config) {\n if (config.region) {\n var region = config.region;\n if (region_utils.isFipsRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n config.useFipsEndpoint = true;\n }\n if (region_utils.isGlobalRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n }\n }\n if (typeof config.useDualstack === 'boolean'\n && typeof config.useDualstackEndpoint !== 'boolean') {\n config.useDualstackEndpoint = config.useDualstack;\n }\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function() { return originalConfig; },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\n this.initialize(config);\n },\n\n /**\n * @api private\n */\n initialize: function initialize(config) {\n var svcConfig = AWS.config[this.serviceIdentifier];\n this.config = new AWS.Config(AWS.config);\n if (svcConfig) this.config.update(svcConfig, true);\n if (config) this.config.update(config, true);\n\n this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint);\n //enable attaching listeners to service client\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) {\n var publisher = this.publisher;\n this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n },\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n if (!AWS.util.isEmpty(this.api)) {\n return null;\n } else if (config.apiConfig) {\n return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);\n } else if (!this.constructor.services) {\n return null;\n } else {\n config = new AWS.Config(AWS.config);\n config.update(serviceConfig, true);\n var version = config.apiVersions[this.constructor.serviceIdentifier];\n version = version || config.apiVersion;\n return this.getLatestServiceClass(version);\n }\n },\n\n /**\n * @api private\n */\n getLatestServiceClass: function getLatestServiceClass(version) {\n version = this.getLatestServiceVersion(version);\n if (this.constructor.services[version] === null) {\n AWS.Service.defineServiceApi(this.constructor, version);\n }\n\n return this.constructor.services[version];\n },\n\n /**\n * @api private\n */\n getLatestServiceVersion: function getLatestServiceVersion(version) {\n if (!this.constructor.services || this.constructor.services.length === 0) {\n throw new Error('No services defined on ' +\n this.constructor.serviceIdentifier);\n }\n\n if (!version) {\n version = 'latest';\n } else if (AWS.util.isType(version, Date)) {\n version = AWS.util.date.iso8601(version).split('T')[0];\n }\n\n if (Object.hasOwnProperty(this.constructor.services, version)) {\n return version;\n }\n\n var keys = Object.keys(this.constructor.services).sort();\n var selectedVersion = null;\n for (var i = keys.length - 1; i >= 0; i--) {\n // versions that end in \"*\" are not available on disk and can be\n // skipped, so do not choose these as selectedVersions\n if (keys[i][keys[i].length - 1] !== '*') {\n selectedVersion = keys[i];\n }\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier +\n ' API to satisfy version constraint `' + version + '\\'');\n },\n\n /**\n * @api private\n */\n api: {},\n\n /**\n * @api private\n */\n defaultRetryCount: 3,\n\n /**\n * @api private\n */\n customizeRequests: function customizeRequests(callback) {\n if (!callback) {\n this.customRequestHandler = null;\n } else if (typeof callback === 'function') {\n this.customRequestHandler = callback;\n } else {\n throw new Error('Invalid callback type \\'' + typeof callback + '\\' provided in customizeRequests');\n }\n },\n\n /**\n * Calls an operation on a service with the given input parameters.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeRequest: function makeRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n params = params || {};\n if (this.config.params) { // copy only toplevel bound params\n var rules = this.api.operations[operation];\n if (rules) {\n params = AWS.util.copy(params);\n AWS.util.each(this.config.params, function(key, value) {\n if (rules.input.members[key]) {\n if (params[key] === undefined || params[key] === null) {\n params[key] = value;\n }\n }\n });\n }\n }\n\n var request = new AWS.Request(this, operation, params);\n this.addAllRequestListeners(request);\n this.attachMonitoringEmitter(request);\n if (callback) request.send(callback);\n return request;\n },\n\n /**\n * Calls an operation on a service with the given input parameters, without\n * any authentication data. This method is useful for \"public\" API operations.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n var request = this.makeRequest(operation, params).toUnauthenticated();\n return callback ? request.send(callback) : request;\n },\n\n /**\n * Waits for a given state\n *\n * @param state [String] the state on the service to wait for\n * @param params [map] a map of parameters to pass with each request\n * @option params $waiter [map] a map of configuration options for the waiter\n * @option params $waiter.delay [Number] The number of seconds to wait between\n * requests\n * @option params $waiter.maxAttempts [Number] The maximum number of requests\n * to send while waiting\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n waitFor: function waitFor(state, params, callback) {\n var waiter = new AWS.ResourceWaiter(this, state);\n return waiter.wait(params, callback);\n },\n\n /**\n * @api private\n */\n addAllRequestListeners: function addAllRequestListeners(request) {\n var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),\n AWS.EventListeners.CorePost];\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n }\n\n // disable parameter validation\n if (!this.config.paramValidation) {\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) { // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request);\n // call prototype's customRequestHandler\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n }\n // call instance's customRequestHandler\n if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') {\n this.customRequestHandler(request);\n }\n },\n\n /**\n * Event recording metrics for a whole API call.\n * @returns {object} a subset of api call metrics\n * @api private\n */\n apiCallEvent: function apiCallEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCall',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Region: request.httpRequest.region,\n MaxRetriesExceeded: 0,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n if (statusCode > 299) {\n if (error.code) monitoringEvent.FinalAwsException = error.code;\n if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name;\n if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message;\n }\n }\n return monitoringEvent;\n },\n\n /**\n * Event recording metrics for an API call attempt.\n * @returns {object} a subset of api call attempt metrics\n * @api private\n */\n apiAttemptEvent: function apiAttemptEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCallAttempt',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Fqdn: request.httpRequest.endpoint.hostname,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n if (\n !request._unAuthenticated &&\n request.service.config.credentials &&\n request.service.config.credentials.accessKeyId\n ) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n if (!response.httpResponse.headers) return monitoringEvent;\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\n return monitoringEvent;\n },\n\n /**\n * Add metrics of failed request.\n * @api private\n */\n attemptFailEvent: function attemptFailEvent(request) {\n var monitoringEvent = this.apiAttemptEvent(request);\n var response = request.response;\n var error = response.error;\n if (response.httpResponse.statusCode > 299 ) {\n if (error.code) monitoringEvent.AwsException = error.code;\n if (error.message) monitoringEvent.AwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name;\n if (error.message) monitoringEvent.SdkExceptionMessage = error.message;\n }\n return monitoringEvent;\n },\n\n /**\n * Attach listeners to request object to fetch metrics of each request\n * and emit data object through \\'ApiCall\\' and \\'ApiCallAttempt\\' events.\n * @api private\n */\n attachMonitoringEmitter: function attachMonitoringEmitter(request) {\n var attemptTimestamp; //timestamp marking the beginning of a request attempt\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n var attemptLatency; //latency from request sent out to http response reaching SDK\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n var attemptCount = 0; //request.retryCount is not reliable here\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n var callTimestamp; //timestamp when the request is created\n var self = this;\n var addToHead = true;\n\n request.on('validate', function () {\n callStartRealTime = AWS.util.realClock.now();\n callTimestamp = Date.now();\n }, addToHead);\n request.on('sign', function () {\n attemptStartRealTime = AWS.util.realClock.now();\n attemptTimestamp = Date.now();\n region = request.httpRequest.region;\n attemptCount++;\n }, addToHead);\n request.on('validateResponse', function() {\n attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n });\n request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() {\n var apiAttemptEvent = self.apiAttemptEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() {\n var apiAttemptEvent = self.attemptFailEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n //attemptLatency may not be available if fail before response\n attemptLatency = attemptLatency ||\n Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL', 'complete', function API_CALL() {\n var apiCallEvent = self.apiCallEvent(request);\n apiCallEvent.AttemptCount = attemptCount;\n if (apiCallEvent.AttemptCount <= 0) return;\n apiCallEvent.Timestamp = callTimestamp;\n var latency = Math.round(AWS.util.realClock.now() - callStartRealTime);\n apiCallEvent.Latency = latency >= 0 ? latency : 0;\n var response = request.response;\n if (\n response.error &&\n response.error.retryable &&\n typeof response.retryCount === 'number' &&\n typeof response.maxRetries === 'number' &&\n (response.retryCount >= response.maxRetries)\n ) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\n self.emit('apiCall', [apiCallEvent]);\n });\n },\n\n /**\n * Override this method to setup any custom request listeners for each\n * new request to the service.\n *\n * @method_abstract This is an abstract method.\n */\n setupRequestListeners: function setupRequestListeners(request) {\n },\n\n /**\n * Gets the signing name for a given request\n * @api private\n */\n getSigningName: function getSigningName() {\n return this.api.signingName || this.api.endpointPrefix;\n },\n\n /**\n * Gets the signer class for a given request\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var version;\n // get operation authtype if present\n var operation = null;\n var authtype = '';\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\n if (this.config.signatureVersion) {\n version = this.config.signatureVersion;\n } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') {\n version = 'v4';\n } else if (authtype === 'bearer') {\n version = 'bearer';\n } else {\n version = this.api.signatureVersion;\n }\n return AWS.Signers.RequestSigner.getVersion(version);\n },\n\n /**\n * @api private\n */\n serviceInterface: function serviceInterface() {\n switch (this.api.protocol) {\n case 'ec2': return AWS.EventListeners.Query;\n case 'query': return AWS.EventListeners.Query;\n case 'json': return AWS.EventListeners.Json;\n case 'rest-json': return AWS.EventListeners.RestJson;\n case 'rest-xml': return AWS.EventListeners.RestXml;\n }\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' +\n this.api.protocol + ' in API config');\n }\n },\n\n /**\n * @api private\n */\n successfulResponse: function successfulResponse(resp) {\n return resp.httpResponse.statusCode < 300;\n },\n\n /**\n * How many times a failed request should be retried before giving up.\n * the defaultRetryCount can be overriden by service classes.\n *\n * @api private\n */\n numRetries: function numRetries() {\n if (this.config.maxRetries !== undefined) {\n return this.config.maxRetries;\n } else {\n return this.defaultRetryCount;\n }\n },\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions, err);\n },\n\n /**\n * @api private\n */\n retryableError: function retryableError(error) {\n if (this.timeoutError(error)) return true;\n if (this.networkingError(error)) return true;\n if (this.expiredCredentialsError(error)) return true;\n if (this.throttledError(error)) return true;\n if (error.statusCode >= 500) return true;\n return false;\n },\n\n /**\n * @api private\n */\n networkingError: function networkingError(error) {\n return error.code === 'NetworkingError';\n },\n\n /**\n * @api private\n */\n timeoutError: function timeoutError(error) {\n return error.code === 'TimeoutError';\n },\n\n /**\n * @api private\n */\n expiredCredentialsError: function expiredCredentialsError(error) {\n // TODO : this only handles *one* of the expired credential codes\n return (error.code === 'ExpiredTokenException');\n },\n\n /**\n * @api private\n */\n clockSkewError: function clockSkewError(error) {\n switch (error.code) {\n case 'RequestTimeTooSkewed':\n case 'RequestExpired':\n case 'InvalidSignatureException':\n case 'SignatureDoesNotMatch':\n case 'AuthFailure':\n case 'RequestInTheFuture':\n return true;\n default: return false;\n }\n },\n\n /**\n * @api private\n */\n getSkewCorrectedDate: function getSkewCorrectedDate() {\n return new Date(Date.now() + this.config.systemClockOffset);\n },\n\n /**\n * @api private\n */\n applyClockOffset: function applyClockOffset(newServerTime) {\n if (newServerTime) {\n this.config.systemClockOffset = newServerTime - Date.now();\n }\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(newServerTime) {\n if (newServerTime) {\n return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 300000;\n }\n },\n\n /**\n * @api private\n */\n throttledError: function throttledError(error) {\n // this logic varies between services\n if (error.statusCode === 429) return true;\n switch (error.code) {\n case 'ProvisionedThroughputExceededException':\n case 'Throttling':\n case 'ThrottlingException':\n case 'RequestLimitExceeded':\n case 'RequestThrottled':\n case 'RequestThrottledException':\n case 'TooManyRequestsException':\n case 'TransactionInProgressException': //dynamodb\n case 'EC2ThrottledException':\n return true;\n default:\n return false;\n }\n },\n\n /**\n * @api private\n */\n endpointFromTemplate: function endpointFromTemplate(endpoint) {\n if (typeof endpoint !== 'string') return endpoint;\n\n var e = endpoint;\n e = e.replace(/\\{service\\}/g, this.api.endpointPrefix);\n e = e.replace(/\\{region\\}/g, this.config.region);\n e = e.replace(/\\{scheme\\}/g, this.config.sslEnabled ? 'https' : 'http');\n return e;\n },\n\n /**\n * @api private\n */\n setEndpoint: function setEndpoint(endpoint) {\n this.endpoint = new AWS.Endpoint(endpoint, this.config);\n },\n\n /**\n * @api private\n */\n paginationConfig: function paginationConfig(operation, throwException) {\n var paginator = this.api.operations[operation].paginator;\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n return null;\n }\n\n return paginator;\n }\n});\n\nAWS.util.update(AWS.Service, {\n\n /**\n * Adds one method for each operation described in the api configuration\n *\n * @api private\n */\n defineMethods: function defineMethods(svc) {\n AWS.util.each(svc.prototype.api.operations, function iterator(method) {\n if (svc.prototype[method]) return;\n var operation = svc.prototype.api.operations[method];\n if (operation.authtype === 'none') {\n svc.prototype[method] = function (params, callback) {\n return this.makeUnauthenticatedRequest(method, params, callback);\n };\n } else {\n svc.prototype[method] = function (params, callback) {\n return this.makeRequest(method, params, callback);\n };\n }\n });\n },\n\n /**\n * Defines a new Service class using a service identifier and list of versions\n * including an optional set of features (functions) to apply to the class\n * prototype.\n *\n * @param serviceIdentifier [String] the identifier for the service\n * @param versions [Array] a list of versions that work with this\n * service\n * @param features [Object] an object to attach to the prototype\n * @return [Class] the service class defined by this function.\n */\n defineService: function defineService(serviceIdentifier, versions, features) {\n AWS.Service._serviceMap[serviceIdentifier] = true;\n if (!Array.isArray(versions)) {\n features = versions;\n versions = [];\n }\n\n var svc = inherit(AWS.Service, features || {});\n\n if (typeof serviceIdentifier === 'string') {\n AWS.Service.addVersions(svc, versions);\n\n var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else { // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n AWS.SequentialExecutor.call(this.prototype);\n //util.clientSideMonitoring is only available in node\n if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {\n var Publisher = AWS.util.clientSideMonitoring.Publisher;\n var configProvider = AWS.util.clientSideMonitoring.configProvider;\n var publisherConfig = configProvider();\n this.prototype.publisher = new Publisher(publisherConfig);\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\n }\n AWS.SequentialExecutor.call(svc.prototype);\n AWS.Service.addDefaultMonitoringListeners(svc.prototype);\n return svc;\n },\n\n /**\n * @api private\n */\n addVersions: function addVersions(svc, versions) {\n if (!Array.isArray(versions)) versions = [versions];\n\n svc.services = svc.services || {};\n for (var i = 0; i < versions.length; i++) {\n if (svc.services[versions[i]] === undefined) {\n svc.services[versions[i]] = null;\n }\n }\n\n svc.apiVersions = Object.keys(svc.services).sort();\n },\n\n /**\n * @api private\n */\n defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {\n var svc = inherit(superclass, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n\n function setApi(api) {\n if (api.isApi) {\n svc.prototype.api = api;\n } else {\n svc.prototype.api = new Api(api, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n }\n }\n\n if (typeof version === 'string') {\n if (apiConfig) {\n setApi(apiConfig);\n } else {\n try {\n setApi(AWS.apiLoader(superclass.serviceIdentifier, version));\n } catch (err) {\n throw AWS.util.error(err, {\n message: 'Could not find API configuration ' +\n superclass.serviceIdentifier + '-' + version\n });\n }\n }\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\n superclass.services[version] = svc;\n } else {\n setApi(version);\n }\n\n AWS.Service.defineMethods(svc);\n return svc;\n },\n\n /**\n * @api private\n */\n hasService: function(identifier) {\n return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);\n },\n\n /**\n * @param attachOn attach default monitoring listeners to object\n *\n * Each monitoring event should be emitted from service client to service constructor prototype and then\n * to global service prototype like bubbling up. These default monitoring events listener will transfer\n * the monitoring events to the upper layer.\n * @api private\n */\n addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {\n attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);\n });\n attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCall', [event]);\n });\n },\n\n /**\n * @api private\n */\n _serviceMap: {}\n});\n\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nmodule.exports = AWS.Service;\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.setExpiresString);\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n if (!operationsWith200StatusCodeError[resp.request.operation]) return;\n var httpResponse = resp.httpResponse;\n if (httpResponse.body && httpResponse.body.toString().match('')) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n var service = this.service ? this.service : this;\n service.extractError(resp);\n throw resp.error;\n } else if (!httpResponse.body || !httpResponse.body.toString().match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (operationsWith200StatusCodeError[request.operation] &&\n error.statusCode === 200) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n },\n\n /**\n * @api private\n */\n setExpiresString: function setExpiresString(response) {\n // Check if response contains Expires value, and populate ExpiresString.\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n response.httpResponse.headers.expiresstring = response.httpResponse.headers.expires;\n }\n }\n\n // Check if value in Expires is not a Date using parseTimestamp.\n try {\n if (response && response.httpResponse && response.httpResponse.headers) {\n if ('expires' in response.httpResponse.headers) {\n AWS.util.date.parseTimestamp(response.httpResponse.headers.expires);\n }\n }\n } catch (e) {\n console.log('AWS SDK', '(warning)', e);\n delete response.httpResponse.headers.expires;\n }\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","var AWS = require('../core');\nvar regionUtil = require('../region_config');\n\nvar s3util = {\n /**\n * @api private\n */\n isArnInParam: function isArnInParam(req, paramName) {\n var inputShape = (req.service.api.operations[req.operation] || {}).input || {};\n var inputMembers = inputShape.members || {};\n if (!req.params[paramName] || !inputMembers[paramName]) return false;\n return AWS.util.ARN.validate(req.params[paramName]);\n },\n\n /**\n * Validate service component from ARN supplied in Bucket parameter\n */\n validateArnService: function validateArnService(req) {\n var parsedArn = req._parsedArn;\n\n if (parsedArn.service !== 's3'\n && parsedArn.service !== 's3-outposts'\n && parsedArn.service !== 's3-object-lambda') {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'expect \\'s3\\' or \\'s3-outposts\\' or \\'s3-object-lambda\\' in ARN service component'\n });\n }\n },\n\n /**\n * Validate account ID from ARN supplied in Bucket parameter is a valid account\n */\n validateArnAccount: function validateArnAccount(req) {\n var parsedArn = req._parsedArn;\n\n if (!/[0-9]{12}/.exec(parsedArn.accountId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN accountID does not match regex \"[0-9]{12}\"'\n });\n }\n },\n\n /**\n * Validate ARN supplied in Bucket parameter is a valid access point ARN\n */\n validateS3AccessPointArn: function validateS3AccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['accesspoint'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 2) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[1];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsArn: function validateOutpostsArn(req) {\n var parsedArn = req._parsedArn;\n\n if (\n parsedArn.resource.indexOf('outpost:') !== 0 &&\n parsedArn.resource.indexOf('outpost/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'outpost/\\''\n });\n }\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n var outpostId = parsedArn.resource.split(delimiter)[1];\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(outpostId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId\n });\n }\n req._parsedArn.outpostId = outpostId;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 4) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[3];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate region field in ARN supplied in Bucket parameter is a valid region\n */\n validateArnRegion: function validateArnRegion(req, options) {\n if (options === undefined) {\n options = {};\n }\n\n var useArnRegion = s3util.loadUseArnRegionConfig(req);\n var regionFromArn = req._parsedArn.region;\n var clientRegion = req.service.config.region;\n var useFipsEndpoint = req.service.config.useFipsEndpoint;\n var allowFipsEndpoint = options.allowFipsEndpoint || false;\n\n if (!regionFromArn) {\n var message = 'ARN region is empty';\n if (req._parsedArn.service === 's3') {\n message = message + '\\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +\n 'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';\n }\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: message\n });\n }\n\n if (useFipsEndpoint && !allowFipsEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'ARN endpoint is not compatible with FIPS region'\n });\n }\n\n if (regionFromArn.indexOf('fips') >= 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'FIPS region not allowed in ARN'\n });\n }\n\n if (!useArnRegion && regionFromArn !== clientRegion) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region conflicts with access point region'\n });\n } else if (\n useArnRegion &&\n regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region and access point region not in same partition'\n });\n }\n\n if (req.service.config.useAccelerateEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'useAccelerateEndpoint config is not supported with access point ARN'\n });\n }\n\n if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Dualstack is not supported with outposts access point ARN'\n });\n }\n },\n\n loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {\n var envName = 'AWS_S3_USE_ARN_REGION';\n var configName = 's3_use_arn_region';\n var useArnRegion = true;\n var originalConfig = req.service._originalConfig || {};\n if (req.service.config.s3UseArnRegion !== undefined) {\n return req.service.config.s3UseArnRegion;\n } else if (originalConfig.s3UseArnRegion !== undefined) {\n useArnRegion = originalConfig.s3UseArnRegion === true;\n } else if (AWS.util.isNode()) {\n //load from environmental variable AWS_USE_ARN_REGION\n if (process.env[envName]) {\n var value = process.env[envName].trim().toLowerCase();\n if (['false', 'true'].indexOf(value) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: envName + ' only accepts true or false. Got ' + process.env[envName],\n retryable: false\n });\n }\n useArnRegion = value === 'true';\n } else { //load from shared config property use_arn_region\n var profiles = {};\n var profile = {};\n try {\n profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {}\n if (profile[configName]) {\n if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: configName + ' only accepts true or false. Got ' + profile[configName],\n retryable: false\n });\n }\n useArnRegion = profile[configName].trim().toLowerCase() === 'true';\n }\n }\n }\n req.service.config.s3UseArnRegion = useArnRegion;\n return useArnRegion;\n },\n\n /**\n * Validations before URI can be populated\n */\n validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {\n if (req.service._originalConfig && req.service._originalConfig.endpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Custom endpoint is not compatible with access point ARN'\n });\n }\n\n if (req.service.config.s3ForcePathStyle) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Cannot construct path-style endpoint with access point'\n });\n }\n },\n\n /**\n * Returns true if the bucket name is DNS compatible. Buckets created\n * outside of the classic region MUST be DNS compatible.\n *\n * @api private\n */\n dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {\n var b = bucketName;\n var domain = new RegExp(/^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/);\n var ipAddress = new RegExp(/(\\d+\\.){3}\\d+/);\n var dots = new RegExp(/\\.\\./);\n return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;\n },\n};\n\n/**\n * @api private\n */\nmodule.exports = s3util;\n","var AWS = require('../core');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\n\nAWS.util.update(AWS.STS.prototype, {\n /**\n * @overload credentialsFrom(data, credentials = null)\n * Creates a credentials object from STS response data containing\n * credentials information. Useful for quickly setting AWS credentials.\n *\n * @note This is a low-level utility function. If you want to load temporary\n * credentials into your process for subsequent requests to AWS resources,\n * you should use {AWS.TemporaryCredentials} instead.\n * @param data [map] data retrieved from a call to {getFederatedToken},\n * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.\n * @param credentials [AWS.Credentials] an optional credentials object to\n * fill instead of creating a new object. Useful when modifying an\n * existing credentials object from a refresh call.\n * @return [AWS.TemporaryCredentials] the set of temporary credentials\n * loaded from a raw STS operation response.\n * @example Using credentialsFrom to load global AWS credentials\n * var sts = new AWS.STS();\n * sts.getSessionToken(function (err, data) {\n * if (err) console.log(\"Error getting credentials\");\n * else {\n * AWS.config.credentials = sts.credentialsFrom(data);\n * }\n * });\n * @see AWS.TemporaryCredentials\n */\n credentialsFrom: function credentialsFrom(data, credentials) {\n if (!data) return null;\n if (!credentials) credentials = new AWS.TemporaryCredentials();\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretAccessKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n return credentials;\n },\n\n assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\n },\n\n assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validate', this.optInRegionalEndpoint, true);\n },\n\n /**\n * @api private\n */\n optInRegionalEndpoint: function optInRegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: ENV_REGIONAL_ENDPOINT_ENABLED,\n sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,\n clientConfig: 'stsRegionalEndpoints'\n });\n if (\n config.stsRegionalEndpoints === 'regional' &&\n service.isGlobalEndpoint\n ) {\n //client will throw if region is not supplied; request will be signed with specified region\n if (!config.region) {\n throw AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n }\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nAWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {\n constructor: function Bearer(request) {\n AWS.Signers.RequestSigner.call(this, request);\n },\n\n addAuthorization: function addAuthorization(token) {\n this.request.headers['Authorization'] = 'Bearer ' + token.token;\n }\n});\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n case 'bearer': return AWS.Signers.Bearer;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\nrequire('./bearer');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","function AcceptorStateMachine(states, state) {\n this.currentState = state || null;\n this.states = states || {};\n}\n\nAcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {\n if (typeof finalState === 'function') {\n inputError = bindObject; bindObject = done;\n done = finalState; finalState = null;\n }\n\n var self = this;\n var state = self.states[self.currentState];\n state.fn.call(bindObject || self, inputError, function(err) {\n if (err) {\n if (state.fail) self.currentState = state.fail;\n else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;\n else return done ? done.call(bindObject) : null;\n }\n if (self.currentState === finalState) {\n return done ? done.call(bindObject, err) : null;\n }\n\n self.runTo(finalState, done, bindObject, err);\n });\n};\n\nAcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {\n if (typeof acceptState === 'function') {\n fn = acceptState; acceptState = null; failState = null;\n } else if (typeof failState === 'function') {\n fn = failState; failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = { accept: acceptState, fail: failState, fn: fn };\n return this;\n};\n\n/**\n * @api private\n */\nmodule.exports = AcceptorStateMachine;\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0].trim(); // remove comments and trim\n var isSection = line[0] === '[' && line[line.length - 1] === ']';\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var indexOfEqualsSign = line.indexOf('=');\n var start = 0;\n var end = line.length - 1;\n var isAssignment =\n indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n\n if (isAssignment) {\n var name = line.substring(0, indexOfEqualsSign).trim();\n var value = line.substring(indexOfEqualsSign + 1).trim();\n\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) {\n err.originalError = originalError;\n }\n\n\n for (var key in options || {}) {\n if (key[0] === '[' && key[key.length - 1] === ']') {\n key = key.slice(1, -1);\n if (key === 'code' || key === 'message') {\n continue;\n }\n err['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(err, key, {\n value: err[key] || (options && options[key]) || (originalError && originalError[key]),\n enumerable: false,\n writable: true\n });\n }\n }\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nvar _default = bytesToUuid;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) W[t] = M[i][t];\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : (0, _bytesToUuid.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n var generateUUID = function (value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedListNode = /** @class */ (function () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n return LinkedListNode;\n}());\nvar LRUCache = /** @class */ (function () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n this.sizeLimit = size;\n }\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function () {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n }\n else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n this.headerNode = node;\n this.size++;\n };\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n var node = this.tailNode;\n var prevNode = node.prev;\n if (prevNode) {\n prevNode.next = undefined;\n }\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\n LRUCache.prototype.get = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n this.prependToList(node);\n return node.value;\n }\n };\n LRUCache.prototype.remove = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\n }\n else if (this.size === this.sizeLimit) {\n var tailNode = this.removeFromTail();\n var key_1 = tailNode.key;\n delete this.nodeMap[key_1];\n }\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n return LRUCache;\n}());\nexports.LRUCache = LRUCache;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\nvar formatDistance = function formatDistance(token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n return result;\n};\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\nvar formatRelative = function formatRelative(token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, options) {\n var context = options !== null && options !== void 0 && options.context ? String(options.context) : 'standalone';\n var valuesArray;\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options !== null && options !== void 0 && options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n var _width = options !== null && options !== void 0 && options.width ? String(options.width) : args.defaultWidth;\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex;\n // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n return valuesArray[index];\n };\n}","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n if (!matchResult) {\n return null;\n }\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n return undefined;\n}\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n return undefined;\n}","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","import defaultLocale from \"../../locale/en-US/index.js\";\nexport default defaultLocale;","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n};\n\n// Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\nvar ordinalNumber = function ordinalNumber(dirtyNumber, _options) {\n var number = Number(dirtyNumber);\n\n // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n case 2:\n return number + 'nd';\n case 3:\n return number + 'rd';\n }\n }\n return number + 'th';\n};\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function argumentCallback(quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function valueCallback(value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function valueCallback(index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","var defaultOptions = {};\nexport function getDefaultOptions() {\n return defaultOptions;\n}\nexport function setDefaultOptions(newOptions) {\n defaultOptions = newOptions;\n}","var dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n var dateTimeFormat;\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime();\n\n // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n var year = getUTCWeekYear(dirtyDate, options);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, options);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function getUTCWeekYear(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$firstWeekCon, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var defaultOptions = getDefaultOptions();\n var firstWeekContainsDate = toInteger((_ref = (_ref2 = (_ref3 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref !== void 0 ? _ref : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, options);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, options);\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\"));\n }\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function startOfUTCWeek(dirtyDate, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(1, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n var number = Number(dirtyNumber);\n if (isNaN(number)) {\n return number;\n }\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n date.setDate(date.getDate() + amount);\n return date;\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || _typeof(value) === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n while (output.length < targetLength) {\n output = '0' + output;\n }\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\nvar formatters = {\n // Year\n y: function y(date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function M(date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function d(date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function a(date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n case 'aaa':\n return dayPeriodEnumValue;\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function h(date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function H(date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function m(date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function s(date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function S(date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function G(date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function y(date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear();\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function Y(date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options);\n // Returns 1 for 1 BC (which is year 0 in JavaScript)\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear;\n\n // Two digit year\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n }\n\n // Ordinal number\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n }\n\n // Padding\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function R(date, token) {\n var isoWeekYear = getUTCISOWeekYear(date);\n\n // Padding\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function u(date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function Q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function q(date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function M(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function L(date, token, localize) {\n var month = date.getUTCMonth();\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function w(date, token, localize, options) {\n var week = getUTCWeek(date, options);\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function I(date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function d(date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function D(date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function E(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function e(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function c(date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function i(date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function a(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function b(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function B(date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function h(date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function H(date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function K(date, token, localize) {\n var hours = date.getUTCHours() % 12;\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function k(date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function m(date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n return lightFormatters.m(date, token);\n },\n // Second\n s: function s(date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function S(date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function X(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n if (timezoneOffset === 0) {\n return 'Z';\n }\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function x(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function O(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function z(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function t(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function T(date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n if (minutes === 0) {\n return sign + String(hours);\n }\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n return formatTimezone(offset, dirtyDelimiter);\n}\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\nexport default formatters;","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import isValid from \"../isValid/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * const result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * const result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * const result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n var originalDate = toDate(dirtyDate);\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n var firstCharacter = substring[0];\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n var formatter = formatters[firstCharacter];\n if (formatter) {\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, String(dirtyDate));\n }\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n return substring;\n }).join('');\n return result;\n}\nfunction cleanEscapedString(input) {\n var matched = input.match(escapedStringRegExp);\n if (!matched) {\n return input;\n }\n return matched[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * const result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nfunction _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var _n = 0,\n F = function F() {};\n return {\n s: F,\n n: function n() {\n return _n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[_n++]\n };\n },\n e: function e(r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function s() {\n t = t.call(r);\n },\n n: function n() {\n var r = t.next();\n return a = r.done, r;\n },\n e: function e(r) {\n u = !0, o = r;\n },\n f: function f() {\n try {\n a || null == t[\"return\"] || t[\"return\"]();\n } finally {\n if (u) throw o;\n }\n }\n };\n}\nexport { _createForOfIteratorHelper as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","export default function assign(target, object) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n for (var property in object) {\n if (Object.prototype.hasOwnProperty.call(object, property)) {\n ;\n target[property] = object[property];\n }\n }\n return target;\n}","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nexport { _inherits as default };","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport possibleConstructorReturn from \"./possibleConstructorReturn.js\";\nfunction _createSuper(t) {\n var r = isNativeReflectConstruct();\n return function () {\n var e,\n o = getPrototypeOf(t);\n if (r) {\n var s = getPrototypeOf(this).constructor;\n e = Reflect.construct(o, arguments, s);\n } else e = o.apply(this, arguments);\n return possibleConstructorReturn(this, e);\n };\n}\nexport { _createSuper as default };","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nexport { _possibleConstructorReturn as default };","function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nexport { _classCallCheck as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nexport { _createClass as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar TIMEZONE_UNIT_PRIORITY = 10;\nexport var Setter = /*#__PURE__*/function () {\n function Setter() {\n _classCallCheck(this, Setter);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", 0);\n }\n _createClass(Setter, [{\n key: \"validate\",\n value: function validate(_utcDate, _options) {\n return true;\n }\n }]);\n return Setter;\n}();\nexport var ValueSetter = /*#__PURE__*/function (_Setter) {\n _inherits(ValueSetter, _Setter);\n var _super = _createSuper(ValueSetter);\n function ValueSetter(value, validateValue, setValue, priority, subPriority) {\n var _this;\n _classCallCheck(this, ValueSetter);\n _this = _super.call(this);\n _this.value = value;\n _this.validateValue = validateValue;\n _this.setValue = setValue;\n _this.priority = priority;\n if (subPriority) {\n _this.subPriority = subPriority;\n }\n return _this;\n }\n _createClass(ValueSetter, [{\n key: \"validate\",\n value: function validate(utcDate, options) {\n return this.validateValue(utcDate, this.value, options);\n }\n }, {\n key: \"set\",\n value: function set(utcDate, flags, options) {\n return this.setValue(utcDate, flags, this.value, options);\n }\n }]);\n return ValueSetter;\n}(Setter);\nexport var DateToSystemTimezoneSetter = /*#__PURE__*/function (_Setter2) {\n _inherits(DateToSystemTimezoneSetter, _Setter2);\n var _super2 = _createSuper(DateToSystemTimezoneSetter);\n function DateToSystemTimezoneSetter() {\n var _this2;\n _classCallCheck(this, DateToSystemTimezoneSetter);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _super2.call.apply(_super2, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this2), \"priority\", TIMEZONE_UNIT_PRIORITY);\n _defineProperty(_assertThisInitialized(_this2), \"subPriority\", -1);\n return _this2;\n }\n _createClass(DateToSystemTimezoneSetter, [{\n key: \"set\",\n value: function set(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n }\n }]);\n return DateToSystemTimezoneSetter;\n}(Setter);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { ValueSetter } from \"./Setter.js\";\nexport var Parser = /*#__PURE__*/function () {\n function Parser() {\n _classCallCheck(this, Parser);\n _defineProperty(this, \"incompatibleTokens\", void 0);\n _defineProperty(this, \"priority\", void 0);\n _defineProperty(this, \"subPriority\", void 0);\n }\n _createClass(Parser, [{\n key: \"run\",\n value: function run(dateString, token, match, options) {\n var result = this.parse(dateString, token, match, options);\n if (!result) {\n return null;\n }\n return {\n setter: new ValueSetter(result.value, this.validate, this.set, this.priority, this.subPriority),\n rest: result.rest\n };\n }\n }, {\n key: \"validate\",\n value: function validate(_utcDate, _value, _options) {\n return true;\n }\n }]);\n return Parser;\n}();","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nexport var EraParser = /*#__PURE__*/function (_Parser) {\n _inherits(EraParser, _Parser);\n var _super = _createSuper(EraParser);\n function EraParser() {\n var _this;\n _classCallCheck(this, EraParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 140);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['R', 'u', 't', 'T']);\n return _this;\n }\n _createClass(EraParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n // A, B\n case 'GGGGG':\n return match.era(dateString, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n case 'GGGG':\n default:\n return match.era(dateString, {\n width: 'wide'\n }) || match.era(dateString, {\n width: 'abbreviated'\n }) || match.era(dateString, {\n width: 'narrow'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return EraParser;\n}(Parser);","export var numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n};\n\nexport var timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n\n/**\n * Days in 1 year\n * One years equals 365.2425 days according to the formula:\n *\n * > Leap year occures every 4 years, except for years that are divisable by 100 and not divisable by 400.\n * > 1 mean year = (365+1/4-1/100+1/400) days = 365.2425 days\n *\n * @name daysInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInYear = 365.2425;\n\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInMinute = 60000;\n\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInHour = 3600000;\n\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\nexport var millisecondsInSecond = 1000;\n\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\nexport var minTime = -maxTime;\n\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var minutesInHour = 60;\n\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInQuarter = 3;\n\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var monthsInYear = 12;\n\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var quartersInYear = 4;\n\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInHour = 3600;\n\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMinute = 60;\n\n/**\n * Seconds in 1 day\n *\n * @name secondsInDay\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInDay = secondsInHour * 24;\n\n/**\n * Seconds in 1 week\n *\n * @name secondsInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInWeek = secondsInDay * 7;\n\n/**\n * Seconds in 1 year\n *\n * @name secondsInYear\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInYear = secondsInDay * daysInYear;\n\n/**\n * Seconds in 1 month\n *\n * @name secondsInMonth\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInMonth = secondsInYear / 12;\n\n/**\n * Seconds in 1 quarter\n *\n * @name secondsInQuarter\n * @constant\n * @type {number}\n * @default\n */\nexport var secondsInQuarter = secondsInMonth * 3;","import { millisecondsInHour, millisecondsInMinute, millisecondsInSecond } from \"../../constants/index.js\";\nimport { numericPatterns } from \"./constants.js\";\nexport function mapValue(parseFnResult, mapFn) {\n if (!parseFnResult) {\n return parseFnResult;\n }\n return {\n value: mapFn(parseFnResult.value),\n rest: parseFnResult.rest\n };\n}\nexport function parseNumericPattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n return {\n value: parseInt(matchResult[0], 10),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseTimezonePattern(pattern, dateString) {\n var matchResult = dateString.match(pattern);\n if (!matchResult) {\n return null;\n }\n\n // Input is 'Z'\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: dateString.slice(1)\n };\n }\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * millisecondsInSecond),\n rest: dateString.slice(matchResult[0].length)\n };\n}\nexport function parseAnyDigitsSigned(dateString) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, dateString);\n}\nexport function parseNDigits(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, dateString);\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function parseNDigitsSigned(n, dateString) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, dateString);\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, dateString);\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, dateString);\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, dateString);\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), dateString);\n }\n}\nexport function dayPeriodEnumToHours(dayPeriod) {\n switch (dayPeriod) {\n case 'morning':\n return 4;\n case 'evening':\n return 17;\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\nexport function normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0;\n // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n return isCommonEra ? result : 1 - result;\n}\nexport function isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, normalizeTwoDigitYear, parseNDigits } from \"../utils.js\";\n// From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n// | Year | y | yy | yyy | yyyy | yyyyy |\n// |----------|-------|----|-------|-------|-------|\n// | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n// | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n// | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n// | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n// | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\nexport var YearParser = /*#__PURE__*/function (_Parser) {\n _inherits(YearParser, _Parser);\n var _super = _createSuper(YearParser);\n function YearParser() {\n var _this;\n _classCallCheck(this, YearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(YearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n switch (token) {\n case 'y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n var currentYear = date.getUTCFullYear();\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return YearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits, normalizeTwoDigitYear, mapValue } from \"../utils.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\n// Local week-numbering year\nexport var LocalWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekYearParser, _Parser);\n var _super = _createSuper(LocalWeekYearParser);\n function LocalWeekYearParser() {\n var _this;\n _classCallCheck(this, LocalWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n switch (token) {\n case 'Y':\n return mapValue(parseNDigits(4, dateString), valueCallback);\n case 'Yo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'year'\n }), valueCallback);\n default:\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value.isTwoDigitYear || value.year > 0;\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n }]);\n return LocalWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week-numbering year\nexport var ISOWeekYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekYearParser, _Parser);\n var _super = _createSuper(ISOWeekYearParser);\n function ISOWeekYearParser() {\n var _this;\n _classCallCheck(this, ISOWeekYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'R') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n }\n }]);\n return ISOWeekYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigitsSigned } from \"../utils.js\";\nexport var ExtendedYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(ExtendedYearParser, _Parser);\n var _super = _createSuper(ExtendedYearParser);\n function ExtendedYearParser() {\n var _this;\n _classCallCheck(this, ExtendedYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 130);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ExtendedYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n if (token === 'u') {\n return parseNDigitsSigned(4, dateString);\n }\n return parseNDigitsSigned(token.length, dateString);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ExtendedYearParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var QuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(QuarterParser, _Parser);\n var _super = _createSuper(QuarterParser);\n function QuarterParser() {\n var _this;\n _classCallCheck(this, QuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(QuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'Qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'QQQ':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'QQQQQ':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n case 'QQQQ':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return QuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseNDigits } from \"../utils.js\";\nexport var StandAloneQuarterParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneQuarterParser, _Parser);\n var _super = _createSuper(StandAloneQuarterParser);\n function StandAloneQuarterParser() {\n var _this;\n _classCallCheck(this, StandAloneQuarterParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 120);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneQuarterParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, dateString);\n // 1st, 2nd, 3rd, 4th\n case 'qo':\n return match.ordinalNumber(dateString, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n case 'qqq':\n return match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n case 'qqqqq':\n return match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n case 'qqqq':\n default:\n return match.quarter(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 4;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneQuarterParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { mapValue, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nexport var MonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(MonthParser, _Parser);\n var _super = _createSuper(MonthParser);\n function MonthParser() {\n var _this;\n _classCallCheck(this, MonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n return _this;\n }\n _createClass(MonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'MM':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Mo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'MMM':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n case 'MMMMM':\n return match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n case 'MMMM':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return MonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, mapValue } from \"../utils.js\";\nexport var StandAloneMonthParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneMonthParser, _Parser);\n var _super = _createSuper(StandAloneMonthParser);\n function StandAloneMonthParser() {\n var _this;\n _classCallCheck(this, StandAloneMonthParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 110);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneMonthParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n return value - 1;\n };\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return mapValue(parseNumericPattern(numericPatterns.month, dateString), valueCallback);\n // 01, 02, ..., 12\n case 'LL':\n return mapValue(parseNDigits(2, dateString), valueCallback);\n // 1st, 2nd, ..., 12th\n case 'Lo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'month'\n }), valueCallback);\n // Jan, Feb, ..., Dec\n case 'LLL':\n return match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n case 'LLLLL':\n return match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n case 'LLLL':\n default:\n return match.month(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneMonthParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\"; // Local week of year\nexport var LocalWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalWeekParser, _Parser);\n var _super = _createSuper(LocalWeekParser);\n function LocalWeekParser() {\n var _this;\n _classCallCheck(this, LocalWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']);\n return _this;\n }\n _createClass(LocalWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'wo':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n }\n }]);\n return LocalWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\"; // ISO week of year\nexport var ISOWeekParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOWeekParser, _Parser);\n var _super = _createSuper(ISOWeekParser);\n function ISOWeekParser() {\n var _this;\n _classCallCheck(this, ISOWeekParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 100);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISOWeekParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, dateString);\n case 'Io':\n return match.ordinalNumber(dateString, {\n unit: 'week'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 53;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value));\n }\n }]);\n return ISOWeekParser;\n}(Parser);","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { isLeapYearIndex, parseNDigits, parseNumericPattern } from \"../utils.js\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n// Day of the month\nexport var DateParser = /*#__PURE__*/function (_Parser) {\n _inherits(DateParser, _Parser);\n var _super = _createSuper(DateParser);\n function DateParser() {\n var _this;\n _classCallCheck(this, DateParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subPriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DateParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, dateString);\n case 'do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DateParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits, isLeapYearIndex } from \"../utils.js\";\nexport var DayOfYearParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayOfYearParser, _Parser);\n var _super = _createSuper(DayOfYearParser);\n function DayOfYearParser() {\n var _this;\n _classCallCheck(this, DayOfYearParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"subpriority\", 1);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayOfYearParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, dateString);\n case 'Do':\n return match.ordinalNumber(dateString, {\n unit: 'date'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(date, value) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayOfYearParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nimport { getDefaultOptions } from \"../defaultOptions/index.js\";\nexport default function setUTCDay(dirtyDate, dirtyDay, options) {\n var _ref, _ref2, _ref3, _options$weekStartsOn, _options$locale, _options$locale$optio, _defaultOptions$local, _defaultOptions$local2;\n requiredArgs(2, arguments);\n var defaultOptions = getDefaultOptions();\n var weekStartsOn = toInteger((_ref = (_ref2 = (_ref3 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale = options.locale) === null || _options$locale === void 0 ? void 0 : (_options$locale$optio = _options$locale.options) === null || _options$locale$optio === void 0 ? void 0 : _options$locale$optio.weekStartsOn) !== null && _ref3 !== void 0 ? _ref3 : defaultOptions.weekStartsOn) !== null && _ref2 !== void 0 ? _ref2 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.weekStartsOn) !== null && _ref !== void 0 ? _ref : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Day of week\nexport var DayParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayParser, _Parser);\n var _super = _createSuper(DayParser);\n function DayParser() {\n var _this;\n _classCallCheck(this, DayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['D', 'i', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(DayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'EEEEE':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'EEEEEE':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'EEEE':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return DayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Local day of week\nexport var LocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(LocalDayParser, _Parser);\n var _super = _createSuper(LocalDayParser);\n function LocalDayParser() {\n var _this;\n _classCallCheck(this, LocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']);\n return _this;\n }\n _createClass(LocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'eo':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'eee':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n case 'eeeee':\n return match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n case 'eeeeee':\n return match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n case 'eeee':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return LocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\"; // Stand-alone local day of week\nexport var StandAloneLocalDayParser = /*#__PURE__*/function (_Parser) {\n _inherits(StandAloneLocalDayParser, _Parser);\n var _super = _createSuper(StandAloneLocalDayParser);\n function StandAloneLocalDayParser() {\n var _this;\n _classCallCheck(this, StandAloneLocalDayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']);\n return _this;\n }\n _createClass(StandAloneLocalDayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match, options) {\n var valueCallback = function valueCallback(value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n // 3rd\n case 'co':\n return mapValue(match.ordinalNumber(dateString, {\n unit: 'day'\n }), valueCallback);\n // Tue\n case 'ccc':\n return match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n case 'ccccc':\n return match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n case 'cccccc':\n return match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n case 'cccc':\n default:\n return match.day(dateString, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'short',\n context: 'standalone'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 6;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return StandAloneLocalDayParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\"; // ISO day of week\nexport var ISODayParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISODayParser, _Parser);\n var _super = _createSuper(ISODayParser);\n function ISODayParser() {\n var _this;\n _classCallCheck(this, ISODayParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 90);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']);\n return _this;\n }\n _createClass(ISODayParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n var valueCallback = function valueCallback(value) {\n if (value === 0) {\n return 7;\n }\n return value;\n };\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, dateString);\n // 2nd\n case 'io':\n return match.ordinalNumber(dateString, {\n unit: 'day'\n });\n // Tue\n case 'iii':\n return mapValue(match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // T\n case 'iiiii':\n return mapValue(match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tu\n case 'iiiiii':\n return mapValue(match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n // Tuesday\n case 'iiii':\n default:\n return mapValue(match.day(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'short',\n context: 'formatting'\n }) || match.day(dateString, {\n width: 'narrow',\n context: 'formatting'\n }), valueCallback);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 7;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date = setUTCISODay(date, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n }]);\n return ISODayParser;\n}(Parser);","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\";\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n if (day % 7 === 0) {\n day = day - 7;\n }\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMParser, _Parser);\n var _super = _createSuper(AMPMParser);\n function AMPMParser() {\n var _this;\n _classCallCheck(this, AMPMParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['b', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaaa':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'aaaa':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\";\nexport var AMPMMidnightParser = /*#__PURE__*/function (_Parser) {\n _inherits(AMPMMidnightParser, _Parser);\n var _super = _createSuper(AMPMMidnightParser);\n function AMPMMidnightParser() {\n var _this;\n _classCallCheck(this, AMPMMidnightParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'B', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(AMPMMidnightParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbbb':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'bbbb':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return AMPMMidnightParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { dayPeriodEnumToHours } from \"../utils.js\"; // in the morning, in the afternoon, in the evening, at night\nexport var DayPeriodParser = /*#__PURE__*/function (_Parser) {\n _inherits(DayPeriodParser, _Parser);\n var _super = _createSuper(DayPeriodParser);\n function DayPeriodParser() {\n var _this;\n _classCallCheck(this, DayPeriodParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 80);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 't', 'T']);\n return _this;\n }\n _createClass(DayPeriodParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBBB':\n return match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n case 'BBBB':\n default:\n return match.dayPeriod(dateString, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(dateString, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n }\n }]);\n return DayPeriodParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1to12Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1to12Parser, _Parser);\n var _super = _createSuper(Hour1to12Parser);\n function Hour1to12Parser() {\n var _this;\n _classCallCheck(this, Hour1to12Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['H', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour1to12Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, dateString);\n case 'ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 12;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour1to12Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0to23Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0to23Parser, _Parser);\n var _super = _createSuper(Hour0to23Parser);\n function Hour0to23Parser() {\n var _this;\n _classCallCheck(this, Hour0to23Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'K', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0to23Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, dateString);\n case 'Ho':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 23;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n }\n }]);\n return Hour0to23Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour0To11Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour0To11Parser, _Parser);\n var _super = _createSuper(Hour0To11Parser);\n function Hour0To11Parser() {\n var _this;\n _classCallCheck(this, Hour0To11Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['h', 'H', 'k', 't', 'T']);\n return _this;\n }\n _createClass(Hour0To11Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, dateString);\n case 'Ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 11;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var isPM = date.getUTCHours() >= 12;\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n return date;\n }\n }]);\n return Hour0To11Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var Hour1To24Parser = /*#__PURE__*/function (_Parser) {\n _inherits(Hour1To24Parser, _Parser);\n var _super = _createSuper(Hour1To24Parser);\n function Hour1To24Parser() {\n var _this;\n _classCallCheck(this, Hour1To24Parser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 70);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['a', 'b', 'h', 'H', 'K', 't', 'T']);\n return _this;\n }\n _createClass(Hour1To24Parser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, dateString);\n case 'ko':\n return match.ordinalNumber(dateString, {\n unit: 'hour'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 1 && value <= 24;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n }\n }]);\n return Hour1To24Parser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var MinuteParser = /*#__PURE__*/function (_Parser) {\n _inherits(MinuteParser, _Parser);\n var _super = _createSuper(MinuteParser);\n function MinuteParser() {\n var _this;\n _classCallCheck(this, MinuteParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 60);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(MinuteParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, dateString);\n case 'mo':\n return match.ordinalNumber(dateString, {\n unit: 'minute'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n }\n }]);\n return MinuteParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { numericPatterns } from \"../constants.js\";\nimport { parseNumericPattern, parseNDigits } from \"../utils.js\";\nexport var SecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(SecondParser, _Parser);\n var _super = _createSuper(SecondParser);\n function SecondParser() {\n var _this;\n _classCallCheck(this, SecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 50);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(SecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token, match) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, dateString);\n case 'so':\n return match.ordinalNumber(dateString, {\n unit: 'second'\n });\n default:\n return parseNDigits(token.length, dateString);\n }\n }\n }, {\n key: \"validate\",\n value: function validate(_date, value) {\n return value >= 0 && value <= 59;\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCSeconds(value, 0);\n return date;\n }\n }]);\n return SecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { mapValue, parseNDigits } from \"../utils.js\";\nexport var FractionOfSecondParser = /*#__PURE__*/function (_Parser) {\n _inherits(FractionOfSecondParser, _Parser);\n var _super = _createSuper(FractionOfSecondParser);\n function FractionOfSecondParser() {\n var _this;\n _classCallCheck(this, FractionOfSecondParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 30);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T']);\n return _this;\n }\n _createClass(FractionOfSecondParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n var valueCallback = function valueCallback(value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n return mapValue(parseNDigits(token.length, dateString), valueCallback);\n }\n }, {\n key: \"set\",\n value: function set(date, _flags, value) {\n date.setUTCMilliseconds(value);\n return date;\n }\n }]);\n return FractionOfSecondParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601. +00:00 is `'Z'`)\nexport var ISOTimezoneWithZParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneWithZParser, _Parser);\n var _super = _createSuper(ISOTimezoneWithZParser);\n function ISOTimezoneWithZParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneWithZParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'x']);\n return _this;\n }\n _createClass(ISOTimezoneWithZParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneWithZParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { timezonePatterns } from \"../constants.js\";\nimport { parseTimezonePattern } from \"../utils.js\"; // Timezone (ISO-8601)\nexport var ISOTimezoneParser = /*#__PURE__*/function (_Parser) {\n _inherits(ISOTimezoneParser, _Parser);\n var _super = _createSuper(ISOTimezoneParser);\n function ISOTimezoneParser() {\n var _this;\n _classCallCheck(this, ISOTimezoneParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 10);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", ['t', 'T', 'X']);\n return _this;\n }\n _createClass(ISOTimezoneParser, [{\n key: \"parse\",\n value: function parse(dateString, token) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, dateString);\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, dateString);\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, dateString);\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, dateString);\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, dateString);\n }\n }\n }, {\n key: \"set\",\n value: function set(date, flags, value) {\n if (flags.timestampIsSet) {\n return date;\n }\n return new Date(date.getTime() - value);\n }\n }]);\n return ISOTimezoneParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampSecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampSecondsParser, _Parser);\n var _super = _createSuper(TimestampSecondsParser);\n function TimestampSecondsParser() {\n var _this;\n _classCallCheck(this, TimestampSecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 40);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampSecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampSecondsParser;\n}(Parser);","import _classCallCheck from \"@babel/runtime/helpers/esm/classCallCheck\";\nimport _createClass from \"@babel/runtime/helpers/esm/createClass\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inherits from \"@babel/runtime/helpers/esm/inherits\";\nimport _createSuper from \"@babel/runtime/helpers/esm/createSuper\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport { Parser } from \"../Parser.js\";\nimport { parseAnyDigitsSigned } from \"../utils.js\";\nexport var TimestampMillisecondsParser = /*#__PURE__*/function (_Parser) {\n _inherits(TimestampMillisecondsParser, _Parser);\n var _super = _createSuper(TimestampMillisecondsParser);\n function TimestampMillisecondsParser() {\n var _this;\n _classCallCheck(this, TimestampMillisecondsParser);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _super.call.apply(_super, [this].concat(args));\n _defineProperty(_assertThisInitialized(_this), \"priority\", 20);\n _defineProperty(_assertThisInitialized(_this), \"incompatibleTokens\", '*');\n return _this;\n }\n _createClass(TimestampMillisecondsParser, [{\n key: \"parse\",\n value: function parse(dateString) {\n return parseAnyDigitsSigned(dateString);\n }\n }, {\n key: \"set\",\n value: function set(_date, _flags, value) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n }\n }]);\n return TimestampMillisecondsParser;\n}(Parser);","import { EraParser } from \"./EraParser.js\";\nimport { YearParser } from \"./YearParser.js\";\nimport { LocalWeekYearParser } from \"./LocalWeekYearParser.js\";\nimport { ISOWeekYearParser } from \"./ISOWeekYearParser.js\";\nimport { ExtendedYearParser } from \"./ExtendedYearParser.js\";\nimport { QuarterParser } from \"./QuarterParser.js\";\nimport { StandAloneQuarterParser } from \"./StandAloneQuarterParser.js\";\nimport { MonthParser } from \"./MonthParser.js\";\nimport { StandAloneMonthParser } from \"./StandAloneMonthParser.js\";\nimport { LocalWeekParser } from \"./LocalWeekParser.js\";\nimport { ISOWeekParser } from \"./ISOWeekParser.js\";\nimport { DateParser } from \"./DateParser.js\";\nimport { DayOfYearParser } from \"./DayOfYearParser.js\";\nimport { DayParser } from \"./DayParser.js\";\nimport { LocalDayParser } from \"./LocalDayParser.js\";\nimport { StandAloneLocalDayParser } from \"./StandAloneLocalDayParser.js\";\nimport { ISODayParser } from \"./ISODayParser.js\";\nimport { AMPMParser } from \"./AMPMParser.js\";\nimport { AMPMMidnightParser } from \"./AMPMMidnightParser.js\";\nimport { DayPeriodParser } from \"./DayPeriodParser.js\";\nimport { Hour1to12Parser } from \"./Hour1to12Parser.js\";\nimport { Hour0to23Parser } from \"./Hour0to23Parser.js\";\nimport { Hour0To11Parser } from \"./Hour0To11Parser.js\";\nimport { Hour1To24Parser } from \"./Hour1To24Parser.js\";\nimport { MinuteParser } from \"./MinuteParser.js\";\nimport { SecondParser } from \"./SecondParser.js\";\nimport { FractionOfSecondParser } from \"./FractionOfSecondParser.js\";\nimport { ISOTimezoneWithZParser } from \"./ISOTimezoneWithZParser.js\";\nimport { ISOTimezoneParser } from \"./ISOTimezoneParser.js\";\nimport { TimestampSecondsParser } from \"./TimestampSecondsParser.js\";\nimport { TimestampMillisecondsParser } from \"./TimestampMillisecondsParser.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\nexport var parsers = {\n G: new EraParser(),\n y: new YearParser(),\n Y: new LocalWeekYearParser(),\n R: new ISOWeekYearParser(),\n u: new ExtendedYearParser(),\n Q: new QuarterParser(),\n q: new StandAloneQuarterParser(),\n M: new MonthParser(),\n L: new StandAloneMonthParser(),\n w: new LocalWeekParser(),\n I: new ISOWeekParser(),\n d: new DateParser(),\n D: new DayOfYearParser(),\n E: new DayParser(),\n e: new LocalDayParser(),\n c: new StandAloneLocalDayParser(),\n i: new ISODayParser(),\n a: new AMPMParser(),\n b: new AMPMMidnightParser(),\n B: new DayPeriodParser(),\n h: new Hour1to12Parser(),\n H: new Hour0to23Parser(),\n K: new Hour0To11Parser(),\n k: new Hour1To24Parser(),\n m: new MinuteParser(),\n s: new SecondParser(),\n S: new FractionOfSecondParser(),\n X: new ISOTimezoneWithZParser(),\n x: new ISOTimezoneParser(),\n t: new TimestampSecondsParser(),\n T: new TimestampMillisecondsParser()\n};","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport _createForOfIteratorHelper from \"@babel/runtime/helpers/esm/createForOfIteratorHelper\";\nimport defaultLocale from \"../_lib/defaultLocale/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport { DateToSystemTimezoneSetter } from \"./_lib/Setter.js\";\nimport { parsers } from \"./_lib/parsers/index.js\";\nimport { getDefaultOptions } from \"../_lib/defaultOptions/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g;\n\n// This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://github.com/date-fns/date-fns/blob/master/docs/unicodeTokens.md\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, options) {\n var _ref, _options$locale, _ref2, _ref3, _ref4, _options$firstWeekCon, _options$locale2, _options$locale2$opti, _defaultOptions$local, _defaultOptions$local2, _ref5, _ref6, _ref7, _options$weekStartsOn, _options$locale3, _options$locale3$opti, _defaultOptions$local3, _defaultOptions$local4;\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var defaultOptions = getDefaultOptions();\n var locale = (_ref = (_options$locale = options === null || options === void 0 ? void 0 : options.locale) !== null && _options$locale !== void 0 ? _options$locale : defaultOptions.locale) !== null && _ref !== void 0 ? _ref : defaultLocale;\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n var firstWeekContainsDate = toInteger((_ref2 = (_ref3 = (_ref4 = (_options$firstWeekCon = options === null || options === void 0 ? void 0 : options.firstWeekContainsDate) !== null && _options$firstWeekCon !== void 0 ? _options$firstWeekCon : options === null || options === void 0 ? void 0 : (_options$locale2 = options.locale) === null || _options$locale2 === void 0 ? void 0 : (_options$locale2$opti = _options$locale2.options) === null || _options$locale2$opti === void 0 ? void 0 : _options$locale2$opti.firstWeekContainsDate) !== null && _ref4 !== void 0 ? _ref4 : defaultOptions.firstWeekContainsDate) !== null && _ref3 !== void 0 ? _ref3 : (_defaultOptions$local = defaultOptions.locale) === null || _defaultOptions$local === void 0 ? void 0 : (_defaultOptions$local2 = _defaultOptions$local.options) === null || _defaultOptions$local2 === void 0 ? void 0 : _defaultOptions$local2.firstWeekContainsDate) !== null && _ref2 !== void 0 ? _ref2 : 1);\n\n // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n var weekStartsOn = toInteger((_ref5 = (_ref6 = (_ref7 = (_options$weekStartsOn = options === null || options === void 0 ? void 0 : options.weekStartsOn) !== null && _options$weekStartsOn !== void 0 ? _options$weekStartsOn : options === null || options === void 0 ? void 0 : (_options$locale3 = options.locale) === null || _options$locale3 === void 0 ? void 0 : (_options$locale3$opti = _options$locale3.options) === null || _options$locale3$opti === void 0 ? void 0 : _options$locale3$opti.weekStartsOn) !== null && _ref7 !== void 0 ? _ref7 : defaultOptions.weekStartsOn) !== null && _ref6 !== void 0 ? _ref6 : (_defaultOptions$local3 = defaultOptions.locale) === null || _defaultOptions$local3 === void 0 ? void 0 : (_defaultOptions$local4 = _defaultOptions$local3.options) === null || _defaultOptions$local4 === void 0 ? void 0 : _defaultOptions$local4.weekStartsOn) !== null && _ref5 !== void 0 ? _ref5 : 0);\n\n // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n };\n\n // If timezone isn't specified, it will be set to the system timezone\n var setters = [new DateToSystemTimezoneSetter()];\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n if (firstCharacter in longFormatters) {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong);\n }\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n var _iterator = _createForOfIteratorHelper(tokens),\n _step;\n try {\n var _loop = function _loop() {\n var token = _step.value;\n if (!(options !== null && options !== void 0 && options.useAdditionalWeekYearTokens) && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n if (!(options !== null && options !== void 0 && options.useAdditionalDayOfYearTokens) && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = usedTokens.find(function (usedToken) {\n return incompatibleTokens.includes(usedToken.token) || usedToken.token === firstCharacter;\n });\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length > 0) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.run(dateString, token, locale.match, subFnOptions);\n if (!parseResult) {\n return {\n v: new Date(NaN)\n };\n }\n setters.push(parseResult.setter);\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n // Replace two single quote characters with one single quote character\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n }\n\n // Cut token from string, or, if string doesn't match the token, return Invalid Date\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return {\n v: new Date(NaN)\n };\n }\n }\n };\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ret = _loop();\n if (_typeof(_ret) === \"object\") return _ret.v;\n }\n\n // Check if the remaining input contains something other than whitespace\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n var _iterator2 = _createForOfIteratorHelper(uniquePrioritySetters),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var setter = _step2.value;\n if (!setter.validate(utcDate, subFnOptions)) {\n return new Date(NaN);\n }\n var result = setter.set(utcDate, flags, subFnOptions);\n // Result is tuple (date, flags)\n if (Array.isArray(result)) {\n utcDate = result[0];\n assign(flags, result[1]);\n // Result is date\n } else {\n utcDate = result;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n return utcDate;\n}\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import _typeof from \"@babel/runtime/helpers/esm/typeof\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument);\n\n // Clone the date\n if (argument instanceof Date || _typeof(argument) === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments\");\n // eslint-disable-next-line no-console\n console.warn(new Error().stack);\n }\n return new Date(NaN);\n }\n}","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","function valueOf(obj) {\n return obj.valueOf ? obj.valueOf() : Object.prototype.valueOf.call(obj);\n}\n\nfunction valueEqual(a, b) {\n // Test for strict equality first.\n if (a === b) return true;\n\n // Otherwise, if either of them == null they are not equal.\n if (a == null || b == null) return false;\n\n if (Array.isArray(a)) {\n return (\n Array.isArray(b) &&\n a.length === b.length &&\n a.every(function(item, index) {\n return valueEqual(item, b[index]);\n })\n );\n }\n\n if (typeof a === 'object' || typeof b === 'object') {\n var aValue = valueOf(a);\n var bValue = valueOf(b);\n\n if (aValue !== a || bValue !== b) return valueEqual(aValue, bValue);\n\n return Object.keys(Object.assign({}, a, b)).every(function(key) {\n return valueEqual(a[key], b[key]);\n });\n }\n\n return false;\n}\n\nexport default valueEqual;\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar toStr = Object.prototype.toString;\nvar fnToStr = Function.prototype.toString;\nvar isFnRegex = /^\\s*(?:function)?\\*/;\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = Object.getPrototypeOf;\nvar getGeneratorFunc = function () { // eslint-disable-line consistent-return\n\tif (!hasToStringTag) {\n\t\treturn false;\n\t}\n\ttry {\n\t\treturn Function('return function*() {}')();\n\t} catch (e) {\n\t}\n};\nvar GeneratorFunction;\n\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex.test(fnToStr.call(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr.call(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tif (typeof GeneratorFunction === 'undefined') {\n\t\tvar generatorFunc = getGeneratorFunc();\n\t\tGeneratorFunction = generatorFunc ? getProto(generatorFunc) : false;\n\t}\n\treturn getProto(fn) === GeneratorFunction;\n};\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","(function(exports) {\n \"use strict\";\n\n function isArray(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Array]\";\n } else {\n return false;\n }\n }\n\n function isObject(obj) {\n if (obj !== null) {\n return Object.prototype.toString.call(obj) === \"[object Object]\";\n } else {\n return false;\n }\n }\n\n function strictDeepEqual(first, second) {\n // Check the scalar case first.\n if (first === second) {\n return true;\n }\n\n // Check if they are the same type.\n var firstType = Object.prototype.toString.call(first);\n if (firstType !== Object.prototype.toString.call(second)) {\n return false;\n }\n // We know that first and second have the same type so we can just check the\n // first type from now on.\n if (isArray(first) === true) {\n // Short circuit if they're not the same length;\n if (first.length !== second.length) {\n return false;\n }\n for (var i = 0; i < first.length; i++) {\n if (strictDeepEqual(first[i], second[i]) === false) {\n return false;\n }\n }\n return true;\n }\n if (isObject(first) === true) {\n // An object is equal if it has the same key/value pairs.\n var keysSeen = {};\n for (var key in first) {\n if (hasOwnProperty.call(first, key)) {\n if (strictDeepEqual(first[key], second[key]) === false) {\n return false;\n }\n keysSeen[key] = true;\n }\n }\n // Now check that there aren't any keys in second that weren't\n // in first.\n for (var key2 in second) {\n if (hasOwnProperty.call(second, key2)) {\n if (keysSeen[key2] !== true) {\n return false;\n }\n }\n }\n return true;\n }\n return false;\n }\n\n function isFalse(obj) {\n // From the spec:\n // A false value corresponds to the following values:\n // Empty list\n // Empty object\n // Empty string\n // False boolean\n // null value\n\n // First check the scalar values.\n if (obj === \"\" || obj === false || obj === null) {\n return true;\n } else if (isArray(obj) && obj.length === 0) {\n // Check for an empty array.\n return true;\n } else if (isObject(obj)) {\n // Check for an empty object.\n for (var key in obj) {\n // If there are any keys, then\n // the object is not empty so the object\n // is not false.\n if (obj.hasOwnProperty(key)) {\n return false;\n }\n }\n return true;\n } else {\n return false;\n }\n }\n\n function objValues(obj) {\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n }\n\n function merge(a, b) {\n var merged = {};\n for (var key in a) {\n merged[key] = a[key];\n }\n for (var key2 in b) {\n merged[key2] = b[key2];\n }\n return merged;\n }\n\n var trimLeft;\n if (typeof String.prototype.trimLeft === \"function\") {\n trimLeft = function(str) {\n return str.trimLeft();\n };\n } else {\n trimLeft = function(str) {\n return str.match(/^\\s*(.*)/)[1];\n };\n }\n\n // Type constants used to define functions.\n var TYPE_NUMBER = 0;\n var TYPE_ANY = 1;\n var TYPE_STRING = 2;\n var TYPE_ARRAY = 3;\n var TYPE_OBJECT = 4;\n var TYPE_BOOLEAN = 5;\n var TYPE_EXPREF = 6;\n var TYPE_NULL = 7;\n var TYPE_ARRAY_NUMBER = 8;\n var TYPE_ARRAY_STRING = 9;\n var TYPE_NAME_TABLE = {\n 0: 'number',\n 1: 'any',\n 2: 'string',\n 3: 'array',\n 4: 'object',\n 5: 'boolean',\n 6: 'expression',\n 7: 'null',\n 8: 'Array',\n 9: 'Array'\n };\n\n var TOK_EOF = \"EOF\";\n var TOK_UNQUOTEDIDENTIFIER = \"UnquotedIdentifier\";\n var TOK_QUOTEDIDENTIFIER = \"QuotedIdentifier\";\n var TOK_RBRACKET = \"Rbracket\";\n var TOK_RPAREN = \"Rparen\";\n var TOK_COMMA = \"Comma\";\n var TOK_COLON = \"Colon\";\n var TOK_RBRACE = \"Rbrace\";\n var TOK_NUMBER = \"Number\";\n var TOK_CURRENT = \"Current\";\n var TOK_EXPREF = \"Expref\";\n var TOK_PIPE = \"Pipe\";\n var TOK_OR = \"Or\";\n var TOK_AND = \"And\";\n var TOK_EQ = \"EQ\";\n var TOK_GT = \"GT\";\n var TOK_LT = \"LT\";\n var TOK_GTE = \"GTE\";\n var TOK_LTE = \"LTE\";\n var TOK_NE = \"NE\";\n var TOK_FLATTEN = \"Flatten\";\n var TOK_STAR = \"Star\";\n var TOK_FILTER = \"Filter\";\n var TOK_DOT = \"Dot\";\n var TOK_NOT = \"Not\";\n var TOK_LBRACE = \"Lbrace\";\n var TOK_LBRACKET = \"Lbracket\";\n var TOK_LPAREN= \"Lparen\";\n var TOK_LITERAL= \"Literal\";\n\n // The \"&\", \"[\", \"<\", \">\" tokens\n // are not in basicToken because\n // there are two token variants\n // (\"&&\", \"[?\", \"<=\", \">=\"). This is specially handled\n // below.\n\n var basicTokens = {\n \".\": TOK_DOT,\n \"*\": TOK_STAR,\n \",\": TOK_COMMA,\n \":\": TOK_COLON,\n \"{\": TOK_LBRACE,\n \"}\": TOK_RBRACE,\n \"]\": TOK_RBRACKET,\n \"(\": TOK_LPAREN,\n \")\": TOK_RPAREN,\n \"@\": TOK_CURRENT\n };\n\n var operatorStartToken = {\n \"<\": true,\n \">\": true,\n \"=\": true,\n \"!\": true\n };\n\n var skipChars = {\n \" \": true,\n \"\\t\": true,\n \"\\n\": true\n };\n\n\n function isAlpha(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n ch === \"_\";\n }\n\n function isNum(ch) {\n return (ch >= \"0\" && ch <= \"9\") ||\n ch === \"-\";\n }\n function isAlphaNum(ch) {\n return (ch >= \"a\" && ch <= \"z\") ||\n (ch >= \"A\" && ch <= \"Z\") ||\n (ch >= \"0\" && ch <= \"9\") ||\n ch === \"_\";\n }\n\n function Lexer() {\n }\n Lexer.prototype = {\n tokenize: function(stream) {\n var tokens = [];\n this._current = 0;\n var start;\n var identifier;\n var token;\n while (this._current < stream.length) {\n if (isAlpha(stream[this._current])) {\n start = this._current;\n identifier = this._consumeUnquotedIdentifier(stream);\n tokens.push({type: TOK_UNQUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (basicTokens[stream[this._current]] !== undefined) {\n tokens.push({type: basicTokens[stream[this._current]],\n value: stream[this._current],\n start: this._current});\n this._current++;\n } else if (isNum(stream[this._current])) {\n token = this._consumeNumber(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"[\") {\n // No need to increment this._current. This happens\n // in _consumeLBracket\n token = this._consumeLBracket(stream);\n tokens.push(token);\n } else if (stream[this._current] === \"\\\"\") {\n start = this._current;\n identifier = this._consumeQuotedIdentifier(stream);\n tokens.push({type: TOK_QUOTEDIDENTIFIER,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"'\") {\n start = this._current;\n identifier = this._consumeRawStringLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: identifier,\n start: start});\n } else if (stream[this._current] === \"`\") {\n start = this._current;\n var literal = this._consumeLiteral(stream);\n tokens.push({type: TOK_LITERAL,\n value: literal,\n start: start});\n } else if (operatorStartToken[stream[this._current]] !== undefined) {\n tokens.push(this._consumeOperator(stream));\n } else if (skipChars[stream[this._current]] !== undefined) {\n // Ignore whitespace.\n this._current++;\n } else if (stream[this._current] === \"&\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"&\") {\n this._current++;\n tokens.push({type: TOK_AND, value: \"&&\", start: start});\n } else {\n tokens.push({type: TOK_EXPREF, value: \"&\", start: start});\n }\n } else if (stream[this._current] === \"|\") {\n start = this._current;\n this._current++;\n if (stream[this._current] === \"|\") {\n this._current++;\n tokens.push({type: TOK_OR, value: \"||\", start: start});\n } else {\n tokens.push({type: TOK_PIPE, value: \"|\", start: start});\n }\n } else {\n var error = new Error(\"Unknown character:\" + stream[this._current]);\n error.name = \"LexerError\";\n throw error;\n }\n }\n return tokens;\n },\n\n _consumeUnquotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n while (this._current < stream.length && isAlphaNum(stream[this._current])) {\n this._current++;\n }\n return stream.slice(start, this._current);\n },\n\n _consumeQuotedIdentifier: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"\\\"\" && this._current < maxLength) {\n // You can escape a double quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"\\\"\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n return JSON.parse(stream.slice(start, this._current));\n },\n\n _consumeRawStringLiteral: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (stream[this._current] !== \"'\" && this._current < maxLength) {\n // You can escape a single quote and you can escape an escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"'\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n this._current++;\n var literal = stream.slice(start + 1, this._current - 1);\n return literal.replace(\"\\\\'\", \"'\");\n },\n\n _consumeNumber: function(stream) {\n var start = this._current;\n this._current++;\n var maxLength = stream.length;\n while (isNum(stream[this._current]) && this._current < maxLength) {\n this._current++;\n }\n var value = parseInt(stream.slice(start, this._current));\n return {type: TOK_NUMBER, value: value, start: start};\n },\n\n _consumeLBracket: function(stream) {\n var start = this._current;\n this._current++;\n if (stream[this._current] === \"?\") {\n this._current++;\n return {type: TOK_FILTER, value: \"[?\", start: start};\n } else if (stream[this._current] === \"]\") {\n this._current++;\n return {type: TOK_FLATTEN, value: \"[]\", start: start};\n } else {\n return {type: TOK_LBRACKET, value: \"[\", start: start};\n }\n },\n\n _consumeOperator: function(stream) {\n var start = this._current;\n var startingChar = stream[start];\n this._current++;\n if (startingChar === \"!\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_NE, value: \"!=\", start: start};\n } else {\n return {type: TOK_NOT, value: \"!\", start: start};\n }\n } else if (startingChar === \"<\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_LTE, value: \"<=\", start: start};\n } else {\n return {type: TOK_LT, value: \"<\", start: start};\n }\n } else if (startingChar === \">\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_GTE, value: \">=\", start: start};\n } else {\n return {type: TOK_GT, value: \">\", start: start};\n }\n } else if (startingChar === \"=\") {\n if (stream[this._current] === \"=\") {\n this._current++;\n return {type: TOK_EQ, value: \"==\", start: start};\n }\n }\n },\n\n _consumeLiteral: function(stream) {\n this._current++;\n var start = this._current;\n var maxLength = stream.length;\n var literal;\n while(stream[this._current] !== \"`\" && this._current < maxLength) {\n // You can escape a literal char or you can escape the escape.\n var current = this._current;\n if (stream[current] === \"\\\\\" && (stream[current + 1] === \"\\\\\" ||\n stream[current + 1] === \"`\")) {\n current += 2;\n } else {\n current++;\n }\n this._current = current;\n }\n var literalString = trimLeft(stream.slice(start, this._current));\n literalString = literalString.replace(\"\\\\`\", \"`\");\n if (this._looksLikeJSON(literalString)) {\n literal = JSON.parse(literalString);\n } else {\n // Try to JSON parse it as \"\"\n literal = JSON.parse(\"\\\"\" + literalString + \"\\\"\");\n }\n // +1 gets us to the ending \"`\", +1 to move on to the next char.\n this._current++;\n return literal;\n },\n\n _looksLikeJSON: function(literalString) {\n var startingChars = \"[{\\\"\";\n var jsonLiterals = [\"true\", \"false\", \"null\"];\n var numberLooking = \"-0123456789\";\n\n if (literalString === \"\") {\n return false;\n } else if (startingChars.indexOf(literalString[0]) >= 0) {\n return true;\n } else if (jsonLiterals.indexOf(literalString) >= 0) {\n return true;\n } else if (numberLooking.indexOf(literalString[0]) >= 0) {\n try {\n JSON.parse(literalString);\n return true;\n } catch (ex) {\n return false;\n }\n } else {\n return false;\n }\n }\n };\n\n var bindingPower = {};\n bindingPower[TOK_EOF] = 0;\n bindingPower[TOK_UNQUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_QUOTEDIDENTIFIER] = 0;\n bindingPower[TOK_RBRACKET] = 0;\n bindingPower[TOK_RPAREN] = 0;\n bindingPower[TOK_COMMA] = 0;\n bindingPower[TOK_RBRACE] = 0;\n bindingPower[TOK_NUMBER] = 0;\n bindingPower[TOK_CURRENT] = 0;\n bindingPower[TOK_EXPREF] = 0;\n bindingPower[TOK_PIPE] = 1;\n bindingPower[TOK_OR] = 2;\n bindingPower[TOK_AND] = 3;\n bindingPower[TOK_EQ] = 5;\n bindingPower[TOK_GT] = 5;\n bindingPower[TOK_LT] = 5;\n bindingPower[TOK_GTE] = 5;\n bindingPower[TOK_LTE] = 5;\n bindingPower[TOK_NE] = 5;\n bindingPower[TOK_FLATTEN] = 9;\n bindingPower[TOK_STAR] = 20;\n bindingPower[TOK_FILTER] = 21;\n bindingPower[TOK_DOT] = 40;\n bindingPower[TOK_NOT] = 45;\n bindingPower[TOK_LBRACE] = 50;\n bindingPower[TOK_LBRACKET] = 55;\n bindingPower[TOK_LPAREN] = 60;\n\n function Parser() {\n }\n\n Parser.prototype = {\n parse: function(expression) {\n this._loadTokens(expression);\n this.index = 0;\n var ast = this.expression(0);\n if (this._lookahead(0) !== TOK_EOF) {\n var t = this._lookaheadToken(0);\n var error = new Error(\n \"Unexpected token type: \" + t.type + \", value: \" + t.value);\n error.name = \"ParserError\";\n throw error;\n }\n return ast;\n },\n\n _loadTokens: function(expression) {\n var lexer = new Lexer();\n var tokens = lexer.tokenize(expression);\n tokens.push({type: TOK_EOF, value: \"\", start: expression.length});\n this.tokens = tokens;\n },\n\n expression: function(rbp) {\n var leftToken = this._lookaheadToken(0);\n this._advance();\n var left = this.nud(leftToken);\n var currentToken = this._lookahead(0);\n while (rbp < bindingPower[currentToken]) {\n this._advance();\n left = this.led(currentToken, left);\n currentToken = this._lookahead(0);\n }\n return left;\n },\n\n _lookahead: function(number) {\n return this.tokens[this.index + number].type;\n },\n\n _lookaheadToken: function(number) {\n return this.tokens[this.index + number];\n },\n\n _advance: function() {\n this.index++;\n },\n\n nud: function(token) {\n var left;\n var right;\n var expression;\n switch (token.type) {\n case TOK_LITERAL:\n return {type: \"Literal\", value: token.value};\n case TOK_UNQUOTEDIDENTIFIER:\n return {type: \"Field\", name: token.value};\n case TOK_QUOTEDIDENTIFIER:\n var node = {type: \"Field\", name: token.value};\n if (this._lookahead(0) === TOK_LPAREN) {\n throw new Error(\"Quoted identifier not allowed for function names.\");\n }\n return node;\n case TOK_NOT:\n right = this.expression(bindingPower.Not);\n return {type: \"NotExpression\", children: [right]};\n case TOK_STAR:\n left = {type: \"Identity\"};\n right = null;\n if (this._lookahead(0) === TOK_RBRACKET) {\n // This can happen in a multiselect,\n // [a, b, *]\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Star);\n }\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_FILTER:\n return this.led(token.type, {type: \"Identity\"});\n case TOK_LBRACE:\n return this._parseMultiselectHash();\n case TOK_FLATTEN:\n left = {type: TOK_FLATTEN, children: [{type: \"Identity\"}]};\n right = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [left, right]};\n case TOK_LBRACKET:\n if (this._lookahead(0) === TOK_NUMBER || this._lookahead(0) === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice({type: \"Identity\"}, right);\n } else if (this._lookahead(0) === TOK_STAR &&\n this._lookahead(1) === TOK_RBRACKET) {\n this._advance();\n this._advance();\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\",\n children: [{type: \"Identity\"}, right]};\n }\n return this._parseMultiselectList();\n case TOK_CURRENT:\n return {type: TOK_CURRENT};\n case TOK_EXPREF:\n expression = this.expression(bindingPower.Expref);\n return {type: \"ExpressionReference\", children: [expression]};\n case TOK_LPAREN:\n var args = [];\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n return args[0];\n default:\n this._errorToken(token);\n }\n },\n\n led: function(tokenName, left) {\n var right;\n switch(tokenName) {\n case TOK_DOT:\n var rbp = bindingPower.Dot;\n if (this._lookahead(0) !== TOK_STAR) {\n right = this._parseDotRHS(rbp);\n return {type: \"Subexpression\", children: [left, right]};\n }\n // Creating a projection.\n this._advance();\n right = this._parseProjectionRHS(rbp);\n return {type: \"ValueProjection\", children: [left, right]};\n case TOK_PIPE:\n right = this.expression(bindingPower.Pipe);\n return {type: TOK_PIPE, children: [left, right]};\n case TOK_OR:\n right = this.expression(bindingPower.Or);\n return {type: \"OrExpression\", children: [left, right]};\n case TOK_AND:\n right = this.expression(bindingPower.And);\n return {type: \"AndExpression\", children: [left, right]};\n case TOK_LPAREN:\n var name = left.name;\n var args = [];\n var expression, node;\n while (this._lookahead(0) !== TOK_RPAREN) {\n if (this._lookahead(0) === TOK_CURRENT) {\n expression = {type: TOK_CURRENT};\n this._advance();\n } else {\n expression = this.expression(0);\n }\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n }\n args.push(expression);\n }\n this._match(TOK_RPAREN);\n node = {type: \"Function\", name: name, children: args};\n return node;\n case TOK_FILTER:\n var condition = this.expression(0);\n this._match(TOK_RBRACKET);\n if (this._lookahead(0) === TOK_FLATTEN) {\n right = {type: \"Identity\"};\n } else {\n right = this._parseProjectionRHS(bindingPower.Filter);\n }\n return {type: \"FilterProjection\", children: [left, right, condition]};\n case TOK_FLATTEN:\n var leftNode = {type: TOK_FLATTEN, children: [left]};\n var rightNode = this._parseProjectionRHS(bindingPower.Flatten);\n return {type: \"Projection\", children: [leftNode, rightNode]};\n case TOK_EQ:\n case TOK_NE:\n case TOK_GT:\n case TOK_GTE:\n case TOK_LT:\n case TOK_LTE:\n return this._parseComparator(left, tokenName);\n case TOK_LBRACKET:\n var token = this._lookaheadToken(0);\n if (token.type === TOK_NUMBER || token.type === TOK_COLON) {\n right = this._parseIndexExpression();\n return this._projectIfSlice(left, right);\n }\n this._match(TOK_STAR);\n this._match(TOK_RBRACKET);\n right = this._parseProjectionRHS(bindingPower.Star);\n return {type: \"Projection\", children: [left, right]};\n default:\n this._errorToken(this._lookaheadToken(0));\n }\n },\n\n _match: function(tokenType) {\n if (this._lookahead(0) === tokenType) {\n this._advance();\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Expected \" + tokenType + \", got: \" + t.type);\n error.name = \"ParserError\";\n throw error;\n }\n },\n\n _errorToken: function(token) {\n var error = new Error(\"Invalid token (\" +\n token.type + \"): \\\"\" +\n token.value + \"\\\"\");\n error.name = \"ParserError\";\n throw error;\n },\n\n\n _parseIndexExpression: function() {\n if (this._lookahead(0) === TOK_COLON || this._lookahead(1) === TOK_COLON) {\n return this._parseSliceExpression();\n } else {\n var node = {\n type: \"Index\",\n value: this._lookaheadToken(0).value};\n this._advance();\n this._match(TOK_RBRACKET);\n return node;\n }\n },\n\n _projectIfSlice: function(left, right) {\n var indexExpr = {type: \"IndexExpression\", children: [left, right]};\n if (right.type === \"Slice\") {\n return {\n type: \"Projection\",\n children: [indexExpr, this._parseProjectionRHS(bindingPower.Star)]\n };\n } else {\n return indexExpr;\n }\n },\n\n _parseSliceExpression: function() {\n // [start:end:step] where each part is optional, as well as the last\n // colon.\n var parts = [null, null, null];\n var index = 0;\n var currentToken = this._lookahead(0);\n while (currentToken !== TOK_RBRACKET && index < 3) {\n if (currentToken === TOK_COLON) {\n index++;\n this._advance();\n } else if (currentToken === TOK_NUMBER) {\n parts[index] = this._lookaheadToken(0).value;\n this._advance();\n } else {\n var t = this._lookahead(0);\n var error = new Error(\"Syntax error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"Parsererror\";\n throw error;\n }\n currentToken = this._lookahead(0);\n }\n this._match(TOK_RBRACKET);\n return {\n type: \"Slice\",\n children: parts\n };\n },\n\n _parseComparator: function(left, comparator) {\n var right = this.expression(bindingPower[comparator]);\n return {type: \"Comparator\", name: comparator, children: [left, right]};\n },\n\n _parseDotRHS: function(rbp) {\n var lookahead = this._lookahead(0);\n var exprTokens = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER, TOK_STAR];\n if (exprTokens.indexOf(lookahead) >= 0) {\n return this.expression(rbp);\n } else if (lookahead === TOK_LBRACKET) {\n this._match(TOK_LBRACKET);\n return this._parseMultiselectList();\n } else if (lookahead === TOK_LBRACE) {\n this._match(TOK_LBRACE);\n return this._parseMultiselectHash();\n }\n },\n\n _parseProjectionRHS: function(rbp) {\n var right;\n if (bindingPower[this._lookahead(0)] < 10) {\n right = {type: \"Identity\"};\n } else if (this._lookahead(0) === TOK_LBRACKET) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_FILTER) {\n right = this.expression(rbp);\n } else if (this._lookahead(0) === TOK_DOT) {\n this._match(TOK_DOT);\n right = this._parseDotRHS(rbp);\n } else {\n var t = this._lookaheadToken(0);\n var error = new Error(\"Sytanx error, unexpected token: \" +\n t.value + \"(\" + t.type + \")\");\n error.name = \"ParserError\";\n throw error;\n }\n return right;\n },\n\n _parseMultiselectList: function() {\n var expressions = [];\n while (this._lookahead(0) !== TOK_RBRACKET) {\n var expression = this.expression(0);\n expressions.push(expression);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n if (this._lookahead(0) === TOK_RBRACKET) {\n throw new Error(\"Unexpected token Rbracket\");\n }\n }\n }\n this._match(TOK_RBRACKET);\n return {type: \"MultiSelectList\", children: expressions};\n },\n\n _parseMultiselectHash: function() {\n var pairs = [];\n var identifierTypes = [TOK_UNQUOTEDIDENTIFIER, TOK_QUOTEDIDENTIFIER];\n var keyToken, keyName, value, node;\n for (;;) {\n keyToken = this._lookaheadToken(0);\n if (identifierTypes.indexOf(keyToken.type) < 0) {\n throw new Error(\"Expecting an identifier token, got: \" +\n keyToken.type);\n }\n keyName = keyToken.value;\n this._advance();\n this._match(TOK_COLON);\n value = this.expression(0);\n node = {type: \"KeyValuePair\", name: keyName, value: value};\n pairs.push(node);\n if (this._lookahead(0) === TOK_COMMA) {\n this._match(TOK_COMMA);\n } else if (this._lookahead(0) === TOK_RBRACE) {\n this._match(TOK_RBRACE);\n break;\n }\n }\n return {type: \"MultiSelectHash\", children: pairs};\n }\n };\n\n\n function TreeInterpreter(runtime) {\n this.runtime = runtime;\n }\n\n TreeInterpreter.prototype = {\n search: function(node, value) {\n return this.visit(node, value);\n },\n\n visit: function(node, value) {\n var matched, current, result, first, second, field, left, right, collected, i;\n switch (node.type) {\n case \"Field\":\n if (value !== null && isObject(value)) {\n field = value[node.name];\n if (field === undefined) {\n return null;\n } else {\n return field;\n }\n }\n return null;\n case \"Subexpression\":\n result = this.visit(node.children[0], value);\n for (i = 1; i < node.children.length; i++) {\n result = this.visit(node.children[1], result);\n if (result === null) {\n return null;\n }\n }\n return result;\n case \"IndexExpression\":\n left = this.visit(node.children[0], value);\n right = this.visit(node.children[1], left);\n return right;\n case \"Index\":\n if (!isArray(value)) {\n return null;\n }\n var index = node.value;\n if (index < 0) {\n index = value.length + index;\n }\n result = value[index];\n if (result === undefined) {\n result = null;\n }\n return result;\n case \"Slice\":\n if (!isArray(value)) {\n return null;\n }\n var sliceParams = node.children.slice(0);\n var computed = this.computeSliceParams(value.length, sliceParams);\n var start = computed[0];\n var stop = computed[1];\n var step = computed[2];\n result = [];\n if (step > 0) {\n for (i = start; i < stop; i += step) {\n result.push(value[i]);\n }\n } else {\n for (i = start; i > stop; i += step) {\n result.push(value[i]);\n }\n }\n return result;\n case \"Projection\":\n // Evaluate left child.\n var base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n collected = [];\n for (i = 0; i < base.length; i++) {\n current = this.visit(node.children[1], base[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"ValueProjection\":\n // Evaluate left child.\n base = this.visit(node.children[0], value);\n if (!isObject(base)) {\n return null;\n }\n collected = [];\n var values = objValues(base);\n for (i = 0; i < values.length; i++) {\n current = this.visit(node.children[1], values[i]);\n if (current !== null) {\n collected.push(current);\n }\n }\n return collected;\n case \"FilterProjection\":\n base = this.visit(node.children[0], value);\n if (!isArray(base)) {\n return null;\n }\n var filtered = [];\n var finalResults = [];\n for (i = 0; i < base.length; i++) {\n matched = this.visit(node.children[2], base[i]);\n if (!isFalse(matched)) {\n filtered.push(base[i]);\n }\n }\n for (var j = 0; j < filtered.length; j++) {\n current = this.visit(node.children[1], filtered[j]);\n if (current !== null) {\n finalResults.push(current);\n }\n }\n return finalResults;\n case \"Comparator\":\n first = this.visit(node.children[0], value);\n second = this.visit(node.children[1], value);\n switch(node.name) {\n case TOK_EQ:\n result = strictDeepEqual(first, second);\n break;\n case TOK_NE:\n result = !strictDeepEqual(first, second);\n break;\n case TOK_GT:\n result = first > second;\n break;\n case TOK_GTE:\n result = first >= second;\n break;\n case TOK_LT:\n result = first < second;\n break;\n case TOK_LTE:\n result = first <= second;\n break;\n default:\n throw new Error(\"Unknown comparator: \" + node.name);\n }\n return result;\n case TOK_FLATTEN:\n var original = this.visit(node.children[0], value);\n if (!isArray(original)) {\n return null;\n }\n var merged = [];\n for (i = 0; i < original.length; i++) {\n current = original[i];\n if (isArray(current)) {\n merged.push.apply(merged, current);\n } else {\n merged.push(current);\n }\n }\n return merged;\n case \"Identity\":\n return value;\n case \"MultiSelectList\":\n if (value === null) {\n return null;\n }\n collected = [];\n for (i = 0; i < node.children.length; i++) {\n collected.push(this.visit(node.children[i], value));\n }\n return collected;\n case \"MultiSelectHash\":\n if (value === null) {\n return null;\n }\n collected = {};\n var child;\n for (i = 0; i < node.children.length; i++) {\n child = node.children[i];\n collected[child.name] = this.visit(child.value, value);\n }\n return collected;\n case \"OrExpression\":\n matched = this.visit(node.children[0], value);\n if (isFalse(matched)) {\n matched = this.visit(node.children[1], value);\n }\n return matched;\n case \"AndExpression\":\n first = this.visit(node.children[0], value);\n\n if (isFalse(first) === true) {\n return first;\n }\n return this.visit(node.children[1], value);\n case \"NotExpression\":\n first = this.visit(node.children[0], value);\n return isFalse(first);\n case \"Literal\":\n return node.value;\n case TOK_PIPE:\n left = this.visit(node.children[0], value);\n return this.visit(node.children[1], left);\n case TOK_CURRENT:\n return value;\n case \"Function\":\n var resolvedArgs = [];\n for (i = 0; i < node.children.length; i++) {\n resolvedArgs.push(this.visit(node.children[i], value));\n }\n return this.runtime.callFunction(node.name, resolvedArgs);\n case \"ExpressionReference\":\n var refNode = node.children[0];\n // Tag the node with a specific attribute so the type\n // checker verify the type.\n refNode.jmespathType = TOK_EXPREF;\n return refNode;\n default:\n throw new Error(\"Unknown node type: \" + node.type);\n }\n },\n\n computeSliceParams: function(arrayLength, sliceParams) {\n var start = sliceParams[0];\n var stop = sliceParams[1];\n var step = sliceParams[2];\n var computed = [null, null, null];\n if (step === null) {\n step = 1;\n } else if (step === 0) {\n var error = new Error(\"Invalid slice, step cannot be 0\");\n error.name = \"RuntimeError\";\n throw error;\n }\n var stepValueNegative = step < 0 ? true : false;\n\n if (start === null) {\n start = stepValueNegative ? arrayLength - 1 : 0;\n } else {\n start = this.capSliceRange(arrayLength, start, step);\n }\n\n if (stop === null) {\n stop = stepValueNegative ? -1 : arrayLength;\n } else {\n stop = this.capSliceRange(arrayLength, stop, step);\n }\n computed[0] = start;\n computed[1] = stop;\n computed[2] = step;\n return computed;\n },\n\n capSliceRange: function(arrayLength, actualValue, step) {\n if (actualValue < 0) {\n actualValue += arrayLength;\n if (actualValue < 0) {\n actualValue = step < 0 ? -1 : 0;\n }\n } else if (actualValue >= arrayLength) {\n actualValue = step < 0 ? arrayLength - 1 : arrayLength;\n }\n return actualValue;\n }\n\n };\n\n function Runtime(interpreter) {\n this._interpreter = interpreter;\n this.functionTable = {\n // name: [function, ]\n // The can be:\n //\n // {\n // args: [[type1, type2], [type1, type2]],\n // variadic: true|false\n // }\n //\n // Each arg in the arg list is a list of valid types\n // (if the function is overloaded and supports multiple\n // types. If the type is \"any\" then no type checking\n // occurs on the argument. Variadic is optional\n // and if not provided is assumed to be false.\n abs: {_func: this._functionAbs, _signature: [{types: [TYPE_NUMBER]}]},\n avg: {_func: this._functionAvg, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n ceil: {_func: this._functionCeil, _signature: [{types: [TYPE_NUMBER]}]},\n contains: {\n _func: this._functionContains,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]},\n {types: [TYPE_ANY]}]},\n \"ends_with\": {\n _func: this._functionEndsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n floor: {_func: this._functionFloor, _signature: [{types: [TYPE_NUMBER]}]},\n length: {\n _func: this._functionLength,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY, TYPE_OBJECT]}]},\n map: {\n _func: this._functionMap,\n _signature: [{types: [TYPE_EXPREF]}, {types: [TYPE_ARRAY]}]},\n max: {\n _func: this._functionMax,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"merge\": {\n _func: this._functionMerge,\n _signature: [{types: [TYPE_OBJECT], variadic: true}]\n },\n \"max_by\": {\n _func: this._functionMaxBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n sum: {_func: this._functionSum, _signature: [{types: [TYPE_ARRAY_NUMBER]}]},\n \"starts_with\": {\n _func: this._functionStartsWith,\n _signature: [{types: [TYPE_STRING]}, {types: [TYPE_STRING]}]},\n min: {\n _func: this._functionMin,\n _signature: [{types: [TYPE_ARRAY_NUMBER, TYPE_ARRAY_STRING]}]},\n \"min_by\": {\n _func: this._functionMinBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n type: {_func: this._functionType, _signature: [{types: [TYPE_ANY]}]},\n keys: {_func: this._functionKeys, _signature: [{types: [TYPE_OBJECT]}]},\n values: {_func: this._functionValues, _signature: [{types: [TYPE_OBJECT]}]},\n sort: {_func: this._functionSort, _signature: [{types: [TYPE_ARRAY_STRING, TYPE_ARRAY_NUMBER]}]},\n \"sort_by\": {\n _func: this._functionSortBy,\n _signature: [{types: [TYPE_ARRAY]}, {types: [TYPE_EXPREF]}]\n },\n join: {\n _func: this._functionJoin,\n _signature: [\n {types: [TYPE_STRING]},\n {types: [TYPE_ARRAY_STRING]}\n ]\n },\n reverse: {\n _func: this._functionReverse,\n _signature: [{types: [TYPE_STRING, TYPE_ARRAY]}]},\n \"to_array\": {_func: this._functionToArray, _signature: [{types: [TYPE_ANY]}]},\n \"to_string\": {_func: this._functionToString, _signature: [{types: [TYPE_ANY]}]},\n \"to_number\": {_func: this._functionToNumber, _signature: [{types: [TYPE_ANY]}]},\n \"not_null\": {\n _func: this._functionNotNull,\n _signature: [{types: [TYPE_ANY], variadic: true}]\n }\n };\n }\n\n Runtime.prototype = {\n callFunction: function(name, resolvedArgs) {\n var functionEntry = this.functionTable[name];\n if (functionEntry === undefined) {\n throw new Error(\"Unknown function: \" + name + \"()\");\n }\n this._validateArgs(name, resolvedArgs, functionEntry._signature);\n return functionEntry._func.call(this, resolvedArgs);\n },\n\n _validateArgs: function(name, args, signature) {\n // Validating the args requires validating\n // the correct arity and the correct type of each arg.\n // If the last argument is declared as variadic, then we need\n // a minimum number of args to be required. Otherwise it has to\n // be an exact amount.\n var pluralized;\n if (signature[signature.length - 1].variadic) {\n if (args.length < signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes at least\" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n } else if (args.length !== signature.length) {\n pluralized = signature.length === 1 ? \" argument\" : \" arguments\";\n throw new Error(\"ArgumentError: \" + name + \"() \" +\n \"takes \" + signature.length + pluralized +\n \" but received \" + args.length);\n }\n var currentSpec;\n var actualType;\n var typeMatched;\n for (var i = 0; i < signature.length; i++) {\n typeMatched = false;\n currentSpec = signature[i].types;\n actualType = this._getTypeName(args[i]);\n for (var j = 0; j < currentSpec.length; j++) {\n if (this._typeMatches(actualType, currentSpec[j], args[i])) {\n typeMatched = true;\n break;\n }\n }\n if (!typeMatched) {\n var expected = currentSpec\n .map(function(typeIdentifier) {\n return TYPE_NAME_TABLE[typeIdentifier];\n })\n .join(',');\n throw new Error(\"TypeError: \" + name + \"() \" +\n \"expected argument \" + (i + 1) +\n \" to be type \" + expected +\n \" but received type \" +\n TYPE_NAME_TABLE[actualType] + \" instead.\");\n }\n }\n },\n\n _typeMatches: function(actual, expected, argValue) {\n if (expected === TYPE_ANY) {\n return true;\n }\n if (expected === TYPE_ARRAY_STRING ||\n expected === TYPE_ARRAY_NUMBER ||\n expected === TYPE_ARRAY) {\n // The expected type can either just be array,\n // or it can require a specific subtype (array of numbers).\n //\n // The simplest case is if \"array\" with no subtype is specified.\n if (expected === TYPE_ARRAY) {\n return actual === TYPE_ARRAY;\n } else if (actual === TYPE_ARRAY) {\n // Otherwise we need to check subtypes.\n // I think this has potential to be improved.\n var subtype;\n if (expected === TYPE_ARRAY_NUMBER) {\n subtype = TYPE_NUMBER;\n } else if (expected === TYPE_ARRAY_STRING) {\n subtype = TYPE_STRING;\n }\n for (var i = 0; i < argValue.length; i++) {\n if (!this._typeMatches(\n this._getTypeName(argValue[i]), subtype,\n argValue[i])) {\n return false;\n }\n }\n return true;\n }\n } else {\n return actual === expected;\n }\n },\n _getTypeName: function(obj) {\n switch (Object.prototype.toString.call(obj)) {\n case \"[object String]\":\n return TYPE_STRING;\n case \"[object Number]\":\n return TYPE_NUMBER;\n case \"[object Array]\":\n return TYPE_ARRAY;\n case \"[object Boolean]\":\n return TYPE_BOOLEAN;\n case \"[object Null]\":\n return TYPE_NULL;\n case \"[object Object]\":\n // Check if it's an expref. If it has, it's been\n // tagged with a jmespathType attr of 'Expref';\n if (obj.jmespathType === TOK_EXPREF) {\n return TYPE_EXPREF;\n } else {\n return TYPE_OBJECT;\n }\n }\n },\n\n _functionStartsWith: function(resolvedArgs) {\n return resolvedArgs[0].lastIndexOf(resolvedArgs[1]) === 0;\n },\n\n _functionEndsWith: function(resolvedArgs) {\n var searchStr = resolvedArgs[0];\n var suffix = resolvedArgs[1];\n return searchStr.indexOf(suffix, searchStr.length - suffix.length) !== -1;\n },\n\n _functionReverse: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n if (typeName === TYPE_STRING) {\n var originalStr = resolvedArgs[0];\n var reversedStr = \"\";\n for (var i = originalStr.length - 1; i >= 0; i--) {\n reversedStr += originalStr[i];\n }\n return reversedStr;\n } else {\n var reversedArray = resolvedArgs[0].slice(0);\n reversedArray.reverse();\n return reversedArray;\n }\n },\n\n _functionAbs: function(resolvedArgs) {\n return Math.abs(resolvedArgs[0]);\n },\n\n _functionCeil: function(resolvedArgs) {\n return Math.ceil(resolvedArgs[0]);\n },\n\n _functionAvg: function(resolvedArgs) {\n var sum = 0;\n var inputArray = resolvedArgs[0];\n for (var i = 0; i < inputArray.length; i++) {\n sum += inputArray[i];\n }\n return sum / inputArray.length;\n },\n\n _functionContains: function(resolvedArgs) {\n return resolvedArgs[0].indexOf(resolvedArgs[1]) >= 0;\n },\n\n _functionFloor: function(resolvedArgs) {\n return Math.floor(resolvedArgs[0]);\n },\n\n _functionLength: function(resolvedArgs) {\n if (!isObject(resolvedArgs[0])) {\n return resolvedArgs[0].length;\n } else {\n // As far as I can tell, there's no way to get the length\n // of an object without O(n) iteration through the object.\n return Object.keys(resolvedArgs[0]).length;\n }\n },\n\n _functionMap: function(resolvedArgs) {\n var mapped = [];\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[0];\n var elements = resolvedArgs[1];\n for (var i = 0; i < elements.length; i++) {\n mapped.push(interpreter.visit(exprefNode, elements[i]));\n }\n return mapped;\n },\n\n _functionMerge: function(resolvedArgs) {\n var merged = {};\n for (var i = 0; i < resolvedArgs.length; i++) {\n var current = resolvedArgs[i];\n for (var key in current) {\n merged[key] = current[key];\n }\n }\n return merged;\n },\n\n _functionMax: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.max.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var maxElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (maxElement.localeCompare(elements[i]) < 0) {\n maxElement = elements[i];\n }\n }\n return maxElement;\n }\n } else {\n return null;\n }\n },\n\n _functionMin: function(resolvedArgs) {\n if (resolvedArgs[0].length > 0) {\n var typeName = this._getTypeName(resolvedArgs[0][0]);\n if (typeName === TYPE_NUMBER) {\n return Math.min.apply(Math, resolvedArgs[0]);\n } else {\n var elements = resolvedArgs[0];\n var minElement = elements[0];\n for (var i = 1; i < elements.length; i++) {\n if (elements[i].localeCompare(minElement) < 0) {\n minElement = elements[i];\n }\n }\n return minElement;\n }\n } else {\n return null;\n }\n },\n\n _functionSum: function(resolvedArgs) {\n var sum = 0;\n var listToSum = resolvedArgs[0];\n for (var i = 0; i < listToSum.length; i++) {\n sum += listToSum[i];\n }\n return sum;\n },\n\n _functionType: function(resolvedArgs) {\n switch (this._getTypeName(resolvedArgs[0])) {\n case TYPE_NUMBER:\n return \"number\";\n case TYPE_STRING:\n return \"string\";\n case TYPE_ARRAY:\n return \"array\";\n case TYPE_OBJECT:\n return \"object\";\n case TYPE_BOOLEAN:\n return \"boolean\";\n case TYPE_EXPREF:\n return \"expref\";\n case TYPE_NULL:\n return \"null\";\n }\n },\n\n _functionKeys: function(resolvedArgs) {\n return Object.keys(resolvedArgs[0]);\n },\n\n _functionValues: function(resolvedArgs) {\n var obj = resolvedArgs[0];\n var keys = Object.keys(obj);\n var values = [];\n for (var i = 0; i < keys.length; i++) {\n values.push(obj[keys[i]]);\n }\n return values;\n },\n\n _functionJoin: function(resolvedArgs) {\n var joinChar = resolvedArgs[0];\n var listJoin = resolvedArgs[1];\n return listJoin.join(joinChar);\n },\n\n _functionToArray: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_ARRAY) {\n return resolvedArgs[0];\n } else {\n return [resolvedArgs[0]];\n }\n },\n\n _functionToString: function(resolvedArgs) {\n if (this._getTypeName(resolvedArgs[0]) === TYPE_STRING) {\n return resolvedArgs[0];\n } else {\n return JSON.stringify(resolvedArgs[0]);\n }\n },\n\n _functionToNumber: function(resolvedArgs) {\n var typeName = this._getTypeName(resolvedArgs[0]);\n var convertedValue;\n if (typeName === TYPE_NUMBER) {\n return resolvedArgs[0];\n } else if (typeName === TYPE_STRING) {\n convertedValue = +resolvedArgs[0];\n if (!isNaN(convertedValue)) {\n return convertedValue;\n }\n }\n return null;\n },\n\n _functionNotNull: function(resolvedArgs) {\n for (var i = 0; i < resolvedArgs.length; i++) {\n if (this._getTypeName(resolvedArgs[i]) !== TYPE_NULL) {\n return resolvedArgs[i];\n }\n }\n return null;\n },\n\n _functionSort: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n sortedArray.sort();\n return sortedArray;\n },\n\n _functionSortBy: function(resolvedArgs) {\n var sortedArray = resolvedArgs[0].slice(0);\n if (sortedArray.length === 0) {\n return sortedArray;\n }\n var interpreter = this._interpreter;\n var exprefNode = resolvedArgs[1];\n var requiredType = this._getTypeName(\n interpreter.visit(exprefNode, sortedArray[0]));\n if ([TYPE_NUMBER, TYPE_STRING].indexOf(requiredType) < 0) {\n throw new Error(\"TypeError\");\n }\n var that = this;\n // In order to get a stable sort out of an unstable\n // sort algorithm, we decorate/sort/undecorate (DSU)\n // by creating a new list of [index, element] pairs.\n // In the cmp function, if the evaluated elements are\n // equal, then the index will be used as the tiebreaker.\n // After the decorated list has been sorted, it will be\n // undecorated to extract the original elements.\n var decorated = [];\n for (var i = 0; i < sortedArray.length; i++) {\n decorated.push([i, sortedArray[i]]);\n }\n decorated.sort(function(a, b) {\n var exprA = interpreter.visit(exprefNode, a[1]);\n var exprB = interpreter.visit(exprefNode, b[1]);\n if (that._getTypeName(exprA) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprA));\n } else if (that._getTypeName(exprB) !== requiredType) {\n throw new Error(\n \"TypeError: expected \" + requiredType + \", received \" +\n that._getTypeName(exprB));\n }\n if (exprA > exprB) {\n return 1;\n } else if (exprA < exprB) {\n return -1;\n } else {\n // If they're equal compare the items by their\n // order to maintain relative order of equal keys\n // (i.e. to get a stable sort).\n return a[0] - b[0];\n }\n });\n // Undecorate: extract out the original list elements.\n for (var j = 0; j < decorated.length; j++) {\n sortedArray[j] = decorated[j][1];\n }\n return sortedArray;\n },\n\n _functionMaxBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var maxNumber = -Infinity;\n var maxRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current > maxNumber) {\n maxNumber = current;\n maxRecord = resolvedArray[i];\n }\n }\n return maxRecord;\n },\n\n _functionMinBy: function(resolvedArgs) {\n var exprefNode = resolvedArgs[1];\n var resolvedArray = resolvedArgs[0];\n var keyFunction = this.createKeyFunction(exprefNode, [TYPE_NUMBER, TYPE_STRING]);\n var minNumber = Infinity;\n var minRecord;\n var current;\n for (var i = 0; i < resolvedArray.length; i++) {\n current = keyFunction(resolvedArray[i]);\n if (current < minNumber) {\n minNumber = current;\n minRecord = resolvedArray[i];\n }\n }\n return minRecord;\n },\n\n createKeyFunction: function(exprefNode, allowedTypes) {\n var that = this;\n var interpreter = this._interpreter;\n var keyFunc = function(x) {\n var current = interpreter.visit(exprefNode, x);\n if (allowedTypes.indexOf(that._getTypeName(current)) < 0) {\n var msg = \"TypeError: expected one of \" + allowedTypes +\n \", received \" + that._getTypeName(current);\n throw new Error(msg);\n }\n return current;\n };\n return keyFunc;\n }\n\n };\n\n function compile(stream) {\n var parser = new Parser();\n var ast = parser.parse(stream);\n return ast;\n }\n\n function tokenize(stream) {\n var lexer = new Lexer();\n return lexer.tokenize(stream);\n }\n\n function search(data, expression) {\n var parser = new Parser();\n // This needs to be improved. Both the interpreter and runtime depend on\n // each other. The runtime needs the interpreter to support exprefs.\n // There's likely a clean way to avoid the cyclic dependency.\n var runtime = new Runtime();\n var interpreter = new TreeInterpreter(runtime);\n runtime._interpreter = interpreter;\n var node = parser.parse(expression);\n return interpreter.search(node, data);\n }\n\n exports.tokenize = tokenize;\n exports.compile = compile;\n exports.search = search;\n exports.strictDeepEqual = strictDeepEqual;\n})(typeof exports === \"undefined\" ? this.jmespath = {} : exports);\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _utils = require(\"./utils\");\n\nvar utils = _interopRequireWildcard(_utils);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n/**\n * Simple module to localize the React interface using the same syntax\n * used in the ReactNativeLocalization module\n * (https://github.com/stefalda/ReactNativeLocalization)\n *\n * Originally developed by Stefano Falda (stefano.falda@gmail.com)\n *\n * It uses a call to the Navigator/Browser object to get the current interface language,\n * then display the correct language strings or the default language (the first\n * one if a match is not found).\n *\n * How to use:\n * Check the instructions at:\n * https://github.com/stefalda/localized-strings\n */\n\nvar placeholderReplaceRegex = /(\\{[\\d|\\w]+\\})/;\nvar placeholderReferenceRegex = /(\\$ref\\{[\\w|.]+\\})/;\n\nvar LocalizedStrings = function () {\n /**\n * Constructor used to provide the strings objects in various language and the optional callback to get\n * the interface language\n * @param {*} props - the strings object\n * @param {Function} options.customLanguageInterface - the optional method to use to get the InterfaceLanguage\n * @param {Boolean} options.pseudo - convert all strings to pseudo, helpful when implementing\n * @param {Boolean} options.pseudoMultipleLanguages - add 40% to pseudo, helps with translations in the future\n * @param {Boolean} options.logsEnabled - Enable/Disable console.log outputs (default=true)\n */\n function LocalizedStrings(props, options) {\n _classCallCheck(this, LocalizedStrings);\n\n // Compatibility fix with previous version\n if (typeof options === \"function\") {\n /* eslint-disable no-param-reassign */\n options = { customLanguageInterface: options };\n /* eslint-enable */\n }\n this._opts = _extends({}, {\n customLanguageInterface: utils.getInterfaceLanguage,\n pseudo: false,\n pseudoMultipleLanguages: false,\n logsEnabled: true\n }, options);\n this._interfaceLanguage = this._opts.customLanguageInterface();\n this._language = this._interfaceLanguage;\n this.setContent(props);\n }\n\n /**\n * Set the strings objects based on the parameter passed in the constructor\n * @param {*} props\n */\n\n\n _createClass(LocalizedStrings, [{\n key: \"setContent\",\n value: function setContent(props) {\n var _this = this;\n\n var _Object$keys = Object.keys(props),\n _Object$keys2 = _slicedToArray(_Object$keys, 1),\n defaultLang = _Object$keys2[0];\n\n this._defaultLanguage = defaultLang;\n this._defaultLanguageFirstLevelKeys = [];\n // Store locally the passed strings\n this._props = props;\n utils.validateTranslationKeys(Object.keys(props[this._defaultLanguage]));\n // Store first level keys (for identifying missing translations)\n Object.keys(this._props[this._defaultLanguage]).forEach(function (key) {\n if (typeof _this._props[_this._defaultLanguage][key] === \"string\") {\n _this._defaultLanguageFirstLevelKeys.push(key);\n }\n });\n // Set language to its default value (the interface)\n this.setLanguage(this._interfaceLanguage);\n // Developermode with pseudo\n if (this._opts.pseudo) {\n this._pseudoAllValues(this._props);\n }\n }\n\n /**\n * Replace all strings to pseudo value\n * @param {Object} obj - Loopable object\n */\n\n }, {\n key: \"_pseudoAllValues\",\n value: function _pseudoAllValues(obj) {\n var _this2 = this;\n\n Object.keys(obj).forEach(function (property) {\n if (_typeof(obj[property]) === \"object\") {\n _this2._pseudoAllValues(obj[property]);\n } else if (typeof obj[property] === \"string\") {\n if (obj[property].indexOf(\"[\") === 0 && obj[property].lastIndexOf(\"]\") === obj[property].length - 1) {\n // already psuedo fixed\n return;\n }\n // @TODO must be a way to get regex to find all replaceble strings except our replacement variables\n var strArr = obj[property].split(\" \");\n for (var i = 0; i < strArr.length; i += 1) {\n if (strArr[i].match(placeholderReplaceRegex)) {\n // we want to keep this string, includes specials\n } else if (strArr[i].match(placeholderReferenceRegex)) {\n // we want to keep this string, includes specials\n } else {\n var len = strArr[i].length;\n if (_this2._opts.pseudoMultipleLanguages) {\n len = parseInt(len * 1.4, 10); // add length with 40%\n }\n strArr[i] = utils.randomPseudo(len);\n }\n }\n obj[property] = \"[\" + strArr.join(\" \") + \"]\"; // eslint-disable-line no-param-reassign\n }\n });\n }\n\n /**\n * Can be used from ouside the class to force a particular language\n * indipendently from the interface one\n * @param {*} language\n */\n\n }, {\n key: \"setLanguage\",\n value: function setLanguage(language) {\n var _this3 = this;\n\n // Check if exists a translation for the current language or if the default\n // should be used\n var bestLanguage = utils.getBestMatchingLanguage(language, this._props);\n var defaultLanguage = Object.keys(this._props)[0];\n this._language = bestLanguage;\n // Associate the language object to the this object\n if (this._props[bestLanguage]) {\n // delete default propery values to identify missing translations\n for (var i = 0; i < this._defaultLanguageFirstLevelKeys.length; i += 1) {\n delete this[this._defaultLanguageFirstLevelKeys[i]];\n }\n var localizedStrings = _extends({}, this._props[this._language]);\n Object.keys(localizedStrings).forEach(function (key) {\n _this3[key] = localizedStrings[key];\n });\n // Now add any string missing from the translation but existing in the default language\n if (defaultLanguage !== this._language) {\n localizedStrings = this._props[defaultLanguage];\n this._fallbackValues(localizedStrings, this);\n }\n }\n }\n\n /**\n * Load fallback values for missing translations\n * @param {*} defaultStrings\n * @param {*} strings\n */\n\n }, {\n key: \"_fallbackValues\",\n value: function _fallbackValues(defaultStrings, strings) {\n var _this4 = this;\n\n Object.keys(defaultStrings).forEach(function (key) {\n if (Object.prototype.hasOwnProperty.call(defaultStrings, key) && !strings[key] && strings[key] !== \"\") {\n strings[key] = defaultStrings[key]; // eslint-disable-line no-param-reassign\n if (_this4._opts.logsEnabled) {\n console.log(\"\\uD83D\\uDEA7 \\uD83D\\uDC77 key '\" + key + \"' not found in localizedStrings for language \" + _this4._language + \" \\uD83D\\uDEA7\");\n }\n } else if (typeof strings[key] !== \"string\") {\n // It's an object\n _this4._fallbackValues(defaultStrings[key], strings[key]);\n }\n });\n }\n\n /**\n * The current language displayed (could differ from the interface language\n * if it has been forced manually and a matching translation has been found)\n */\n\n }, {\n key: \"getLanguage\",\n value: function getLanguage() {\n return this._language;\n }\n\n /**\n * The current interface language (could differ from the language displayed)\n */\n\n }, {\n key: \"getInterfaceLanguage\",\n value: function getInterfaceLanguage() {\n return this._interfaceLanguage;\n }\n\n /**\n * Return an array containing the available languages passed as props in the constructor\n */\n\n }, {\n key: \"getAvailableLanguages\",\n value: function getAvailableLanguages() {\n var _this5 = this;\n\n if (!this._availableLanguages) {\n this._availableLanguages = [];\n Object.keys(this._props).forEach(function (key) {\n _this5._availableLanguages.push(key);\n });\n }\n return this._availableLanguages;\n }\n\n // Format the passed string replacing the numbered or tokenized placeholders\n // eg. 1: I'd like some {0} and {1}, or just {0}\n // eg. 2: I'd like some {bread} and {butter}, or just {bread}\n // eg. 3: I'd like some $ref{bread} and $ref{butter}, or just $ref{bread}\n // Use example:\n // eg. 1: strings.formatString(strings.question, strings.bread, strings.butter)\n // eg. 2: strings.formatString(strings.question, { bread: strings.bread, butter: strings.butter })\n // eg. 3: strings.formatString(strings.question)\n\n }, {\n key: \"formatString\",\n value: function formatString(str) {\n var _this6 = this;\n\n for (var _len = arguments.length, valuesForPlaceholders = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n valuesForPlaceholders[_key - 1] = arguments[_key];\n }\n\n var input = str || \"\";\n if (typeof input === \"string\") {\n input = this.getString(str, null, true) || input;\n }\n var ref = input.split(placeholderReferenceRegex).filter(function (textPart) {\n return !!textPart;\n }).map(function (textPart) {\n if (textPart.match(placeholderReferenceRegex)) {\n var matchedKey = textPart.slice(5, -1);\n var referenceValue = _this6.getString(matchedKey);\n if (referenceValue) return referenceValue;\n if (_this6._opts.logsEnabled) {\n console.log(\"No Localization ref found for '\" + textPart + \"' in string '\" + str + \"'\");\n }\n // lets print it another way so next replacer doesn't find it\n return \"$ref(id:\" + matchedKey + \")\";\n }\n return textPart;\n }).join(\"\");\n return ref.split(placeholderReplaceRegex).filter(function (textPart) {\n return !!textPart;\n }).map(function (textPart) {\n if (textPart.match(placeholderReplaceRegex)) {\n var matchedKey = textPart.slice(1, -1);\n var valueForPlaceholder = valuesForPlaceholders[matchedKey];\n // If no value found, check if working with an object instead\n if (valueForPlaceholder === undefined) {\n var valueFromObjectPlaceholder = valuesForPlaceholders[0][matchedKey];\n if (valueFromObjectPlaceholder !== undefined) {\n valueForPlaceholder = valueFromObjectPlaceholder;\n } else {\n // If value still isn't found, then it must have been undefined/null\n return valueForPlaceholder;\n }\n }\n\n return valueForPlaceholder;\n }\n return textPart;\n }).join(\"\");\n }\n\n // Return a string with the passed key in a different language or defalt if not set\n // We allow deep . notation for finding strings\n\n }, {\n key: \"getString\",\n value: function getString(key, language) {\n var omitWarning = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n try {\n var current = this._props[language || this._language];\n var paths = key.split(\".\");\n for (var i = 0; i < paths.length; i += 1) {\n if (current[paths[i]] === undefined) {\n throw Error(paths[i]);\n }\n current = current[paths[i]];\n }\n return current;\n } catch (ex) {\n if (!omitWarning && this._opts.logsEnabled) {\n console.log(\"No localization found for key '\" + key + \"' and language '\" + language + \"', failed on \" + ex.message);\n }\n }\n return null;\n }\n\n /**\n * The current props (locale object)\n */\n\n }, {\n key: \"getContent\",\n value: function getContent() {\n return this._props;\n }\n }]);\n\n return LocalizedStrings;\n}();\n\nexports.default = LocalizedStrings;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getInterfaceLanguage = getInterfaceLanguage;\nexports.getBestMatchingLanguage = getBestMatchingLanguage;\nexports.validateTranslationKeys = validateTranslationKeys;\nexports.randomPseudo = randomPseudo;\n/**\n * Return the current interface language\n * If the navigator object is defined it returns the current navigator language\n * otherwise it falls back to 'en-US'\n * Works in browsers\n */\nfunction getInterfaceLanguage() {\n var defaultLang = 'en-US';\n if (typeof navigator === 'undefined') {\n return defaultLang;\n }\n var nav = navigator; // eslint-disable-line no-undef\n if (nav) {\n if (nav.language) {\n return nav.language;\n }\n if (!!nav.languages && !!nav.languages[0]) {\n return nav.languages[0];\n }\n if (nav.userLanguage) {\n return nav.userLanguage;\n }\n if (nav.browserLanguage) {\n return nav.browserLanguage;\n }\n }\n return defaultLang;\n}\n\n/**\n * Get the best match based on the language passed and the available languages\n * @param {*} language\n * @param {*} props\n */\nfunction getBestMatchingLanguage(language, props) {\n // If an object with the passed language key exists return it\n if (props[language]) return language;\n\n // if the string is composed try to find a match with only the first language identifiers (en-US --> en)\n var idx = language.indexOf('-');\n var auxLang = idx >= 0 ? language.substring(0, idx) : language;\n return props[auxLang] ? auxLang : Object.keys(props)[0];\n}\n\n/**\n * Check that the keys used in the provided strings object don't collide with existing property\n * already defined in the LocalizedStrings object\n * @param {*} translationKeys\n */\nfunction validateTranslationKeys(translationKeys) {\n var reservedNames = ['_interfaceLanguage', '_language', '_defaultLanguage', '_defaultLanguageFirstLevelKeys', '_props'];\n translationKeys.forEach(function (key) {\n if (reservedNames.indexOf(key) !== -1) {\n throw new Error(key + ' cannot be used as a key. It is a reserved word.');\n }\n });\n}\n\n/**\n * Get a random pseudo string back after specified a length\n * @param {Number} len - How many characters to get back\n */\nfunction randomPseudo(len) {\n var text = '';\n var possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n for (var i = 0; i < len; i += 1) {\n text += possible.charAt(Math.floor(Math.random() * possible.length));\n }return text;\n}","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\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\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\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\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\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\nmodule.exports = MapCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var MapCache = require('./_MapCache'),\n setCacheAdd = require('./_setCacheAdd'),\n setCacheHas = require('./_setCacheHas');\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\nmodule.exports = SetCache;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\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\nmodule.exports = Stack;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","/**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayAggregator;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee 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 `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\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\nmodule.exports = arrayFilter;\n","var baseIndexOf = require('./_baseIndexOf');\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\nmodule.exports = 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\nmodule.exports = arrayIncludesWith;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\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\nmodule.exports = arrayLikeKeys;\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\nmodule.exports = arrayMap;\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\nmodule.exports = arrayPush;\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\nmodule.exports = arraySome;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var eq = require('./eq');\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\nmodule.exports = assocIndexOf;\n","var baseEach = require('./_baseEach');\n\n/**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n}\n\nmodule.exports = baseAggregator;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\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 genTag = '[object GeneratorFunction]',\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 symbolTag = '[object Symbol]',\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 supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseForOwn = require('./_baseForOwn'),\n createBaseEach = require('./_createBaseEach');\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\nmodule.exports = baseEach;\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\nmodule.exports = baseFindIndex;\n","var createBaseFor = require('./_createBaseFor');\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\nmodule.exports = baseFor;\n","var baseFor = require('./_baseFor'),\n keys = require('./keys');\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\nmodule.exports = baseForOwn;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\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\nmodule.exports = baseGet;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\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\nmodule.exports = baseGetAllKeys;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\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\nmodule.exports = baseGetTag;\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\nmodule.exports = baseHasIn;\n","var baseFindIndex = require('./_baseFindIndex'),\n baseIsNaN = require('./_baseIsNaN'),\n strictIndexOf = require('./_strictIndexOf');\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\nmodule.exports = baseIndexOf;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = baseIsArguments;\n","var baseIsEqualDeep = require('./_baseIsEqualDeep'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = baseIsEqual;\n","var Stack = require('./_Stack'),\n equalArrays = require('./_equalArrays'),\n equalByTag = require('./_equalByTag'),\n equalObjects = require('./_equalObjects'),\n getTag = require('./_getTag'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isTypedArray = require('./isTypedArray');\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\nmodule.exports = baseIsEqualDeep;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var Stack = require('./_Stack'),\n baseIsEqual = require('./_baseIsEqual');\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\nmodule.exports = baseIsMatch;\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\nmodule.exports = baseIsNaN;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\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\nmodule.exports = baseIsNative;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = baseIsTypedArray;\n","var baseMatches = require('./_baseMatches'),\n baseMatchesProperty = require('./_baseMatchesProperty'),\n identity = require('./identity'),\n isArray = require('./isArray'),\n property = require('./property');\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\nmodule.exports = baseIteratee;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\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\nmodule.exports = baseKeys;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\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 `_.keysIn` 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 baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var baseIsMatch = require('./_baseIsMatch'),\n getMatchData = require('./_getMatchData'),\n matchesStrictComparable = require('./_matchesStrictComparable');\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\nmodule.exports = baseMatches;\n","var baseIsEqual = require('./_baseIsEqual'),\n get = require('./get'),\n hasIn = require('./hasIn'),\n isKey = require('./_isKey'),\n isStrictComparable = require('./_isStrictComparable'),\n matchesStrictComparable = require('./_matchesStrictComparable'),\n toKey = require('./_toKey');\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\nmodule.exports = baseMatchesProperty;\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\nmodule.exports = baseProperty;\n","var baseGet = require('./_baseGet');\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\nmodule.exports = basePropertyDeep;\n","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n","/**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\nfunction baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n}\n\nmodule.exports = baseSum;\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\nmodule.exports = baseTimes;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\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\nmodule.exports = baseToString;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\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\nmodule.exports = baseUnary;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\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\nmodule.exports = baseUniq;\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\nmodule.exports = cacheHas;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\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\nmodule.exports = castPath;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var root = require('./_root');\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 allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\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 * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","var arrayAggregator = require('./_arrayAggregator'),\n baseAggregator = require('./_baseAggregator'),\n baseIteratee = require('./_baseIteratee'),\n isArray = require('./isArray');\n\n/**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\nfunction createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, baseIteratee(iteratee, 2), accumulator);\n };\n}\n\nmodule.exports = createAggregator;\n","var isArrayLike = require('./isArrayLike');\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\nmodule.exports = createBaseEach;\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\nmodule.exports = createBaseFor;\n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\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\nmodule.exports = createSet;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var SetCache = require('./_SetCache'),\n arraySome = require('./_arraySome'),\n cacheHas = require('./_cacheHas');\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\nmodule.exports = equalArrays;\n","var Symbol = require('./_Symbol'),\n Uint8Array = require('./_Uint8Array'),\n eq = require('./eq'),\n equalArrays = require('./_equalArrays'),\n mapToArray = require('./_mapToArray'),\n setToArray = require('./_setToArray');\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\nmodule.exports = equalByTag;\n","var getAllKeys = require('./_getAllKeys');\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\nmodule.exports = equalObjects;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\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\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * 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 getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var isKeyable = require('./_isKeyable');\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\nmodule.exports = getMapData;\n","var isStrictComparable = require('./_isStrictComparable'),\n keys = require('./keys');\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\nmodule.exports = getMatchData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\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\nmodule.exports = getNative;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var Symbol = require('./_Symbol');\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\nmodule.exports = getRawTag;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\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\nmodule.exports = getSymbols;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\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 and inherited 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 getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\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\nmodule.exports = getTag;\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\nmodule.exports = getValue;\n","var castPath = require('./_castPath'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isIndex = require('./_isIndex'),\n isLength = require('./isLength'),\n toKey = require('./_toKey');\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\nmodule.exports = hasPath;\n","var nativeCreate = require('./_nativeCreate');\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\nmodule.exports = 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\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\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\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\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\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\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\nmodule.exports = hashSet;\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 * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\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 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/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\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\nmodule.exports = isIndex;\n","var eq = require('./eq'),\n isArrayLike = require('./isArrayLike'),\n isIndex = require('./_isIndex'),\n isObject = require('./isObject');\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\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\nmodule.exports = isKey;\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\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\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\nmodule.exports = isMasked;\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\nmodule.exports = isPrototype;\n","var isObject = require('./isObject');\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\nmodule.exports = isStrictComparable;\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\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\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\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\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\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\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\nmodule.exports = mapCacheSet;\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\nmodule.exports = mapToArray;\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\nmodule.exports = matchesStrictComparable;\n","var memoize = require('./memoize');\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\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = nodeUtil;\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\nmodule.exports = objectToString;\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\nmodule.exports = overArg;\n","var freeGlobal = require('./_freeGlobal');\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\nmodule.exports = root;\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\nmodule.exports = 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\nmodule.exports = setCacheHas;\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\nmodule.exports = setToArray;\n","var ListCache = require('./_ListCache');\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\nmodule.exports = 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\nmodule.exports = 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\nmodule.exports = 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\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\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\nmodule.exports = stackSet;\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\nmodule.exports = strictIndexOf;\n","var memoizeCapped = require('./_memoizeCapped');\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\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\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\nmodule.exports = toKey;\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\nmodule.exports = toSource;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","var baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = cloneDeep;\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\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\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\nmodule.exports = get;\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\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 object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\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 iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","var baseHasIn = require('./_baseHasIn'),\n hasPath = require('./_hasPath');\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\nmodule.exports = hasIn;\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\nmodule.exports = identity;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isArguments;\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\nmodule.exports = isArray;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\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\nmodule.exports = isArrayLike;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\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\nmodule.exports = isBuffer;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\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\nmodule.exports = isFunction;\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\nmodule.exports = isLength;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\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 map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\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\nmodule.exports = isObject;\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\nmodule.exports = isObjectLike;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\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 set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\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\nmodule.exports = isSymbol;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\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\nmodule.exports = isTypedArray;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\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\nmodule.exports = keys;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\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 * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var MapCache = require('./_MapCache');\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\nmodule.exports = memoize;\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\nmodule.exports = noop;\n","var baseProperty = require('./_baseProperty'),\n basePropertyDeep = require('./_basePropertyDeep'),\n isKey = require('./_isKey'),\n toKey = require('./_toKey');\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\nmodule.exports = property;\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\nmodule.exports = stubArray;\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\nmodule.exports = stubFalse;\n","var baseSum = require('./_baseSum'),\n identity = require('./identity');\n\n/**\n * Computes the sum of the values in `array`.\n *\n * @static\n * @memberOf _\n * @since 3.4.0\n * @category Math\n * @param {Array} array The array to iterate over.\n * @returns {number} Returns the sum.\n * @example\n *\n * _.sum([4, 2, 8, 6]);\n * // => 20\n */\nfunction sum(array) {\n return (array && array.length)\n ? baseSum(array, identity)\n : 0;\n}\n\nmodule.exports = sum;\n","var toNumber = require('./toNumber');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0,\n MAX_INTEGER = 1.7976931348623157e+308;\n\n/**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\nfunction toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n}\n\nmodule.exports = toFinite;\n","var toFinite = require('./toFinite');\n\n/**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\nfunction toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n}\n\nmodule.exports = toInteger;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var baseToString = require('./_baseToString');\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\nmodule.exports = toString;\n","var baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"\")&&(k=k.replace(\"\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e\"+b.valueOf().toString()+\"\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a>=g;e-=g;rg=1<<32-oc(b)+e|c<w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;ww?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&uh(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=sh(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Ah(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=yh(f.type,f.key,f.props,null,a.mode,h),h.ref=sh(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=zh(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);th(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=xh(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Bh=vh(!0),Ch=vh(!1),Dh={},Eh=Uf(Dh),Fh=Uf(Dh),Gh=Uf(Dh);function Hh(a){if(a===Dh)throw Error(p(174));return a}function Ih(a,b){G(Gh,b);G(Fh,a);G(Eh,Dh);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(Eh);G(Eh,b)}function Jh(){E(Eh);E(Fh);E(Gh)}\nfunction Kh(a){Hh(Gh.current);var b=Hh(Eh.current);var c=lb(b,a.type);b!==c&&(G(Fh,a),G(Eh,c))}function Lh(a){Fh.current===a&&(E(Eh),E(Fh))}var M=Uf(0);\nfunction Mh(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Nh=[];\nfunction Oh(){for(var a=0;ac?c:4;a(!0);var d=Qh.transition;Qh.transition={};try{a(!1),b()}finally{C=c,Qh.transition=d}}function Fi(){return di().memoizedState}\nfunction Gi(a,b,c){var d=lh(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,c);else if(c=Yg(a,b,c,d),null!==c){var e=L();mh(c,a,d,e);Ji(c,b,d)}}\nfunction ri(a,b,c){var d=lh(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(Hi(a))Ii(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,Xg(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=Yg(a,b,e,d);null!==c&&(e=L(),mh(c,a,d,e),Ji(c,b,d))}}\nfunction Hi(a){var b=a.alternate;return a===N||null!==b&&b===N}function Ii(a,b){Th=Sh=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Ji(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar ai={readContext:Vg,useCallback:Q,useContext:Q,useEffect:Q,useImperativeHandle:Q,useInsertionEffect:Q,useLayoutEffect:Q,useMemo:Q,useReducer:Q,useRef:Q,useState:Q,useDebugValue:Q,useDeferredValue:Q,useTransition:Q,useMutableSource:Q,useSyncExternalStore:Q,useId:Q,unstable_isNewReconciler:!1},Yh={readContext:Vg,useCallback:function(a,b){ci().memoizedState=[a,void 0===b?null:b];return a},useContext:Vg,useEffect:vi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ti(4194308,\n4,yi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ti(4194308,4,a,b)},useInsertionEffect:function(a,b){return ti(4,2,a,b)},useMemo:function(a,b){var c=ci();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=ci();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=Gi.bind(null,N,a);return[d.memoizedState,a]},useRef:function(a){var b=\nci();a={current:a};return b.memoizedState=a},useState:qi,useDebugValue:Ai,useDeferredValue:function(a){return ci().memoizedState=a},useTransition:function(){var a=qi(!1),b=a[0];a=Ei.bind(null,a[1]);ci().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=N,e=ci();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===R)throw Error(p(349));0!==(Rh&30)||ni(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;vi(ki.bind(null,d,\nf,a),[a]);d.flags|=2048;li(9,mi.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=ci(),b=R.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Uh++;0\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;Aj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eHj&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304)}else{if(!d)if(a=Mh(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Ej(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Hj&&1073741824!==c&&(b.flags|=128,d=!0,Ej(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=M.current,G(M,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Ij(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(gj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Jj(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return Jh(),E(Wf),E(H),Oh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Lh(b),null;case 13:E(M);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(M),null;case 4:return Jh(),null;case 10:return Rg(b.type._context),null;case 22:case 23:return Ij(),\nnull;case 24:return null;default:return null}}var Kj=!1,U=!1,Lj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Mj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Nj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Oj=!1;\nfunction Pj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Lg(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Oj;Oj=!1;return n}\nfunction Qj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Nj(b,c,f)}e=e.next}while(e!==d)}}function Rj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Sj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Tj(a){var b=a.alternate;null!==b&&(a.alternate=null,Tj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Uj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Vj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Uj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}\nfunction Xj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Xj(a,b,c),a=a.sibling;null!==a;)Xj(a,b,c),a=a.sibling}var X=null,Yj=!1;function Zj(a,b,c){for(c=c.child;null!==c;)ak(a,b,c),c=c.sibling}\nfunction ak(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Mj(c,b);case 6:var d=X,e=Yj;X=null;Zj(a,b,c);X=d;Yj=e;null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Yj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Yj;X=c.stateNode.containerInfo;Yj=!0;\nZj(a,b,c);X=d;Yj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Nj(c,b,g):0!==(f&4)&&Nj(c,b,g));e=e.next}while(e!==d)}Zj(a,b,c);break;case 1:if(!U&&(Mj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Zj(a,b,c);break;case 21:Zj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Zj(a,b,c),U=d):Zj(a,b,c);break;default:Zj(a,b,c)}}function bk(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Lj);b.forEach(function(b){var d=ck.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction dk(a,b){var c=b.deletions;if(null!==c)for(var d=0;de&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*mk(d/1960))-d;if(10a?16:a;if(null===xk)var d=!1;else{a=xk;xk=null;yk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;kB()-gk?Lk(a,0):sk|=c);Ek(a,b)}function Zk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=L();a=Zg(a,b);null!==a&&(Ac(a,b,c),Ek(a,c))}function vj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Zk(a,c)}\nfunction ck(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Zk(a,c)}var Wk;\nWk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)Ug=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return Ug=!1,zj(a,b,c);Ug=0!==(a.flags&131072)?!0:!1}else Ug=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;jj(a,b);a=b.pendingProps;var e=Yf(b,H.current);Tg(b,c);e=Xh(null,b,d,a,e,c);var f=bi();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,ah(b),e.updater=nh,b.stateNode=e,e._reactInternals=b,rh(b,d,a,c),b=kj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Yi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{jj(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=$k(d);a=Lg(d,a);switch(e){case 0:b=dj(null,b,d,a,c);break a;case 1:b=ij(null,b,d,a,c);break a;case 11:b=Zi(null,b,d,a,c);break a;case 14:b=aj(null,b,d,Lg(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),dj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),ij(a,b,d,e,c);case 3:a:{lj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;bh(a,b);gh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ki(Error(p(423)),b);b=mj(a,b,d,c,e);break a}else if(d!==e){e=Ki(Error(p(424)),b);b=mj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Ch(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=$i(a,b,c);break a}Yi(a,b,d,c)}b=b.child}return b;case 5:return Kh(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\nhj(a,b),Yi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return pj(a,b,c);case 4:return Ih(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Bh(b,null,d,c):Yi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),Zi(a,b,d,e,c);case 7:return Yi(a,b,b.pendingProps,c),b.child;case 8:return Yi(a,b,b.pendingProps.children,c),b.child;case 12:return Yi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Mg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=$i(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=ch(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);Sg(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);Sg(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Yi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,Tg(b,c),e=Vg(e),d=d(e),b.flags|=1,Yi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Lg(d,b.pendingProps),e=Lg(d.type,e),aj(a,b,d,e,c);case 15:return cj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Lg(d,e),jj(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,Tg(b,c),ph(b,d,e),rh(b,d,e,c),kj(null,b,d,!0,a,c);case 19:return yj(a,b,c);case 22:return ej(a,b,c)}throw Error(p(156,b.tag));};function Gk(a,b){return ac(a,b)}\nfunction al(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new al(a,b,c,d)}function bj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction $k(a){if(\"function\"===typeof a)return bj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction wh(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction yh(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)bj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Ah(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return qj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Ah(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function qj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function xh(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction zh(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction bl(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function cl(a,b,c,d,e,f,g,h,k){a=new bl(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};ah(f);return a}function dl(a,b,c){var d=3 is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\ninterface DOMFile extends Blob {\n readonly lastModified: number;\n readonly name: string;\n}\n\nexport interface FileWithPath extends DOMFile {\n readonly path?: string;\n}\n\ninterface FileWithWebkitPath extends File {\n readonly webkitRelativePath?: string;\n}\n\nfunction withMimeType(file: FileWithPath) {\n const {name} = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop()!.toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}\n","import {FileWithPath, toFileWithPath} from './file';\n\n\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n\n\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n * @param evt\n */\nexport async function fromEvent(evt: Event): Promise<(FileWithPath | DataTransferItem)[]> {\n return isDragEvt(evt) && evt.dataTransfer\n ? getDataTransferFiles(evt.dataTransfer, evt.type)\n : getInputFiles(evt);\n}\n\nfunction isDragEvt(value: any): value is DragEvent {\n return !!value.dataTransfer;\n}\n\nfunction getInputFiles(evt: Event) {\n const files = isInput(evt.target)\n ? evt.target.files\n ? fromList(evt.target.files)\n : []\n : [];\n return files.map(file => toFileWithPath(file));\n}\n\nfunction isInput(value: EventTarget | null): value is HTMLInputElement {\n return value !== null;\n}\n\nasync function getDataTransferFiles(dt: DataTransfer, type: string) {\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = await Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n}\n\nfunction noIgnoredFiles(files: FileWithPath[]) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items: DataTransferItemList | FileList): T[] {\n const files = [];\n\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n\n return files as any;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item: DataTransferItem) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n const entry = item.webkitGetAsEntry();\n\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry) as any;\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items: any[]): T[] {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\n\nfunction fromDataTransferItem(item: DataTransferItem) {\n const file = item.getAsFile();\n if (!file) {\n return Promise.reject(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nasync function fromEntry(entry: any) {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry: any) {\n const reader = entry.createReader();\n\n return new Promise((resolve, reject) => {\n const entries: Promise[] = [];\n\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(async (batch: any[]) => {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = await Promise.all(entries);\n resolve(files);\n } catch (err) {\n reject(err);\n }\n } else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n\n // Continue reading\n readEntries();\n }\n }, (err: any) => {\n reject(err);\n });\n }\n\n readEntries();\n });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nasync function fromFileEntry(entry: any) {\n return new Promise((resolve, reject) => {\n entry.file((file: FileWithPath) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err: any) => {\n reject(err);\n });\n });\n}\n\n// Infinite type recursion\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\ninterface FileArray extends Array {}\ntype FileValue = FileWithPath\n | FileArray[];\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from 'attr-accept'; // Error codes\n\nexport var FILE_INVALID_TYPE = 'file-invalid-type';\nexport var FILE_TOO_LARGE = 'file-too-large';\nexport var FILE_TOO_SMALL = 'file-too-small';\nexport var TOO_MANY_FILES = 'too-many-files'; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(', ')) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: 'Too many files'\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === 'application/x-moz-file' || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple;\n\n if (!multiple && files.length > 1) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n return accepted && sizeMatch;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === 'function') {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== 'undefined') {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === 'Files' || type === 'application/x-moz-file';\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === 'object' && item !== null && item.kind === 'file';\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf('MSIE') !== -1 || userAgent.indexOf('Trident/') !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf('Edge/') !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance\"); }\n\nfunction _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); }\n\nfunction _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(source, true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(source).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { fromEvent } from 'file-selector';\nimport { allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, isEvtWithFiles, isIeOrEdge, isPropagationStopped, onDocumentDragOver, TOO_MANY_FILES_REJECTION } from './utils/index';\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, [\"children\"]);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, [\"open\"]);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return React.createElement(Fragment, null, children(_objectSpread({}, props, {\n open: open\n })));\n});\nDropzone.displayName = 'Dropzone';\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.draggedFiles Files in active drag\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n */\n accept: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are droppped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state and some helper functions.\n *\n * @typedef {object} DropzoneState\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} draggedFiles Files in active drag\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {string|string[]} [props.accept] Set accepted file types.\n * See https://github.com/okonet/attr-accept for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all.\n * See: https://github.com/react-dropzone/react-dropzone/issues/276\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are droppped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n *\n * @returns {DropzoneState}\n */\n\nexport function useDropzone() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n accept = _ref2.accept,\n _ref2$disabled = _ref2.disabled,\n disabled = _ref2$disabled === void 0 ? false : _ref2$disabled,\n _ref2$getFilesFromEve = _ref2.getFilesFromEvent,\n getFilesFromEvent = _ref2$getFilesFromEve === void 0 ? fromEvent : _ref2$getFilesFromEve,\n _ref2$maxSize = _ref2.maxSize,\n maxSize = _ref2$maxSize === void 0 ? Infinity : _ref2$maxSize,\n _ref2$minSize = _ref2.minSize,\n minSize = _ref2$minSize === void 0 ? 0 : _ref2$minSize,\n _ref2$multiple = _ref2.multiple,\n multiple = _ref2$multiple === void 0 ? true : _ref2$multiple,\n onDragEnter = _ref2.onDragEnter,\n onDragLeave = _ref2.onDragLeave,\n onDragOver = _ref2.onDragOver,\n onDrop = _ref2.onDrop,\n onDropAccepted = _ref2.onDropAccepted,\n onDropRejected = _ref2.onDropRejected,\n onFileDialogCancel = _ref2.onFileDialogCancel,\n _ref2$preventDropOnDo = _ref2.preventDropOnDocument,\n preventDropOnDocument = _ref2$preventDropOnDo === void 0 ? true : _ref2$preventDropOnDo,\n _ref2$noClick = _ref2.noClick,\n noClick = _ref2$noClick === void 0 ? false : _ref2$noClick,\n _ref2$noKeyboard = _ref2.noKeyboard,\n noKeyboard = _ref2$noKeyboard === void 0 ? false : _ref2$noKeyboard,\n _ref2$noDrag = _ref2.noDrag,\n noDrag = _ref2$noDrag === void 0 ? false : _ref2$noDrag,\n _ref2$noDragEventsBub = _ref2.noDragEventsBubbling,\n noDragEventsBubbling = _ref2$noDragEventsBub === void 0 ? false : _ref2$noDragEventsBub;\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive,\n draggedFiles = state.draggedFiles; // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n if (inputRef.current) {\n dispatch({\n type: 'openDialog'\n });\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch]); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: 'closeDialog'\n });\n\n if (typeof onFileDialogCancel === 'function') {\n onFileDialogCancel();\n }\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener('focus', onWindowFocus, false);\n return function () {\n window.removeEventListener('focus', onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancel]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, inputRef]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: 'focus'\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: 'blur'\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [inputRef, noClick]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener('dragover', onDocumentDragOver, false);\n document.addEventListener('drop', onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener('dragover', onDocumentDragOver);\n document.removeEventListener('drop', onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (draggedFiles) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n dispatch({\n draggedFiles: draggedFiles,\n isDragActive: true,\n type: 'setDraggedFiles'\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n });\n }\n }, [getFilesFromEvent, onDragEnter, noDragEventsBubbling]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n\n if (event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = 'copy';\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (isEvtWithFiles(event) && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n isDragActive: false,\n type: 'setDraggedFiles',\n draggedFiles: []\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n if (accepted && sizeMatch) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError].filter(function (e) {\n return e;\n });\n fileRejections.push({\n file: file,\n errors: errors\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: 'setFiles'\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n });\n }\n\n dispatch({\n type: 'reset'\n });\n }, [multiple, accept, minSize, maxSize, getFilesFromEvent, onDrop, onDropAccepted, onDropRejected, noDragEventsBubbling]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? 'ref' : _ref3$refKey,\n onKeyDown = _ref3.onKeyDown,\n onFocus = _ref3.onFocus,\n onBlur = _ref3.onBlur,\n onClick = _ref3.onClick,\n onDragEnter = _ref3.onDragEnter,\n onDragOver = _ref3.onDragOver,\n onDragLeave = _ref3.onDragLeave,\n onDrop = _ref3.onDrop,\n rest = _objectWithoutProperties(_ref3, [\"refKey\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"]);\n\n return _objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb))\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}, {}, rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$refKey = _ref4.refKey,\n refKey = _ref4$refKey === void 0 ? 'ref' : _ref4$refKey,\n onChange = _ref4.onChange,\n onClick = _ref4.onClick,\n rest = _objectWithoutProperties(_ref4, [\"refKey\", \"onChange\", \"onClick\"]);\n\n var inputProps = _defineProperty({\n accept: accept,\n multiple: multiple,\n type: 'file',\n style: {\n display: 'none'\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n autoComplete: 'off',\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread({}, inputProps, {}, rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n var fileCount = draggedFiles.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: draggedFiles,\n accept: accept,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n return _objectSpread({}, state, {\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case 'focus':\n return _objectSpread({}, state, {\n isFocused: true\n });\n\n case 'blur':\n return _objectSpread({}, state, {\n isFocused: false\n });\n\n case 'openDialog':\n return _objectSpread({}, state, {\n isFileDialogActive: true\n });\n\n case 'closeDialog':\n return _objectSpread({}, state, {\n isFileDialogActive: false\n });\n\n case 'setDraggedFiles':\n /* eslint no-case-declarations: 0 */\n var isDragActive = action.isDragActive,\n draggedFiles = action.draggedFiles;\n return _objectSpread({}, state, {\n draggedFiles: draggedFiles,\n isDragActive: isDragActive\n });\n\n case 'setFiles':\n return _objectSpread({}, state, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case 'reset':\n return _objectSpread({}, state, {\n isFileDialogActive: false,\n isDragActive: false,\n draggedFiles: [],\n acceptedFiles: [],\n fileRejections: []\n });\n\n default:\n return state;\n }\n}","'use strict';\n/**\n * Simple module to localize the React interface using the same syntax\n * used in the ReactNativeLocalization module\n * (https://github.com/stefalda/ReactNativeLocalization)\n *\n * Originally developed by Stefano Falda (stefano.falda@gmail.com)\n *\n * It uses a call to the Navigator/Browser object to get the current interface language,\n * then display the correct language strings or the default language (the first\n * one if a match is not found).\n *\n * This library has been refactored to use the newly created localized-strings package so to\n * unify the code and make it easier to mantain\n *\n * How to use:\n * Check the instructions at:\n * https://github.com/stefalda/react-localization\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _localizedStrings = require('localized-strings');\n\nvar _localizedStrings2 = _interopRequireDefault(_localizedStrings);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar placeholderRegex = /(\\{[\\d|\\w]+\\})/;\n\n/**\n * Format the passed string replacing the numbered or tokenized placeholders\n * eg. 1: I'd like some {0} and {1}, or just {0}\n * eg. 2: I'd like some {bread} and {butter}, or just {bread}\n * Use example:\n * eg. 1: strings.formatString(strings.question, strings.bread, strings.butter)\n * eg. 2: strings.formatString(strings.question, { bread: strings.bread, butter: strings.butter }\n *\n * THIS METHOD OVERRIDE the one of the parent class by adding support for JSX code\n*/\n_localizedStrings2.default.prototype.formatString = function (str) {\n for (var _len = arguments.length, valuesForPlaceholders = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n valuesForPlaceholders[_key - 1] = arguments[_key];\n }\n\n var hasObject = false;\n var res = (str || '').split(placeholderRegex).filter(function (textPart) {\n return !!textPart;\n }).map(function (textPart, index) {\n if (textPart.match(placeholderRegex)) {\n var matchedKey = textPart.slice(1, -1);\n var valueForPlaceholder = valuesForPlaceholders[matchedKey];\n\n // If no value found, check if working with an object instead\n if (valueForPlaceholder == undefined) {\n var valueFromObjectPlaceholder = valuesForPlaceholders[0][matchedKey];\n if (valueFromObjectPlaceholder !== undefined) {\n valueForPlaceholder = valueFromObjectPlaceholder;\n } else {\n // If value still isn't found, then it must have been undefined/null\n return valueForPlaceholder;\n }\n }\n\n if (_react2.default.isValidElement(valueForPlaceholder)) {\n hasObject = true;\n return _react2.default.Children.toArray(valueForPlaceholder).map(function (component) {\n return _extends({}, component, { key: index.toString() });\n });\n }\n\n return valueForPlaceholder;\n }\n return textPart;\n });\n // If the results contains a object return an array otherwise return a string\n if (hasObject) return res;\n return res.join('');\n};\n\nexports.default = _localizedStrings2.default;","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createBrowserHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses HTML5 history.\n */\nclass BrowserRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\"\n );\n };\n}\n\nexport default BrowserRouter;\n","import React from \"react\";\nimport { Router } from \"react-router\";\nimport { createHashHistory as createHistory } from \"history\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\n/**\n * The public API for a that uses window.location.hash.\n */\nclass HashRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { HashRouter as Router }`.\"\n );\n };\n}\n\nexport default HashRouter;\n","import { createLocation } from \"history\";\n\nexport const resolveToLocation = (to, currentLocation) =>\n typeof to === \"function\" ? to(currentLocation) : to;\n\nexport const normalizeToLocation = (to, currentLocation) => {\n return typeof to === \"string\"\n ? createLocation(to, null, null, currentLocation)\n : to;\n};\n","import React from \"react\";\nimport { __RouterContext as RouterContext } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nconst LinkAnchor = forwardRef(\n (\n {\n innerRef, // TODO: deprecate\n navigate,\n onClick,\n ...rest\n },\n forwardedRef\n ) => {\n const { target } = rest;\n\n let props = {\n ...rest,\n onClick: event => {\n try {\n if (onClick) onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (\n !event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n (!target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n return ;\n }\n);\n\nif (__DEV__) {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n\n/**\n * The public API for rendering a history-aware .\n */\nconst Link = forwardRef(\n (\n {\n component = LinkAnchor,\n replace,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history } = context;\n\n const location = normalizeToLocation(\n resolveToLocation(to, context.location),\n context.location\n );\n\n const href = location ? history.createHref(location) : \"\";\n const props = {\n ...rest,\n href,\n navigate() {\n const location = resolveToLocation(to, context.location);\n const method = replace ? history.replace : history.push;\n\n method(location);\n }\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return React.createElement(component, props);\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n const toType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.object,\n PropTypes.func\n ]);\n const refType = PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.func,\n PropTypes.shape({ current: PropTypes.any })\n ]);\n\n Link.displayName = \"Link\";\n\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nexport default Link;\n","import React from \"react\";\nimport { __RouterContext as RouterContext, matchPath } from \"react-router\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport Link from \"./Link.js\";\nimport {\n resolveToLocation,\n normalizeToLocation\n} from \"./utils/locationUtils.js\";\n\n// React 15 compat\nconst forwardRefShim = C => C;\nlet { forwardRef } = React;\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction joinClassnames(...classnames) {\n return classnames.filter(i => i).join(\" \");\n}\n\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\nconst NavLink = forwardRef(\n (\n {\n \"aria-current\": ariaCurrent = \"page\",\n activeClassName = \"active\",\n activeStyle,\n className: classNameProp,\n exact,\n isActive: isActiveProp,\n location: locationProp,\n sensitive,\n strict,\n style: styleProp,\n to,\n innerRef, // TODO: deprecate\n ...rest\n },\n forwardedRef\n ) => {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const currentLocation = locationProp || context.location;\n const toLocation = normalizeToLocation(\n resolveToLocation(to, currentLocation),\n currentLocation\n );\n const { pathname: path } = toLocation;\n // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n const escapedPath =\n path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n\n const match = escapedPath\n ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact,\n sensitive,\n strict\n })\n : null;\n const isActive = !!(isActiveProp\n ? isActiveProp(match, currentLocation)\n : match);\n\n const className = isActive\n ? joinClassnames(classNameProp, activeClassName)\n : classNameProp;\n const style = isActive ? { ...styleProp, ...activeStyle } : styleProp;\n\n const props = {\n \"aria-current\": (isActive && ariaCurrent) || null,\n className,\n style,\n to: toLocation,\n ...rest\n };\n\n // React 15 compat\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return ;\n }}\n \n );\n }\n);\n\nif (__DEV__) {\n NavLink.displayName = \"NavLink\";\n\n const ariaCurrentType = PropTypes.oneOf([\n \"page\",\n \"step\",\n \"location\",\n \"date\",\n \"time\",\n \"true\"\n ]);\n\n NavLink.propTypes = {\n ...Link.propTypes,\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.string,\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.object\n };\n}\n\nexport default NavLink;\n","import React, { Component } from 'react';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : {};\n\nfunction getUniqueId() {\n var key = '__global_unique_id__';\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n}\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + getUniqueId() + '__';\n\n var Provider = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Provider, _Component);\n\n function Provider() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0;\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== 'production') {\n warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: ' + changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_Component2) {\n _inheritsLoose(Consumer, _Component2);\n\n function Consumer() {\n var _this2;\n\n _this2 = _Component2.apply(this, arguments) || this;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nvar index = React.createContext || createReactContext;\n\nexport default index;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nexport default createNamedContext;\n","import createNamedContext from \"./createNameContext\";\n\nconst historyContext = /*#__PURE__*/ createNamedContext(\"Router-History\");\nexport default historyContext;\n","// TODO: Replace with React.createContext once we can assume React 16+\nimport createContext from \"mini-create-react-context\";\n\nconst createNamedContext = name => {\n const context = createContext();\n context.displayName = name;\n\n return context;\n};\n\nconst context = /*#__PURE__*/ createNamedContext(\"Router\");\nexport default context;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport warning from \"tiny-warning\";\n\nimport HistoryContext from \"./HistoryContext.js\";\nimport RouterContext from \"./RouterContext.js\";\n\n/**\n * The public API for putting history on context.\n */\nclass Router extends React.Component {\n static computeRootMatch(pathname) {\n return { path: \"/\", url: \"/\", params: {}, isExact: pathname === \"/\" };\n }\n\n constructor(props) {\n super(props);\n\n this.state = {\n location: props.history.location\n };\n\n // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n this._isMounted = false;\n this._pendingLocation = null;\n\n if (!props.staticContext) {\n this.unlisten = props.history.listen(location => {\n if (this._isMounted) {\n this.setState({ location });\n } else {\n this._pendingLocation = location;\n }\n });\n }\n }\n\n componentDidMount() {\n this._isMounted = true;\n\n if (this._pendingLocation) {\n this.setState({ location: this._pendingLocation });\n }\n }\n\n componentWillUnmount() {\n if (this.unlisten) this.unlisten();\n }\n\n render() {\n return (\n \n \n \n );\n }\n}\n\nif (__DEV__) {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function(prevProps) {\n warning(\n prevProps.history === this.props.history,\n \"You cannot change \"\n );\n };\n}\n\nexport default Router;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createMemoryHistory as createHistory } from \"history\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\n/**\n * The public API for a that stores location in memory.\n */\nclass MemoryRouter extends React.Component {\n history = createHistory(this.props);\n\n render() {\n return ;\n }\n}\n\nif (__DEV__) {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\"\n );\n };\n}\n\nexport default MemoryRouter;\n","import React from \"react\";\n\nclass Lifecycle extends React.Component {\n componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n }\n\n componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n }\n\n render() {\n return null;\n }\n}\n\nexport default Lifecycle;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n\n const generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\nfunction generatePath(path = \"/\", params = {}) {\n return path === \"/\" ? path : compilePath(path)(params, { pretty: true });\n}\n\nexport default generatePath;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, locationsAreEqual } from \"history\";\nimport invariant from \"tiny-invariant\";\n\nimport Lifecycle from \"./Lifecycle.js\";\nimport RouterContext from \"./RouterContext.js\";\nimport generatePath from \"./generatePath.js\";\n\n/**\n * The public API for navigating programmatically with a component.\n */\nfunction Redirect({ computedMatch, to, push = false }) {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const { history, staticContext } = context;\n\n const method = push ? history.push : history.replace;\n const location = createLocation(\n computedMatch\n ? typeof to === \"string\"\n ? generatePath(to, computedMatch.params)\n : {\n ...to,\n pathname: generatePath(to.pathname, computedMatch.params)\n }\n : to\n );\n\n // When rendering in a static context,\n // set the new location immediately.\n if (staticContext) {\n method(location);\n return null;\n }\n\n return (\n {\n method(location);\n }}\n onUpdate={(self, prevProps) => {\n const prevLocation = createLocation(prevProps.to);\n if (\n !locationsAreEqual(prevLocation, {\n ...location,\n key: prevLocation.key\n })\n ) {\n method(location);\n }\n }}\n to={to}\n />\n );\n }}\n \n );\n}\n\nif (__DEV__) {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nexport default Redirect;\n","import pathToRegexp from \"path-to-regexp\";\n\nconst cache = {};\nconst cacheLimit = 10000;\nlet cacheCount = 0;\n\nfunction compilePath(path, options) {\n const cacheKey = `${options.end}${options.strict}${options.sensitive}`;\n const pathCache = cache[cacheKey] || (cache[cacheKey] = {});\n\n if (pathCache[path]) return pathCache[path];\n\n const keys = [];\n const regexp = pathToRegexp(path, keys, options);\n const result = { regexp, keys };\n\n if (cacheCount < cacheLimit) {\n pathCache[path] = result;\n cacheCount++;\n }\n\n return result;\n}\n\n/**\n * Public API for matching a URL pathname to a path.\n */\nfunction matchPath(pathname, options = {}) {\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = { path: options };\n }\n\n const { path, exact = false, strict = false, sensitive = false } = options;\n\n const paths = [].concat(path);\n\n return paths.reduce((matched, path) => {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n const { regexp, keys } = compilePath(path, {\n end: exact,\n strict,\n sensitive\n });\n const match = regexp.exec(pathname);\n\n if (!match) return null;\n\n const [url, ...values] = match;\n const isExact = pathname === url;\n\n if (exact && !isExact) return null;\n\n return {\n path, // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url, // the matched portion of the URL\n isExact, // whether or not we matched exactly\n params: keys.reduce((memo, key, index) => {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nexport default matchPath;\n","import React from \"react\";\nimport { isValidElementType } from \"react-is\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n const value = children(props);\n\n warning(\n value !== undefined,\n \"You returned `undefined` from the `children` function of \" +\n `, but you ` +\n \"should have returned a React element or `null`\"\n );\n\n return value || null;\n}\n\n/**\n * The public API for matching a single path and rendering.\n */\nclass Route extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n const match = this.props.computedMatch\n ? this.props.computedMatch // already computed the match for us\n : this.props.path\n ? matchPath(location.pathname, this.props)\n : context.match;\n\n const props = { ...context, location, match };\n\n let { children, component, render } = this.props;\n\n // Preact uses an empty array as children by\n // default, so use null if that's the case.\n if (Array.isArray(children) && children.length === 0) {\n children = null;\n }\n\n return (\n \n {props.match\n ? children\n ? typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : children\n : component\n ? React.createElement(component, props)\n : render\n ? render(props)\n : null\n : typeof children === \"function\"\n ? __DEV__\n ? evalChildrenDev(children, props, this.props.path)\n : children(props)\n : null}\n \n );\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: (props, propName) => {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\n `Invalid prop 'component' supplied to 'Route': the prop is not a valid React component`\n );\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string)\n ]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function() {\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.component\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(\n this.props.children &&\n !isEmptyChildren(this.props.children) &&\n this.props.render\n ),\n \"You should not use and in the same route; will be ignored\"\n );\n\n warning(\n !(this.props.component && this.props.render),\n \"You should not use and in the same route; will be ignored\"\n );\n };\n\n Route.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Route;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { createLocation, createPath } from \"history\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport Router from \"./Router.js\";\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n\n return {\n ...location,\n pathname: addLeadingSlash(basename) + location.pathname\n };\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n\n const base = addLeadingSlash(basename);\n\n if (location.pathname.indexOf(base) !== 0) return location;\n\n return {\n ...location,\n pathname: location.pathname.substr(base.length)\n };\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return () => {\n invariant(false, \"You cannot %s with \", methodName);\n };\n}\n\nfunction noop() {}\n\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\nclass StaticRouter extends React.Component {\n navigateTo(location, action) {\n const { basename = \"\", context = {} } = this.props;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n }\n\n handlePush = location => this.navigateTo(location, \"PUSH\");\n handleReplace = location => this.navigateTo(location, \"REPLACE\");\n handleListen = () => noop;\n handleBlock = () => noop;\n\n render() {\n const { basename = \"\", context = {}, location = \"/\", ...rest } = this.props;\n\n const history = {\n createHref: path => addLeadingSlash(basename + createURL(path)),\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n\n return ;\n }\n}\n\nif (__DEV__) {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function() {\n warning(\n !this.props.history,\n \" ignores the history prop. To use a custom history, \" +\n \"use `import { Router }` instead of `import { StaticRouter as Router }`.\"\n );\n };\n}\n\nexport default StaticRouter;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\n\nimport RouterContext from \"./RouterContext.js\";\nimport matchPath from \"./matchPath.js\";\n\n/**\n * The public API for rendering the first that matches.\n */\nclass Switch extends React.Component {\n render() {\n return (\n \n {context => {\n invariant(context, \"You should not use outside a \");\n\n const location = this.props.location || context.location;\n\n let element, match;\n\n // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n React.Children.forEach(this.props.children, child => {\n if (match == null && React.isValidElement(child)) {\n element = child;\n\n const path = child.props.path || child.props.from;\n\n match = path\n ? matchPath(location.pathname, { ...child.props, path })\n : context.match;\n }\n });\n\n return match\n ? React.cloneElement(element, { location, computedMatch: match })\n : null;\n }}\n \n );\n }\n}\n\nif (__DEV__) {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function(prevProps) {\n warning(\n !(this.props.location && !prevProps.location),\n ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.'\n );\n\n warning(\n !(!this.props.location && prevProps.location),\n ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.'\n );\n };\n}\n\nexport default Switch;\n","import React from \"react\";\nimport invariant from \"tiny-invariant\";\n\nimport Context from \"./RouterContext.js\";\nimport HistoryContext from \"./HistoryContext.js\";\nimport matchPath from \"./matchPath.js\";\n\nconst useContext = React.useContext;\n\nexport function useHistory() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useHistory()\"\n );\n }\n\n return useContext(HistoryContext);\n}\n\nexport function useLocation() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useLocation()\"\n );\n }\n\n return useContext(Context).location;\n}\n\nexport function useParams() {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useParams()\"\n );\n }\n\n const match = useContext(Context).match;\n return match ? match.params : {};\n}\n\nexport function useRouteMatch(path) {\n if (__DEV__) {\n invariant(\n typeof useContext === \"function\",\n \"You must use React >= 16.8 in order to use useRouteMatch()\"\n );\n }\n\n const location = useLocation();\n const match = useContext(Context).match;\n\n return path ? matchPath(location.pathname, path) : match;\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = prefix || defaultDelimiter\n var pattern = capture || group\n var prevText = prefix || (typeof tokens[tokens.length - 1] === 'string' ? tokens[tokens.length - 1] : '')\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : restrictBacktrack(delimiter, prevText))\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\nfunction restrictBacktrack(delimiter, prevText) {\n if (!prevText || prevText.indexOf(delimiter) > -1) {\n return '[^' + escapeString(delimiter) + ']+?'\n }\n\n return escapeString(prevText) + '|(?:(?!' + escapeString(prevText) + ')[^' + escapeString(delimiter) + '])+?'\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1>>1,e=a[d];if(0>>1;dg(C,c))ng(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(ng(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Qa||125d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar punycode = require('punycode');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a puny coded representation of \"domain\".\n // It only converts the part of the domain name that\n // has non ASCII characters. I.e. it dosent matter if\n // you call it with a domain that already is in ASCII.\n var domainArray = this.hostname.split('.');\n var newOut = [];\n for (var i = 0; i < domainArray.length; ++i) {\n var s = domainArray[i];\n newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n 'xn--' + punycode.encode(s) : s);\n }\n this.hostname = newOut.join('.');\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n Object.keys(this).forEach(function(k) {\n result[k] = this[k];\n }, this);\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n Object.keys(relative).forEach(function(k) {\n if (k !== 'protocol')\n result[k] = relative[k];\n });\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n Object.keys(relative).forEach(function(k) {\n result[k] = relative[k];\n });\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host) && (last === '.' || last === '..') ||\n last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last == '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n","import { useRef, useEffect, useMemo } from 'react';\n\nexport interface CallOptions {\n /**\n * Controls if the function should be invoked on the leading edge of the timeout.\n */\n leading?: boolean;\n /**\n * Controls if the function should be invoked on the trailing edge of the timeout.\n */\n trailing?: boolean;\n}\n\nexport interface Options extends CallOptions {\n /**\n * The maximum time the given function is allowed to be delayed before it's invoked.\n */\n maxWait?: number;\n}\n\nexport interface ControlFunctions {\n /**\n * Cancel pending function invocations\n */\n cancel: () => void;\n /**\n * Immediately invoke pending function invocations\n */\n flush: () => void;\n /**\n * Returns `true` if there are any pending function invocations\n */\n isPending: () => boolean;\n}\n\n/**\n * Subsequent calls to the debounced function `debounced.callback` return the result of the last func invocation.\n * Note, that if there are no previous invocations it's mean you will get undefined. You should check it in your code properly.\n */\nexport interface DebouncedState ReturnType> extends ControlFunctions {\n (...args: Parameters): ReturnType | undefined;\n}\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked, or until the next browser frame is drawn.\n *\n * The debounced function comes with a `cancel` method to cancel delayed `func`\n * invocations and a `flush` method to immediately invoke them.\n *\n * Provide `options` to indicate whether `func` should be invoked on the leading\n * and/or trailing edge of the `wait` timeout. The `func` is invoked with the\n * last arguments provided to the debounced function.\n *\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `debounce` and `throttle`.\n *\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0]\n * The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n * used (if available, otherwise it will be setTimeout(...,0)).\n * @param {Object} [options={}] The options object.\n * Controls if `func` should be invoked on the leading edge of the timeout.\n * @param {boolean} [options.leading=false]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {number} [options.maxWait]\n * Controls if `func` should be invoked the trailing edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * const resizeHandler = useDebouncedCallback(calculateLayout, 150);\n * window.addEventListener('resize', resizeHandler)\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * const clickHandler = useDebouncedCallback(sendMail, 300, {\n * leading: true,\n * trailing: false,\n * })\n * \n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * const debounced = useDebouncedCallback(batchLog, 250, { 'maxWait': 1000 })\n * const source = new EventSource('/stream')\n * source.addEventListener('message', debounced)\n *\n * // Cancel the trailing debounced invocation.\n * window.addEventListener('popstate', debounced.cancel)\n *\n * // Check for pending invocations.\n * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n */\nexport default function useDebouncedCallback ReturnType>(\n func: T,\n wait?: number,\n options?: Options\n): DebouncedState {\n const lastCallTime = useRef(null);\n const lastInvokeTime = useRef(0);\n const timerId = useRef(null);\n const lastArgs = useRef([]);\n const lastThis = useRef();\n const result = useRef>();\n const funcRef = useRef(func);\n const mounted = useRef(true);\n\n useEffect(() => {\n funcRef.current = func;\n }, [func]);\n\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n const useRAF = !wait && wait !== 0 && typeof window !== 'undefined';\n\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n\n wait = +wait || 0;\n options = options || {};\n\n const leading = !!options.leading;\n const trailing = 'trailing' in options ? !!options.trailing : true; // `true` by default\n const maxing = 'maxWait' in options;\n const maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : null;\n\n useEffect(() => {\n mounted.current = true;\n return () => {\n mounted.current = false;\n };\n }, []);\n\n // You may have a question, why we have so many code under the useMemo definition.\n //\n // This was made as we want to escape from useCallback hell and\n // not to initialize a number of functions each time useDebouncedCallback is called.\n //\n // It means that we have less garbage for our GC calls which improves performance.\n // Also, it makes this library smaller.\n //\n // And the last reason, that the code without lots of useCallback with deps is easier to read.\n // You have only one place for that.\n const debounced = useMemo(() => {\n const invokeFunc = (time: number) => {\n const args = lastArgs.current;\n const thisArg = lastThis.current;\n\n lastArgs.current = lastThis.current = null;\n lastInvokeTime.current = time;\n return (result.current = funcRef.current.apply(thisArg, args));\n };\n\n const startTimer = (pendingFunc: () => void, wait: number) => {\n if (useRAF) cancelAnimationFrame(timerId.current);\n timerId.current = useRAF ? requestAnimationFrame(pendingFunc) : setTimeout(pendingFunc, wait);\n };\n\n const shouldInvoke = (time: number) => {\n if (!mounted.current) return false;\n\n const timeSinceLastCall = time - lastCallTime.current;\n const timeSinceLastInvoke = time - lastInvokeTime.current;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (\n !lastCallTime.current ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait)\n );\n };\n\n const trailingEdge = (time: number) => {\n timerId.current = null;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs.current) {\n return invokeFunc(time);\n }\n lastArgs.current = lastThis.current = null;\n return result.current;\n };\n\n const timerExpired = () => {\n const time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // https://github.com/xnimorz/use-debounce/issues/97\n if (!mounted.current) {\n return;\n }\n // Remaining wait calculation\n const timeSinceLastCall = time - lastCallTime.current;\n const timeSinceLastInvoke = time - lastInvokeTime.current;\n const timeWaiting = wait - timeSinceLastCall;\n const remainingWait = maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n\n // Restart the timer\n startTimer(timerExpired, remainingWait);\n };\n\n const func: DebouncedState = (...args: Parameters): ReturnType => {\n const time = Date.now();\n const isInvoking = shouldInvoke(time);\n\n lastArgs.current = args;\n lastThis.current = this;\n lastCallTime.current = time;\n\n if (isInvoking) {\n if (!timerId.current && mounted.current) {\n // Reset any `maxWait` timer.\n lastInvokeTime.current = lastCallTime.current;\n // Start the timer for the trailing edge.\n startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(lastCallTime.current) : result.current;\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime.current);\n }\n }\n if (!timerId.current) {\n startTimer(timerExpired, wait);\n }\n return result.current;\n };\n\n func.cancel = () => {\n if (timerId.current) {\n useRAF ? cancelAnimationFrame(timerId.current) : clearTimeout(timerId.current);\n }\n lastInvokeTime.current = 0;\n lastArgs.current = lastCallTime.current = lastThis.current = timerId.current = null;\n };\n\n func.isPending = () => {\n return !!timerId.current;\n };\n\n func.flush = () => {\n return !timerId.current ? result.current : trailingEdge(Date.now());\n };\n\n return func;\n }, [leading, maxing, wait, maxWait, trailing, useRAF]);\n\n return debounced;\n}\n","import { useCallback, useRef, useState, Dispatch } from 'react';\nimport useDebouncedCallback, { DebouncedState } from './useDebouncedCallback';\n\nfunction valueEquality(left: T, right: T): boolean {\n return left === right;\n}\n\nfunction adjustFunctionValueOfSetState(value: T): T | (() => T) {\n return typeof value === 'function' ? () => value : value;\n}\n\nfunction useStateIgnoreCallback(initialState: T): [T, Dispatch] {\n const [state, setState] = useState(adjustFunctionValueOfSetState(initialState));\n const setStateIgnoreCallback = useCallback((value: T) => setState(adjustFunctionValueOfSetState(value)), []);\n return [state, setStateIgnoreCallback];\n}\n\nexport default function useDebounce(\n value: T,\n delay: number,\n options?: { maxWait?: number; leading?: boolean; trailing?: boolean; equalityFn?: (left: T, right: T) => boolean }\n): [T, DebouncedState<(value: T) => void>] {\n const eq = (options && options.equalityFn) || valueEquality;\n\n const [state, dispatch] = useStateIgnoreCallback(value);\n const debounced = useDebouncedCallback(useCallback((value: T) => dispatch(value), [dispatch]), delay, options);\n const previousValue = useRef(value);\n\n if (!eq(previousValue.current, value)) {\n debounced(value);\n previousValue.current = value;\n }\n\n return [state, debounced];\n}\n","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object'\n && typeof arg.copy === 'function'\n && typeof arg.fill === 'function'\n && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n if (typeof value !== 'object') {\n return false;\n }\n try {\n prototypeValueOf(value);\n return true;\n } catch(e) {\n return false;\n }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n return ArrayBuffer.isView(value);\n }\n\n return (\n isTypedArray(value) ||\n isDataView(value)\n );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n typeof Map !== 'undefined' &&\n isMapToString(new Map())\n);\n\nfunction isMap(value) {\n if (typeof Map === 'undefined') {\n return false;\n }\n\n return isMapToString.working\n ? isMapToString(value)\n : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n typeof Set !== 'undefined' &&\n isSetToString(new Set())\n);\nfunction isSet(value) {\n if (typeof Set === 'undefined') {\n return false;\n }\n\n return isSetToString.working\n ? isSetToString(value)\n : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n typeof WeakMap !== 'undefined' &&\n isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n if (typeof WeakMap === 'undefined') {\n return false;\n }\n\n return isWeakMapToString.working\n ? isWeakMapToString(value)\n : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n typeof WeakSet !== 'undefined' &&\n isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n if (typeof ArrayBuffer === 'undefined') {\n return false;\n }\n\n return isArrayBufferToString.working\n ? isArrayBufferToString(value)\n : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n typeof ArrayBuffer !== 'undefined' &&\n typeof DataView !== 'undefined' &&\n isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n if (typeof DataView === 'undefined') {\n return false;\n }\n\n return isDataViewToString.working\n ? isDataViewToString(value)\n : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n if (typeof SharedArrayBufferCopy === 'undefined') {\n return false;\n }\n\n if (typeof isSharedArrayBufferToString.working === 'undefined') {\n isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n }\n\n return isSharedArrayBufferToString.working\n ? isSharedArrayBufferToString(value)\n : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n return (\n isNumberObject(value) ||\n isStringObject(value) ||\n isBooleanObject(value) ||\n isBigIntObject(value) ||\n isSymbolObject(value)\n );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n return typeof Uint8Array !== 'undefined' && (\n isArrayBuffer(value) ||\n isSharedArrayBuffer(value)\n );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n Object.defineProperty(exports, method, {\n enumerable: false,\n value: function() {\n throw new Error(method + ' is not supported in userland');\n }\n });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n var debugEnv = process.env.NODE_DEBUG;\n debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n .replace(/\\*/g, '.*')\n .replace(/,/g, '$|^')\n .toUpperCase();\n debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (debugEnvRegex.test(set)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').slice(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.slice(1, -1);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default {\n randomUUID\n};","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nlet getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nconst byteToHex = [];\n\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\n\nexport function unsafeStringify(arr, offset = 0) {\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n return byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]];\n}\n\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\n\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n\n options = options || {};\n const rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return unsafeStringify(rnds);\n}\n\nexport default v4;","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bind/callBound');\nvar gOPD = require('gopd');\n\n/** @type {(O: object) => string} */\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\nvar getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {(receiver: import('.').TypedArray) => string | typeof Uint8Array.prototype.slice.call | typeof Uint8Array.prototype.set.call} Getter */\n/** @type {{ [k in `\\$${import('.').TypedArrayName}`]?: Getter } & { __proto__: null }} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getPrototypeOf) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr) {\n\t\t\tvar proto = getPrototypeOf(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor) {\n\t\t\t\tvar superProto = getPrototypeOf(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(fn);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = $slice(typedArray, 1);\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t// eslint-disable-next-line no-extra-parens\n\t\t/** @type {Record<`\\$${TypedArrayName}`, Getter>} */ /** @type {any} */ (cache),\n\t\t/** @type {(getter: typeof cache, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error TODO: fix\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = $slice(name, 1);\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nexport { _inheritsLoose as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (e.includes(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthValidationErrorCode } from '../errors/types/validation';\nexport const validationErrorMap = {\n [AuthValidationErrorCode.EmptyChallengeResponse]: {\n message: 'challengeResponse is required to confirmSignIn',\n },\n [AuthValidationErrorCode.EmptyConfirmResetPasswordUsername]: {\n message: 'username is required to confirmResetPassword',\n },\n [AuthValidationErrorCode.EmptyConfirmSignUpCode]: {\n message: 'code is required to confirmSignUp',\n },\n [AuthValidationErrorCode.EmptyConfirmSignUpUsername]: {\n message: 'username is required to confirmSignUp',\n },\n [AuthValidationErrorCode.EmptyConfirmResetPasswordConfirmationCode]: {\n message: 'confirmationCode is required to confirmResetPassword',\n },\n [AuthValidationErrorCode.EmptyConfirmResetPasswordNewPassword]: {\n message: 'newPassword is required to confirmResetPassword',\n },\n [AuthValidationErrorCode.EmptyResendSignUpCodeUsername]: {\n message: 'username is required to confirmSignUp',\n },\n [AuthValidationErrorCode.EmptyResetPasswordUsername]: {\n message: 'username is required to resetPassword',\n },\n [AuthValidationErrorCode.EmptySignInPassword]: {\n message: 'password is required to signIn',\n },\n [AuthValidationErrorCode.EmptySignInUsername]: {\n message: 'username is required to signIn',\n },\n [AuthValidationErrorCode.EmptySignUpPassword]: {\n message: 'password is required to signUp',\n },\n [AuthValidationErrorCode.EmptySignUpUsername]: {\n message: 'username is required to signUp',\n },\n [AuthValidationErrorCode.CustomAuthSignInPassword]: {\n message: 'A password is not needed when signing in with CUSTOM_WITHOUT_SRP',\n recoverySuggestion: 'Do not include a password in your signIn call.',\n },\n [AuthValidationErrorCode.IncorrectMFAMethod]: {\n message: 'Incorrect MFA method was chosen. It should be either SMS or TOTP',\n recoverySuggestion: 'Try to pass TOTP or SMS as the challengeResponse',\n },\n [AuthValidationErrorCode.EmptyVerifyTOTPSetupCode]: {\n message: 'code is required to verifyTotpSetup',\n },\n [AuthValidationErrorCode.EmptyUpdatePassword]: {\n message: 'oldPassword and newPassword are required to changePassword',\n },\n [AuthValidationErrorCode.EmptyConfirmUserAttributeCode]: {\n message: 'confirmation code is required to confirmUserAttribute',\n },\n};\n// TODO: delete this code when the Auth class is removed.\nexport var AuthErrorStrings;\n(function (AuthErrorStrings) {\n AuthErrorStrings[\"DEFAULT_MSG\"] = \"Authentication Error\";\n AuthErrorStrings[\"EMPTY_EMAIL\"] = \"Email cannot be empty\";\n AuthErrorStrings[\"EMPTY_PHONE\"] = \"Phone number cannot be empty\";\n AuthErrorStrings[\"EMPTY_USERNAME\"] = \"Username cannot be empty\";\n AuthErrorStrings[\"INVALID_USERNAME\"] = \"The username should either be a string or one of the sign in types\";\n AuthErrorStrings[\"EMPTY_PASSWORD\"] = \"Password cannot be empty\";\n AuthErrorStrings[\"EMPTY_CODE\"] = \"Confirmation code cannot be empty\";\n AuthErrorStrings[\"SIGN_UP_ERROR\"] = \"Error creating account\";\n AuthErrorStrings[\"NO_MFA\"] = \"No valid MFA method provided\";\n AuthErrorStrings[\"INVALID_MFA\"] = \"Invalid MFA type\";\n AuthErrorStrings[\"EMPTY_CHALLENGE\"] = \"Challenge response cannot be empty\";\n AuthErrorStrings[\"NO_USER_SESSION\"] = \"Failed to get the session because the user is empty\";\n AuthErrorStrings[\"NETWORK_ERROR\"] = \"Network Error\";\n AuthErrorStrings[\"DEVICE_CONFIG\"] = \"Device tracking has not been configured in this User Pool\";\n AuthErrorStrings[\"AUTOSIGNIN_ERROR\"] = \"Please use your credentials to sign in\";\n AuthErrorStrings[\"OAUTH_ERROR\"] = \"Couldn't finish OAuth flow, check your User Pool HostedUI settings\";\n})(AuthErrorStrings || (AuthErrorStrings = {}));\nexport var AuthErrorCodes;\n(function (AuthErrorCodes) {\n AuthErrorCodes[\"SignInException\"] = \"SignInException\";\n AuthErrorCodes[\"OAuthSignInError\"] = \"OAuthSignInException\";\n})(AuthErrorCodes || (AuthErrorCodes = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyError, } from '@aws-amplify/core/internals/utils';\nexport class AuthError extends AmplifyError {\n constructor(params) {\n super(params);\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n this.constructor = AuthError;\n Object.setPrototypeOf(this, AuthError.prototype);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from './AuthError';\nexport const USER_UNAUTHENTICATED_EXCEPTION = 'UserUnAuthenticatedException';\nexport const USER_ALREADY_AUTHENTICATED_EXCEPTION = 'UserAlreadyAuthenticatedException';\nexport const DEVICE_METADATA_NOT_FOUND_EXCEPTION = 'DeviceMetadataNotFoundException';\nexport const AUTO_SIGN_IN_EXCEPTION = 'AutoSignInException';\nexport const INVALID_REDIRECT_EXCEPTION = 'InvalidRedirectException';\nexport const invalidRedirectException = new AuthError({\n name: INVALID_REDIRECT_EXCEPTION,\n message: 'signInRedirect or signOutRedirect had an invalid format or was not found.',\n recoverySuggestion: 'Please make sure the signIn/Out redirect in your oauth config is valid.',\n});\nexport const INVALID_ORIGIN_EXCEPTION = 'InvalidOriginException';\nexport const invalidOriginException = new AuthError({\n name: INVALID_ORIGIN_EXCEPTION,\n message: 'redirect is coming from a different origin. The oauth flow needs to be initiated from the same origin',\n recoverySuggestion: 'Please call signInWithRedirect from the same origin.',\n});\nexport const OAUTH_SIGNOUT_EXCEPTION = 'OAuthSignOutException';\nexport const TOKEN_REFRESH_EXCEPTION = 'TokenRefreshException';\nexport const UNEXPECTED_SIGN_IN_INTERRUPTION_EXCEPTION = 'UnexpectedSignInInterruptionException';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AuthValidationErrorCode;\n(function (AuthValidationErrorCode) {\n AuthValidationErrorCode[\"EmptySignInUsername\"] = \"EmptySignInUsername\";\n AuthValidationErrorCode[\"EmptySignInPassword\"] = \"EmptySignInPassword\";\n AuthValidationErrorCode[\"CustomAuthSignInPassword\"] = \"CustomAuthSignInPassword\";\n AuthValidationErrorCode[\"EmptySignUpUsername\"] = \"EmptySignUpUsername\";\n AuthValidationErrorCode[\"EmptySignUpPassword\"] = \"EmptySignUpPassword\";\n AuthValidationErrorCode[\"EmptyConfirmSignUpUsername\"] = \"EmptyConfirmSignUpUsername\";\n AuthValidationErrorCode[\"EmptyConfirmSignUpCode\"] = \"EmptyConfirmSignUpCode\";\n AuthValidationErrorCode[\"EmptyResendSignUpCodeUsername\"] = \"EmptyresendSignUpCodeUsername\";\n AuthValidationErrorCode[\"EmptyChallengeResponse\"] = \"EmptyChallengeResponse\";\n AuthValidationErrorCode[\"EmptyConfirmResetPasswordUsername\"] = \"EmptyConfirmResetPasswordUsername\";\n AuthValidationErrorCode[\"EmptyConfirmResetPasswordNewPassword\"] = \"EmptyConfirmResetPasswordNewPassword\";\n AuthValidationErrorCode[\"EmptyConfirmResetPasswordConfirmationCode\"] = \"EmptyConfirmResetPasswordConfirmationCode\";\n AuthValidationErrorCode[\"EmptyResetPasswordUsername\"] = \"EmptyResetPasswordUsername\";\n AuthValidationErrorCode[\"EmptyVerifyTOTPSetupCode\"] = \"EmptyVerifyTOTPSetupCode\";\n AuthValidationErrorCode[\"EmptyConfirmUserAttributeCode\"] = \"EmptyConfirmUserAttributeCode\";\n AuthValidationErrorCode[\"IncorrectMFAMethod\"] = \"IncorrectMFAMethod\";\n AuthValidationErrorCode[\"EmptyUpdatePassword\"] = \"EmptyUpdatePassword\";\n})(AuthValidationErrorCode || (AuthValidationErrorCode = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyErrorCode, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../AuthError';\nexport function assertServiceError(error) {\n if (!error ||\n error.name === 'Error' ||\n error instanceof TypeError) {\n throw new AuthError({\n name: AmplifyErrorCode.Unknown,\n message: 'An unknown error has occurred.',\n underlyingError: error,\n });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { validationErrorMap } from '../../common/AuthErrorStrings';\nimport { AuthError } from '../AuthError';\nexport function assertValidationError(assertion, name) {\n const { message, recoverySuggestion } = validationErrorMap[name];\n if (!assertion) {\n throw new AuthError({ name, message, recoverySuggestion });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from '../../../errors/AuthError';\nimport { AUTO_SIGN_IN_EXCEPTION } from '../../../errors/constants';\nconst initialAutoSignIn = async () => {\n throw new AuthError({\n name: AUTO_SIGN_IN_EXCEPTION,\n message: 'The autoSignIn flow has not started, or has been cancelled/completed.',\n recoverySuggestion: 'Please try to use the signIn API or log out before starting a new autoSignIn flow.',\n });\n};\n/**\n * Signs a user in automatically after finishing the sign-up process.\n *\n * This API will automatically sign a user in if the autoSignIn flow has been completed in the following cases:\n * - User confirmed their account with a verification code sent to their phone or email (default option).\n * - User confirmed their account with a verification link sent to their phone or email. In order to\n * enable this option you need to go to the Amazon Cognito [console](https://aws.amazon.com/pm/cognito),\n * look for your userpool, then go to the `Messaging` tab and enable `link` mode inside the `Verification message` option.\n * Finally you need to define the `signUpVerificationMethod` in your `Auth` config.\n *\n * @example\n * ```typescript\n * Amplify.configure({\n * Auth: {\n * Cognito: {\n * ...cognitoConfig,\n * signUpVerificationMethod: \"link\" // the default value is \"code\"\n * }\n *\t}});\n * ```\n *\n * @throws AutoSignInException - Thrown when the autoSignIn flow has not started, or has been cancelled/completed.\n * @returns The signInOutput.\n *\n * @example\n * ```typescript\n * // handleSignUp.ts\n * async function handleSignUp(\n * username:string,\n * password:string\n * ){\n * try {\n * const { nextStep } = await signUp({\n * username,\n * password,\n * options: {\n * userAttributes:{ email:'email@email.com'},\n * autoSignIn: true // This enables the auto sign-in flow.\n * },\n * });\n *\n * handleSignUpStep(nextStep);\n *\n * } catch (error) {\n * console.log(error);\n * }\n * }\n *\n * // handleConfirmSignUp.ts\n * async function handleConfirmSignUp(username:string, confirmationCode:string) {\n * try {\n * const { nextStep } = await confirmSignUp({\n * username,\n * confirmationCode,\n * });\n *\n * handleSignUpStep(nextStep);\n * } catch (error) {\n * console.log(error);\n * }\n * }\n *\n * // signUpUtils.ts\n * async function handleSignUpStep( step: SignUpOutput[\"nextStep\"]) {\n * switch (step.signUpStep) {\n * case \"CONFIRM_SIGN_UP\":\n *\n * // Redirect end-user to confirm-sign up screen.\n *\n * case \"COMPLETE_AUTO_SIGN_IN\":\n *\t const codeDeliveryDetails = step.codeDeliveryDetails;\n * if (codeDeliveryDetails) {\n * // Redirect user to confirm-sign-up with link screen.\n * }\n * const signInOutput = await autoSignIn();\n * // handle sign-in steps\n * }\n *\n * ```\n */\n// TODO(Eslint): can this be refactored not using `let` on exported member?\n// eslint-disable-next-line import/no-mutable-exports\nexport let autoSignIn = initialAutoSignIn;\n/**\n * Sets the context of autoSignIn at run time.\n * @internal\n */\nexport function setAutoSignIn(callback) {\n autoSignIn = callback;\n}\n/**\n * Resets the context\n *\n * @internal\n */\nexport function resetAutoSignIn() {\n autoSignIn = initialAutoSignIn;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { confirmForgotPassword } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getUserContextData } from '../utils/userContextData';\n/**\n * Confirms the new password and verification code to reset the password.\n *\n * @param input - The ConfirmResetPasswordInput object.\n * @throws -{@link ConfirmForgotPasswordException }\n * Thrown due to an invalid confirmation code or password.\n * @throws -{@link AuthValidationErrorCode }\n * Thrown due to an empty confirmation code, password or username.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function confirmResetPassword(input) {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolClientId, userPoolId } = authConfig;\n const { username, newPassword } = input;\n assertValidationError(!!username, AuthValidationErrorCode.EmptyConfirmResetPasswordUsername);\n assertValidationError(!!newPassword, AuthValidationErrorCode.EmptyConfirmResetPasswordNewPassword);\n const code = input.confirmationCode;\n assertValidationError(!!code, AuthValidationErrorCode.EmptyConfirmResetPasswordConfirmationCode);\n const metadata = input.options?.clientMetadata;\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n await confirmForgotPassword({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmResetPassword),\n }, {\n Username: username,\n ConfirmationCode: code,\n Password: newPassword,\n ClientMetadata: metadata,\n ClientId: authConfig.userPoolClientId,\n UserContextData,\n });\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, HubInternal, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { confirmSignUp as confirmSignUpClient } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { isAutoSignInStarted, isAutoSignInUserUsingConfirmSignUp, setAutoSignInStarted, } from '../utils/signUpHelpers';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getUserContextData } from '../utils/userContextData';\n/**\n * Confirms a new user account.\n *\n * @param input - The ConfirmSignUpInput object.\n * @returns ConfirmSignUpOutput\n * @throws -{@link ConfirmSignUpException }\n * Thrown due to an invalid confirmation code.\n * @throws -{@link AuthValidationErrorCode }\n * Thrown due to an empty confirmation code\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function confirmSignUp(input) {\n const { username, confirmationCode, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolId, userPoolClientId } = authConfig;\n const clientMetadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptyConfirmSignUpUsername);\n assertValidationError(!!confirmationCode, AuthValidationErrorCode.EmptyConfirmSignUpCode);\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n await confirmSignUpClient({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignUp),\n }, {\n Username: username,\n ConfirmationCode: confirmationCode,\n ClientMetadata: clientMetadata,\n ForceAliasCreation: options?.forceAliasCreation,\n ClientId: authConfig.userPoolClientId,\n UserContextData,\n });\n return new Promise((resolve, reject) => {\n try {\n const signUpOut = {\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'DONE',\n },\n };\n if (!isAutoSignInStarted() ||\n !isAutoSignInUserUsingConfirmSignUp(username)) {\n resolve(signUpOut);\n return;\n }\n const stopListener = HubInternal.listen('auth-internal', ({ payload }) => {\n switch (payload.event) {\n case 'autoSignIn':\n resolve({\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n },\n });\n setAutoSignInStarted(false);\n stopListener();\n }\n });\n HubInternal.dispatch('auth-internal', {\n event: 'confirmSignUp',\n data: signUpOut,\n });\n }\n catch (error) {\n reject(error);\n }\n });\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthAction, assertTokenProviderConfig, fetchAuthSession, } from '@aws-amplify/core/internals/utils';\nimport { getUser } from '../../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../../utils/clients/CognitoIdentityProvider/utils';\nimport { assertAuthTokens } from '../../utils/types';\nimport { toAuthUserAttribute } from '../../utils/apiHelpers';\nimport { getAuthUserAgentValue } from '../../../../utils';\nexport const fetchUserAttributes = async (amplify) => {\n const authConfig = amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { tokens } = await fetchAuthSession(amplify, {\n forceRefresh: false,\n });\n assertAuthTokens(tokens);\n const { UserAttributes } = await getUser({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.FetchUserAttributes),\n }, {\n AccessToken: tokens.accessToken.toString(),\n });\n return toAuthUserAttribute(UserAttributes);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { fetchUserAttributes as fetchUserAttributesInternal } from './internal/fetchUserAttributes';\n/**\n * Fetches the current user attributes while authenticated.\n *\n * @throws - {@link GetUserException} - Cognito service errors thrown when the service is not able to get the user.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport const fetchUserAttributes = () => {\n return fetchUserAttributesInternal(Amplify);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { getCurrentUser as getCurrentUserInternal } from './internal/getCurrentUser';\n/**\n * Gets the current user from the idToken.\n *\n * @param input - The GetCurrentUserInput object.\n * @returns GetCurrentUserOutput\n * @throws - {@link InitiateAuthException} - Thrown when the service fails to refresh the tokens.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport const getCurrentUser = async () => {\n return getCurrentUserInternal(Amplify);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { assertAuthTokens } from '../../utils/types';\nexport const getCurrentUser = async (amplify) => {\n const authConfig = amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const tokens = await amplify.Auth.getTokens({ forceRefresh: false });\n assertAuthTokens(tokens);\n const { 'cognito:username': username, sub } = tokens.idToken?.payload ?? {};\n const authUser = {\n username: username,\n userId: sub,\n };\n const signInDetails = getSignInDetailsFromTokens(tokens);\n if (signInDetails) {\n authUser.signInDetails = signInDetails;\n }\n return authUser;\n};\nfunction getSignInDetailsFromTokens(tokens) {\n return tokens?.signInDetails;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { forgotPassword } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { getUserContextData } from '../utils/userContextData';\n/**\n * Resets a user's password.\n *\n * @param input - The ResetPasswordInput object.\n * @returns ResetPasswordOutput\n * @throws -{@link ForgotPasswordException }\n * Thrown due to an invalid confirmation code or password.\n * @throws -{@link AuthValidationErrorCode }\n * Thrown due to an empty username.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n **/\nexport async function resetPassword(input) {\n const { username } = input;\n assertValidationError(!!username, AuthValidationErrorCode.EmptyResetPasswordUsername);\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { userPoolClientId, userPoolId } = authConfig;\n const clientMetadata = input.options?.clientMetadata;\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const res = await forgotPassword({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ResetPassword),\n }, {\n Username: username,\n ClientMetadata: clientMetadata,\n ClientId: authConfig.userPoolClientId,\n UserContextData,\n });\n const codeDeliveryDetails = res.CodeDeliveryDetails;\n return {\n isPasswordReset: false,\n nextStep: {\n resetPasswordStep: 'CONFIRM_RESET_PASSWORD_WITH_CODE',\n codeDeliveryDetails: {\n deliveryMedium: codeDeliveryDetails?.DeliveryMedium,\n destination: codeDeliveryDetails?.Destination,\n attributeName: codeDeliveryDetails?.AttributeName,\n },\n },\n };\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, fetchAuthSession } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { getUserAttributeVerificationCode } from '../utils/clients/CognitoIdentityProvider';\nimport { assertAuthTokens } from '../utils/types';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\n/**\n * Resends user's confirmation code when updating attributes while authenticated.\n *\n * @param input - The SendUserAttributeVerificationCodeInput object\n * @returns SendUserAttributeVerificationCodeOutput\n * @throws - {@link GetUserAttributeVerificationException}\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport const sendUserAttributeVerificationCode = async (input) => {\n const { userAttributeKey, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const clientMetadata = options?.clientMetadata;\n assertTokenProviderConfig(authConfig);\n const { tokens } = await fetchAuthSession({ forceRefresh: false });\n assertAuthTokens(tokens);\n const { CodeDeliveryDetails } = await getUserAttributeVerificationCode({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SendUserAttributeVerificationCode),\n }, {\n AccessToken: tokens.accessToken.toString(),\n ClientMetadata: clientMetadata,\n AttributeName: userAttributeKey,\n });\n const { DeliveryMedium, AttributeName, Destination } = {\n ...CodeDeliveryDetails,\n };\n return {\n destination: Destination,\n deliveryMedium: DeliveryMedium,\n attributeName: AttributeName,\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getBtoa } from '../../globalHelpers';\nimport { bytesToString } from './bytesToString';\nexport const base64Encoder = {\n convert(input, { urlSafe } = { urlSafe: false }) {\n const inputStr = typeof input === 'string' ? input : bytesToString(input);\n const encodedStr = getBtoa()(inputStr);\n // see details about the char replacing at https://datatracker.ietf.org/doc/html/rfc4648#section-5\n return urlSafe\n ? encodedStr.replace(/\\+/g, '-').replace(/\\//g, '_')\n : encodedStr;\n },\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function bytesToString(input) {\n return Array.from(input, byte => String.fromCodePoint(byte)).join('');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AssociateSoftwareTokenException;\n(function (AssociateSoftwareTokenException) {\n AssociateSoftwareTokenException[\"ConcurrentModificationException\"] = \"ConcurrentModificationException\";\n AssociateSoftwareTokenException[\"ForbiddenException\"] = \"ForbiddenException\";\n AssociateSoftwareTokenException[\"InternalErrorException\"] = \"InternalErrorException\";\n AssociateSoftwareTokenException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n AssociateSoftwareTokenException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n AssociateSoftwareTokenException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n AssociateSoftwareTokenException[\"SoftwareTokenMFANotFoundException\"] = \"SoftwareTokenMFANotFoundException\";\n})(AssociateSoftwareTokenException || (AssociateSoftwareTokenException = {}));\nexport var ChangePasswordException;\n(function (ChangePasswordException) {\n ChangePasswordException[\"ForbiddenException\"] = \"ForbiddenException\";\n ChangePasswordException[\"InternalErrorException\"] = \"InternalErrorException\";\n ChangePasswordException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ChangePasswordException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n ChangePasswordException[\"LimitExceededException\"] = \"LimitExceededException\";\n ChangePasswordException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ChangePasswordException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ChangePasswordException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ChangePasswordException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ChangePasswordException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ChangePasswordException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ChangePasswordException || (ChangePasswordException = {}));\nexport var ConfirmDeviceException;\n(function (ConfirmDeviceException) {\n ConfirmDeviceException[\"ForbiddenException\"] = \"ForbiddenException\";\n ConfirmDeviceException[\"InternalErrorException\"] = \"InternalErrorException\";\n ConfirmDeviceException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ConfirmDeviceException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ConfirmDeviceException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n ConfirmDeviceException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n ConfirmDeviceException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ConfirmDeviceException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ConfirmDeviceException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ConfirmDeviceException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ConfirmDeviceException[\"UsernameExistsException\"] = \"UsernameExistsException\";\n ConfirmDeviceException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ConfirmDeviceException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ConfirmDeviceException || (ConfirmDeviceException = {}));\nexport var ConfirmForgotPasswordException;\n(function (ConfirmForgotPasswordException) {\n ConfirmForgotPasswordException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n ConfirmForgotPasswordException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n ConfirmForgotPasswordException[\"ForbiddenException\"] = \"ForbiddenException\";\n ConfirmForgotPasswordException[\"InternalErrorException\"] = \"InternalErrorException\";\n ConfirmForgotPasswordException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ConfirmForgotPasswordException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ConfirmForgotPasswordException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n ConfirmForgotPasswordException[\"LimitExceededException\"] = \"LimitExceededException\";\n ConfirmForgotPasswordException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ConfirmForgotPasswordException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ConfirmForgotPasswordException[\"TooManyFailedAttemptsException\"] = \"TooManyFailedAttemptsException\";\n ConfirmForgotPasswordException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ConfirmForgotPasswordException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ConfirmForgotPasswordException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ConfirmForgotPasswordException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ConfirmForgotPasswordException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ConfirmForgotPasswordException || (ConfirmForgotPasswordException = {}));\nexport var ConfirmSignUpException;\n(function (ConfirmSignUpException) {\n ConfirmSignUpException[\"AliasExistsException\"] = \"AliasExistsException\";\n ConfirmSignUpException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n ConfirmSignUpException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n ConfirmSignUpException[\"ForbiddenException\"] = \"ForbiddenException\";\n ConfirmSignUpException[\"InternalErrorException\"] = \"InternalErrorException\";\n ConfirmSignUpException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ConfirmSignUpException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ConfirmSignUpException[\"LimitExceededException\"] = \"LimitExceededException\";\n ConfirmSignUpException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ConfirmSignUpException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ConfirmSignUpException[\"TooManyFailedAttemptsException\"] = \"TooManyFailedAttemptsException\";\n ConfirmSignUpException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ConfirmSignUpException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ConfirmSignUpException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ConfirmSignUpException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ConfirmSignUpException || (ConfirmSignUpException = {}));\nexport var DeleteUserAttributesException;\n(function (DeleteUserAttributesException) {\n DeleteUserAttributesException[\"ForbiddenException\"] = \"ForbiddenException\";\n DeleteUserAttributesException[\"InternalErrorException\"] = \"InternalErrorException\";\n DeleteUserAttributesException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n DeleteUserAttributesException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n DeleteUserAttributesException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n DeleteUserAttributesException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n DeleteUserAttributesException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n DeleteUserAttributesException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n DeleteUserAttributesException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(DeleteUserAttributesException || (DeleteUserAttributesException = {}));\nexport var DeleteUserException;\n(function (DeleteUserException) {\n DeleteUserException[\"ForbiddenException\"] = \"ForbiddenException\";\n DeleteUserException[\"InternalErrorException\"] = \"InternalErrorException\";\n DeleteUserException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n DeleteUserException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n DeleteUserException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n DeleteUserException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n DeleteUserException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n DeleteUserException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n DeleteUserException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(DeleteUserException || (DeleteUserException = {}));\nexport var ForgetDeviceException;\n(function (ForgetDeviceException) {\n ForgetDeviceException[\"ForbiddenException\"] = \"ForbiddenException\";\n ForgetDeviceException[\"InternalErrorException\"] = \"InternalErrorException\";\n ForgetDeviceException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ForgetDeviceException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n ForgetDeviceException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ForgetDeviceException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ForgetDeviceException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ForgetDeviceException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ForgetDeviceException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ForgetDeviceException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ForgetDeviceException || (ForgetDeviceException = {}));\nexport var ForgotPasswordException;\n(function (ForgotPasswordException) {\n ForgotPasswordException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n ForgotPasswordException[\"ForbiddenException\"] = \"ForbiddenException\";\n ForgotPasswordException[\"InternalErrorException\"] = \"InternalErrorException\";\n ForgotPasswordException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n ForgotPasswordException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ForgotPasswordException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ForgotPasswordException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n ForgotPasswordException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n ForgotPasswordException[\"LimitExceededException\"] = \"LimitExceededException\";\n ForgotPasswordException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ForgotPasswordException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ForgotPasswordException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ForgotPasswordException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ForgotPasswordException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ForgotPasswordException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ForgotPasswordException || (ForgotPasswordException = {}));\nexport var GetUserException;\n(function (GetUserException) {\n GetUserException[\"ForbiddenException\"] = \"ForbiddenException\";\n GetUserException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetUserException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetUserException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetUserException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n GetUserException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetUserException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n GetUserException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n GetUserException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(GetUserException || (GetUserException = {}));\nexport var GetIdException;\n(function (GetIdException) {\n GetIdException[\"ExternalServiceException\"] = \"ExternalServiceException\";\n GetIdException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetIdException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetIdException[\"LimitExceededException\"] = \"LimitExceededException\";\n GetIdException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetIdException[\"ResourceConflictException\"] = \"ResourceConflictException\";\n GetIdException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetIdException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n})(GetIdException || (GetIdException = {}));\nexport var GetCredentialsForIdentityException;\n(function (GetCredentialsForIdentityException) {\n GetCredentialsForIdentityException[\"ExternalServiceException\"] = \"ExternalServiceException\";\n GetCredentialsForIdentityException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetCredentialsForIdentityException[\"InvalidIdentityPoolConfigurationException\"] = \"InvalidIdentityPoolConfigurationException\";\n GetCredentialsForIdentityException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetCredentialsForIdentityException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetCredentialsForIdentityException[\"ResourceConflictException\"] = \"ResourceConflictException\";\n GetCredentialsForIdentityException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetCredentialsForIdentityException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n})(GetCredentialsForIdentityException || (GetCredentialsForIdentityException = {}));\nexport var GetUserAttributeVerificationException;\n(function (GetUserAttributeVerificationException) {\n GetUserAttributeVerificationException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n GetUserAttributeVerificationException[\"ForbiddenException\"] = \"ForbiddenException\";\n GetUserAttributeVerificationException[\"InternalErrorException\"] = \"InternalErrorException\";\n GetUserAttributeVerificationException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n GetUserAttributeVerificationException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n GetUserAttributeVerificationException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GetUserAttributeVerificationException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n GetUserAttributeVerificationException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n GetUserAttributeVerificationException[\"LimitExceededException\"] = \"LimitExceededException\";\n GetUserAttributeVerificationException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GetUserAttributeVerificationException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n GetUserAttributeVerificationException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GetUserAttributeVerificationException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n GetUserAttributeVerificationException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n GetUserAttributeVerificationException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n GetUserAttributeVerificationException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n GetUserAttributeVerificationException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(GetUserAttributeVerificationException || (GetUserAttributeVerificationException = {}));\nexport var GlobalSignOutException;\n(function (GlobalSignOutException) {\n GlobalSignOutException[\"ForbiddenException\"] = \"ForbiddenException\";\n GlobalSignOutException[\"InternalErrorException\"] = \"InternalErrorException\";\n GlobalSignOutException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n GlobalSignOutException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n GlobalSignOutException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n GlobalSignOutException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n GlobalSignOutException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n GlobalSignOutException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n})(GlobalSignOutException || (GlobalSignOutException = {}));\nexport var InitiateAuthException;\n(function (InitiateAuthException) {\n InitiateAuthException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n InitiateAuthException[\"ForbiddenException\"] = \"ForbiddenException\";\n InitiateAuthException[\"InternalErrorException\"] = \"InternalErrorException\";\n InitiateAuthException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n InitiateAuthException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n InitiateAuthException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n InitiateAuthException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n InitiateAuthException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n InitiateAuthException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n InitiateAuthException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n InitiateAuthException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n InitiateAuthException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n InitiateAuthException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n InitiateAuthException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n InitiateAuthException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(InitiateAuthException || (InitiateAuthException = {}));\nexport var ResendConfirmationException;\n(function (ResendConfirmationException) {\n ResendConfirmationException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n ResendConfirmationException[\"ForbiddenException\"] = \"ForbiddenException\";\n ResendConfirmationException[\"InternalErrorException\"] = \"InternalErrorException\";\n ResendConfirmationException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n ResendConfirmationException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n ResendConfirmationException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ResendConfirmationException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n ResendConfirmationException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n ResendConfirmationException[\"LimitExceededException\"] = \"LimitExceededException\";\n ResendConfirmationException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ResendConfirmationException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ResendConfirmationException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ResendConfirmationException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n ResendConfirmationException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n ResendConfirmationException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ResendConfirmationException || (ResendConfirmationException = {}));\nexport var RespondToAuthChallengeException;\n(function (RespondToAuthChallengeException) {\n RespondToAuthChallengeException[\"AliasExistsException\"] = \"AliasExistsException\";\n RespondToAuthChallengeException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n RespondToAuthChallengeException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n RespondToAuthChallengeException[\"ForbiddenException\"] = \"ForbiddenException\";\n RespondToAuthChallengeException[\"InternalErrorException\"] = \"InternalErrorException\";\n RespondToAuthChallengeException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n RespondToAuthChallengeException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n RespondToAuthChallengeException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n RespondToAuthChallengeException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n RespondToAuthChallengeException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n RespondToAuthChallengeException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n RespondToAuthChallengeException[\"MFAMethodNotFoundException\"] = \"MFAMethodNotFoundException\";\n RespondToAuthChallengeException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n RespondToAuthChallengeException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n RespondToAuthChallengeException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n RespondToAuthChallengeException[\"SoftwareTokenMFANotFoundException\"] = \"SoftwareTokenMFANotFoundException\";\n RespondToAuthChallengeException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n RespondToAuthChallengeException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n RespondToAuthChallengeException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n RespondToAuthChallengeException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n RespondToAuthChallengeException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(RespondToAuthChallengeException || (RespondToAuthChallengeException = {}));\nexport var SetUserMFAPreferenceException;\n(function (SetUserMFAPreferenceException) {\n SetUserMFAPreferenceException[\"ForbiddenException\"] = \"ForbiddenException\";\n SetUserMFAPreferenceException[\"InternalErrorException\"] = \"InternalErrorException\";\n SetUserMFAPreferenceException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n SetUserMFAPreferenceException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n SetUserMFAPreferenceException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n SetUserMFAPreferenceException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n SetUserMFAPreferenceException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n SetUserMFAPreferenceException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(SetUserMFAPreferenceException || (SetUserMFAPreferenceException = {}));\nexport var SignUpException;\n(function (SignUpException) {\n SignUpException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n SignUpException[\"InternalErrorException\"] = \"InternalErrorException\";\n SignUpException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n SignUpException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n SignUpException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n SignUpException[\"InvalidPasswordException\"] = \"InvalidPasswordException\";\n SignUpException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n SignUpException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n SignUpException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n SignUpException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n SignUpException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n SignUpException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n SignUpException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n SignUpException[\"UsernameExistsException\"] = \"UsernameExistsException\";\n})(SignUpException || (SignUpException = {}));\nexport var UpdateUserAttributesException;\n(function (UpdateUserAttributesException) {\n UpdateUserAttributesException[\"AliasExistsException\"] = \"AliasExistsException\";\n UpdateUserAttributesException[\"CodeDeliveryFailureException\"] = \"CodeDeliveryFailureException\";\n UpdateUserAttributesException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n UpdateUserAttributesException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n UpdateUserAttributesException[\"ForbiddenException\"] = \"ForbiddenException\";\n UpdateUserAttributesException[\"InternalErrorException\"] = \"InternalErrorException\";\n UpdateUserAttributesException[\"InvalidEmailRoleAccessPolicyException\"] = \"InvalidEmailRoleAccessPolicyException\";\n UpdateUserAttributesException[\"InvalidLambdaResponseException\"] = \"InvalidLambdaResponseException\";\n UpdateUserAttributesException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n UpdateUserAttributesException[\"InvalidSmsRoleAccessPolicyException\"] = \"InvalidSmsRoleAccessPolicyException\";\n UpdateUserAttributesException[\"InvalidSmsRoleTrustRelationshipException\"] = \"InvalidSmsRoleTrustRelationshipException\";\n UpdateUserAttributesException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n UpdateUserAttributesException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n UpdateUserAttributesException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n UpdateUserAttributesException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n UpdateUserAttributesException[\"UnexpectedLambdaException\"] = \"UnexpectedLambdaException\";\n UpdateUserAttributesException[\"UserLambdaValidationException\"] = \"UserLambdaValidationException\";\n UpdateUserAttributesException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n UpdateUserAttributesException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(UpdateUserAttributesException || (UpdateUserAttributesException = {}));\nexport var VerifySoftwareTokenException;\n(function (VerifySoftwareTokenException) {\n VerifySoftwareTokenException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n VerifySoftwareTokenException[\"EnableSoftwareTokenMFAException\"] = \"EnableSoftwareTokenMFAException\";\n VerifySoftwareTokenException[\"ForbiddenException\"] = \"ForbiddenException\";\n VerifySoftwareTokenException[\"InternalErrorException\"] = \"InternalErrorException\";\n VerifySoftwareTokenException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n VerifySoftwareTokenException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n VerifySoftwareTokenException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n VerifySoftwareTokenException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n VerifySoftwareTokenException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n VerifySoftwareTokenException[\"SoftwareTokenMFANotFoundException\"] = \"SoftwareTokenMFANotFoundException\";\n VerifySoftwareTokenException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n VerifySoftwareTokenException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n VerifySoftwareTokenException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(VerifySoftwareTokenException || (VerifySoftwareTokenException = {}));\nexport var VerifyUserAttributeException;\n(function (VerifyUserAttributeException) {\n VerifyUserAttributeException[\"AliasExistsException\"] = \"AliasExistsException\";\n VerifyUserAttributeException[\"CodeMismatchException\"] = \"CodeMismatchException\";\n VerifyUserAttributeException[\"ExpiredCodeException\"] = \"ExpiredCodeException\";\n VerifyUserAttributeException[\"ForbiddenException\"] = \"ForbiddenException\";\n VerifyUserAttributeException[\"InternalErrorException\"] = \"InternalErrorException\";\n VerifyUserAttributeException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n VerifyUserAttributeException[\"LimitExceededException\"] = \"LimitExceededException\";\n VerifyUserAttributeException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n VerifyUserAttributeException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n VerifyUserAttributeException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n VerifyUserAttributeException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n VerifyUserAttributeException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n VerifyUserAttributeException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(VerifyUserAttributeException || (VerifyUserAttributeException = {}));\nexport var UpdateDeviceStatusException;\n(function (UpdateDeviceStatusException) {\n UpdateDeviceStatusException[\"ForbiddenException\"] = \"ForbiddenException\";\n UpdateDeviceStatusException[\"InternalErrorException\"] = \"InternalErrorException\";\n UpdateDeviceStatusException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n UpdateDeviceStatusException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n UpdateDeviceStatusException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n UpdateDeviceStatusException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n UpdateDeviceStatusException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n UpdateDeviceStatusException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n UpdateDeviceStatusException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n UpdateDeviceStatusException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(UpdateDeviceStatusException || (UpdateDeviceStatusException = {}));\nexport var ListDevicesException;\n(function (ListDevicesException) {\n ListDevicesException[\"ForbiddenException\"] = \"ForbiddenException\";\n ListDevicesException[\"InternalErrorException\"] = \"InternalErrorException\";\n ListDevicesException[\"InvalidParameterException\"] = \"InvalidParameterException\";\n ListDevicesException[\"InvalidUserPoolConfigurationException\"] = \"InvalidUserPoolConfigurationException\";\n ListDevicesException[\"NotAuthorizedException\"] = \"NotAuthorizedException\";\n ListDevicesException[\"PasswordResetRequiredException\"] = \"PasswordResetRequiredException\";\n ListDevicesException[\"ResourceNotFoundException\"] = \"ResourceNotFoundException\";\n ListDevicesException[\"TooManyRequestsException\"] = \"TooManyRequestsException\";\n ListDevicesException[\"UserNotConfirmedException\"] = \"UserNotConfirmedException\";\n ListDevicesException[\"UserNotFoundException\"] = \"UserNotFoundException\";\n})(ListDevicesException || (ListDevicesException = {}));\nexport const SETUP_TOTP_EXCEPTION = 'SetUpTOTPException';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst signInReducer = (state, action) => {\n switch (action.type) {\n case 'SET_SIGN_IN_SESSION':\n return {\n ...state,\n signInSession: action.value,\n };\n case 'SET_SIGN_IN_STATE':\n return {\n ...action.value,\n };\n case 'SET_CHALLENGE_NAME':\n return {\n ...state,\n challengeName: action.value,\n };\n case 'SET_USERNAME':\n return {\n ...state,\n username: action.value,\n };\n case 'SET_INITIAL_STATE':\n return defaultState();\n default:\n return state;\n }\n};\nfunction defaultState() {\n return {\n username: undefined,\n challengeName: undefined,\n signInSession: undefined,\n };\n}\nconst createStore = reducer => {\n let currentState = reducer(defaultState(), { type: 'SET_INITIAL_STATE' });\n return {\n getState: () => currentState,\n dispatch: action => {\n currentState = reducer(currentState, action);\n },\n };\n};\nexport const signInStore = createStore(signInReducer);\nexport function setActiveSignInState(state) {\n signInStore.dispatch({\n type: 'SET_SIGN_IN_STATE',\n value: state,\n });\n}\nexport function cleanActiveSignInState() {\n signInStore.dispatch({ type: 'SET_INITIAL_STATE' });\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const textEncoder = {\n convert(input) {\n return new TextEncoder().encode(input);\n },\n};\n","/* eslint-disable */\n// @ts-nocheck -> BigInteger is already a vended utility\n// A small implementation of BigInteger based on http://www-cs-students.stanford.edu/~tjw/jsbn/\n//\n// All public methods have been removed except the following:\n// new BigInteger(a, b) (only radix 2, 4, 8, 16 and 32 supported)\n// toString (only radix 2, 4, 8, 16 and 32 supported)\n// negate\n// abs\n// compareTo\n// bitLength\n// mod\n// equals\n// add\n// subtract\n// multiply\n// divide\n// modPow\nexport default BigInteger;\n/*\n * Copyright (c) 2003-2005 Tom Wu\n * All Rights Reserved.\n *\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n *\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS-IS\" AND WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY\n * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.\n *\n * IN NO EVENT SHALL TOM WU BE LIABLE FOR ANY SPECIAL, INCIDENTAL,\n * INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER\n * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF\n * THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT\n * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n *\n * In addition, the following condition applies:\n *\n * All redistributions must retain an intact copy of this copyright notice\n * and disclaimer.\n */\n// (public) Constructor\nfunction BigInteger(a, b) {\n if (a != null)\n this.fromString(a, b);\n}\n// return new, unset BigInteger\nfunction nbi() {\n return new BigInteger(null, null);\n}\n// Bits per digit\nlet dbits;\n// JavaScript engine analysis\nconst canary = 0xdeadbeefcafe;\nconst j_lm = (canary & 0xffffff) === 0xefcafe;\n// am: Compute w_j += (x*this_i), propagate carries,\n// c is initial carry, returns final carry.\n// c < 3*dvalue, x < 2*dvalue, this_i < dvalue\n// We need to select the fastest one that works in this environment.\n// am1: use a single mult and divide to get the high bits,\n// max digit bits should be 26 because\n// max internal value = 2*dvalue^2-2*dvalue (< 2^53)\nfunction am1(i, x, w, j, c, n) {\n while (--n >= 0) {\n const v = x * this[i++] + w[j] + c;\n c = Math.floor(v / 0x4000000);\n w[j++] = v & 0x3ffffff;\n }\n return c;\n}\n// am2 avoids a big mult-and-extract completely.\n// Max digit bits should be <= 30 because we do bitwise ops\n// on values up to 2*hdvalue^2-hdvalue-1 (< 2^31)\nfunction am2(i, x, w, j, c, n) {\n const xl = x & 0x7fff;\n const xh = x >> 15;\n while (--n >= 0) {\n let l = this[i] & 0x7fff;\n const h = this[i++] >> 15;\n const m = xh * l + h * xl;\n l = xl * l + ((m & 0x7fff) << 15) + w[j] + (c & 0x3fffffff);\n c = (l >>> 30) + (m >>> 15) + xh * h + (c >>> 30);\n w[j++] = l & 0x3fffffff;\n }\n return c;\n}\n// Alternately, set max digit bits to 28 since some\n// browsers slow down when dealing with 32-bit numbers.\nfunction am3(i, x, w, j, c, n) {\n const xl = x & 0x3fff;\n const xh = x >> 14;\n while (--n >= 0) {\n let l = this[i] & 0x3fff;\n const h = this[i++] >> 14;\n const m = xh * l + h * xl;\n l = xl * l + ((m & 0x3fff) << 14) + w[j] + c;\n c = (l >> 28) + (m >> 14) + xh * h;\n w[j++] = l & 0xfffffff;\n }\n return c;\n}\nconst inBrowser = typeof navigator !== 'undefined';\nif (inBrowser && j_lm && navigator.appName === 'Microsoft Internet Explorer') {\n BigInteger.prototype.am = am2;\n dbits = 30;\n}\nelse if (inBrowser && j_lm && navigator.appName !== 'Netscape') {\n BigInteger.prototype.am = am1;\n dbits = 26;\n}\nelse {\n // Mozilla/Netscape seems to prefer am3\n BigInteger.prototype.am = am3;\n dbits = 28;\n}\nBigInteger.prototype.DB = dbits;\nBigInteger.prototype.DM = (1 << dbits) - 1;\nBigInteger.prototype.DV = 1 << dbits;\nconst BI_FP = 52;\nBigInteger.prototype.FV = Math.pow(2, BI_FP);\nBigInteger.prototype.F1 = BI_FP - dbits;\nBigInteger.prototype.F2 = 2 * dbits - BI_FP;\n// Digit conversions\nconst BI_RM = '0123456789abcdefghijklmnopqrstuvwxyz';\nconst BI_RC = [];\nlet rr, vv;\nrr = '0'.charCodeAt(0);\nfor (vv = 0; vv <= 9; ++vv)\n BI_RC[rr++] = vv;\nrr = 'a'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nrr = 'A'.charCodeAt(0);\nfor (vv = 10; vv < 36; ++vv)\n BI_RC[rr++] = vv;\nfunction int2char(n) {\n return BI_RM.charAt(n);\n}\nfunction intAt(s, i) {\n const c = BI_RC[s.charCodeAt(i)];\n return c == null ? -1 : c;\n}\n// (protected) copy this to r\nfunction bnpCopyTo(r) {\n for (let i = this.t - 1; i >= 0; --i)\n r[i] = this[i];\n r.t = this.t;\n r.s = this.s;\n}\n// (protected) set from integer value x, -DV <= x < DV\nfunction bnpFromInt(x) {\n this.t = 1;\n this.s = x < 0 ? -1 : 0;\n if (x > 0)\n this[0] = x;\n else if (x < -1)\n this[0] = x + this.DV;\n else\n this.t = 0;\n}\n// return bigint initialized to value\nfunction nbv(i) {\n const r = nbi();\n r.fromInt(i);\n return r;\n}\n// (protected) set from string and radix\nfunction bnpFromString(s, b) {\n let k;\n if (b === 16)\n k = 4;\n else if (b === 8)\n k = 3;\n else if (b === 2)\n k = 1;\n else if (b === 32)\n k = 5;\n else if (b === 4)\n k = 2;\n else\n throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n this.t = 0;\n this.s = 0;\n let i = s.length;\n let mi = false;\n let sh = 0;\n while (--i >= 0) {\n const x = intAt(s, i);\n if (x < 0) {\n if (s.charAt(i) === '-')\n mi = true;\n continue;\n }\n mi = false;\n if (sh === 0)\n this[this.t++] = x;\n else if (sh + k > this.DB) {\n this[this.t - 1] |= (x & ((1 << (this.DB - sh)) - 1)) << sh;\n this[this.t++] = x >> (this.DB - sh);\n }\n else\n this[this.t - 1] |= x << sh;\n sh += k;\n if (sh >= this.DB)\n sh -= this.DB;\n }\n this.clamp();\n if (mi)\n BigInteger.ZERO.subTo(this, this);\n}\n// (protected) clamp off excess high words\nfunction bnpClamp() {\n const c = this.s & this.DM;\n while (this.t > 0 && this[this.t - 1] == c)\n --this.t;\n}\n// (public) return string representation in given radix\nfunction bnToString(b) {\n if (this.s < 0)\n return '-' + this.negate().toString(b);\n let k;\n if (b == 16)\n k = 4;\n else if (b === 8)\n k = 3;\n else if (b === 2)\n k = 1;\n else if (b === 32)\n k = 5;\n else if (b === 4)\n k = 2;\n else\n throw new Error('Only radix 2, 4, 8, 16, 32 are supported');\n const km = (1 << k) - 1;\n let d;\n let m = false;\n let r = '';\n let i = this.t;\n let p = this.DB - ((i * this.DB) % k);\n if (i-- > 0) {\n if (p < this.DB && (d = this[i] >> p) > 0) {\n m = true;\n r = int2char(d);\n }\n while (i >= 0) {\n if (p < k) {\n d = (this[i] & ((1 << p) - 1)) << (k - p);\n d |= this[--i] >> (p += this.DB - k);\n }\n else {\n d = (this[i] >> (p -= k)) & km;\n if (p <= 0) {\n p += this.DB;\n --i;\n }\n }\n if (d > 0)\n m = true;\n if (m)\n r += int2char(d);\n }\n }\n return m ? r : '0';\n}\n// (public) -this\nfunction bnNegate() {\n const r = nbi();\n BigInteger.ZERO.subTo(this, r);\n return r;\n}\n// (public) |this|\nfunction bnAbs() {\n return this.s < 0 ? this.negate() : this;\n}\n// (public) return + if this > a, - if this < a, 0 if equal\nfunction bnCompareTo(a) {\n let r = this.s - a.s;\n if (r != 0)\n return r;\n let i = this.t;\n r = i - a.t;\n if (r != 0)\n return this.s < 0 ? -r : r;\n while (--i >= 0)\n if ((r = this[i] - a[i]) != 0)\n return r;\n return 0;\n}\n// returns bit length of the integer x\nfunction nbits(x) {\n let r = 1;\n let t;\n if ((t = x >>> 16) !== 0) {\n x = t;\n r += 16;\n }\n if ((t = x >> 8) !== 0) {\n x = t;\n r += 8;\n }\n if ((t = x >> 4) !== 0) {\n x = t;\n r += 4;\n }\n if ((t = x >> 2) !== 0) {\n x = t;\n r += 2;\n }\n if ((t = x >> 1) !== 0) {\n x = t;\n r += 1;\n }\n return r;\n}\n// (public) return the number of bits in \"this\"\nfunction bnBitLength() {\n if (this.t <= 0)\n return 0;\n return this.DB * (this.t - 1) + nbits(this[this.t - 1] ^ (this.s & this.DM));\n}\n// (protected) r = this << n*DB\nfunction bnpDLShiftTo(n, r) {\n let i;\n for (i = this.t - 1; i >= 0; --i)\n r[i + n] = this[i];\n for (i = n - 1; i >= 0; --i)\n r[i] = 0;\n r.t = this.t + n;\n r.s = this.s;\n}\n// (protected) r = this >> n*DB\nfunction bnpDRShiftTo(n, r) {\n for (let i = n; i < this.t; ++i)\n r[i - n] = this[i];\n r.t = Math.max(this.t - n, 0);\n r.s = this.s;\n}\n// (protected) r = this << n\nfunction bnpLShiftTo(n, r) {\n const bs = n % this.DB;\n const cbs = this.DB - bs;\n const bm = (1 << cbs) - 1;\n const ds = Math.floor(n / this.DB);\n let c = (this.s << bs) & this.DM;\n let i;\n for (i = this.t - 1; i >= 0; --i) {\n r[i + ds + 1] = (this[i] >> cbs) | c;\n c = (this[i] & bm) << bs;\n }\n for (i = ds - 1; i >= 0; --i)\n r[i] = 0;\n r[ds] = c;\n r.t = this.t + ds + 1;\n r.s = this.s;\n r.clamp();\n}\n// (protected) r = this >> n\nfunction bnpRShiftTo(n, r) {\n r.s = this.s;\n const ds = Math.floor(n / this.DB);\n if (ds >= this.t) {\n r.t = 0;\n return;\n }\n const bs = n % this.DB;\n const cbs = this.DB - bs;\n const bm = (1 << bs) - 1;\n r[0] = this[ds] >> bs;\n for (let i = ds + 1; i < this.t; ++i) {\n r[i - ds - 1] |= (this[i] & bm) << cbs;\n r[i - ds] = this[i] >> bs;\n }\n if (bs > 0)\n r[this.t - ds - 1] |= (this.s & bm) << cbs;\n r.t = this.t - ds;\n r.clamp();\n}\n// (protected) r = this - a\nfunction bnpSubTo(a, r) {\n let i = 0;\n let c = 0;\n const m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] - a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c -= a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c -= a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c -= a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c < -1)\n r[i++] = this.DV + c;\n else if (c > 0)\n r[i++] = c;\n r.t = i;\n r.clamp();\n}\n// (protected) r = this * a, r != this,a (HAC 14.12)\n// \"this\" should be the larger one if appropriate.\nfunction bnpMultiplyTo(a, r) {\n const x = this.abs();\n const y = a.abs();\n let i = x.t;\n r.t = i + y.t;\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < y.t; ++i)\n r[i + x.t] = x.am(0, y[i], r, i, 0, x.t);\n r.s = 0;\n r.clamp();\n if (this.s !== a.s)\n BigInteger.ZERO.subTo(r, r);\n}\n// (protected) r = this^2, r != this (HAC 14.16)\nfunction bnpSquareTo(r) {\n const x = this.abs();\n let i = (r.t = 2 * x.t);\n while (--i >= 0)\n r[i] = 0;\n for (i = 0; i < x.t - 1; ++i) {\n const c = x.am(i, x[i], r, 2 * i, 0, 1);\n if ((r[i + x.t] += x.am(i + 1, 2 * x[i], r, 2 * i + 1, c, x.t - i - 1)) >=\n x.DV) {\n r[i + x.t] -= x.DV;\n r[i + x.t + 1] = 1;\n }\n }\n if (r.t > 0)\n r[r.t - 1] += x.am(i, x[i], r, 2 * i, 0, 1);\n r.s = 0;\n r.clamp();\n}\n// (protected) divide this by m, quotient and remainder to q, r (HAC 14.20)\n// r != q, this != m. q or r may be null.\nfunction bnpDivRemTo(m, q, r) {\n const pm = m.abs();\n if (pm.t <= 0)\n return;\n const pt = this.abs();\n if (pt.t < pm.t) {\n if (q != null)\n q.fromInt(0);\n if (r != null)\n this.copyTo(r);\n return;\n }\n if (r === null)\n r = nbi();\n const y = nbi();\n const ts = this.s;\n const ms = m.s;\n const nsh = this.DB - nbits(pm[pm.t - 1]);\n // normalize modulus\n if (nsh > 0) {\n pm.lShiftTo(nsh, y);\n pt.lShiftTo(nsh, r);\n }\n else {\n pm.copyTo(y);\n pt.copyTo(r);\n }\n const ys = y.t;\n const y0 = y[ys - 1];\n if (y0 === 0)\n return;\n const yt = y0 * (1 << this.F1) + (ys > 1 ? y[ys - 2] >> this.F2 : 0);\n const d1 = this.FV / yt;\n const d2 = (1 << this.F1) / yt;\n const e = 1 << this.F2;\n let i = r.t;\n let j = i - ys;\n const t = q === null ? nbi() : q;\n y.dlShiftTo(j, t);\n if (r.compareTo(t) >= 0) {\n r[r.t++] = 1;\n r.subTo(t, r);\n }\n BigInteger.ONE.dlShiftTo(ys, t);\n t.subTo(y, y);\n // \"negative\" y so we can replace sub with am later\n while (y.t < ys)\n y[y.t++] = 0;\n while (--j >= 0) {\n // Estimate quotient digit\n let qd = r[--i] === y0 ? this.DM : Math.floor(r[i] * d1 + (r[i - 1] + e) * d2);\n if ((r[i] += y.am(0, qd, r, j, 0, ys)) < qd) {\n // Try it out\n y.dlShiftTo(j, t);\n r.subTo(t, r);\n while (r[i] < --qd)\n r.subTo(t, r);\n }\n }\n if (q !== null) {\n r.drShiftTo(ys, q);\n if (ts !== ms)\n BigInteger.ZERO.subTo(q, q);\n }\n r.t = ys;\n r.clamp();\n if (nsh > 0)\n r.rShiftTo(nsh, r);\n // Denormalize remainder\n if (ts < 0)\n BigInteger.ZERO.subTo(r, r);\n}\n// (public) this mod a\nfunction bnMod(a) {\n const r = nbi();\n this.abs().divRemTo(a, null, r);\n if (this.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n a.subTo(r, r);\n return r;\n}\n// (protected) return \"-1/this % 2^DB\"; useful for Mont. reduction\n// justification:\n// xy == 1 (mod m)\n// xy = 1+km\n// xy(2-xy) = (1+km)(1-km)\n// x[y(2-xy)] = 1-k^2m^2\n// x[y(2-xy)] == 1 (mod m^2)\n// if y is 1/x mod m, then y(2-xy) is 1/x mod m^2\n// should reduce x and y(2-xy) by m^2 at each step to keep size bounded.\n// JS multiply \"overflows\" differently from C/C++, so care is needed here.\nfunction bnpInvDigit() {\n if (this.t < 1)\n return 0;\n const x = this[0];\n if ((x & 1) === 0)\n return 0;\n let y = x & 3;\n // y == 1/x mod 2^2\n y = (y * (2 - (x & 0xf) * y)) & 0xf;\n // y == 1/x mod 2^4\n y = (y * (2 - (x & 0xff) * y)) & 0xff;\n // y == 1/x mod 2^8\n y = (y * (2 - (((x & 0xffff) * y) & 0xffff))) & 0xffff;\n // y == 1/x mod 2^16\n // last step - calculate inverse mod DV directly;\n // assumes 16 < DB <= 32 and assumes ability to handle 48-bit ints\n y = (y * (2 - ((x * y) % this.DV))) % this.DV;\n // y == 1/x mod 2^dbits\n // we really want the negative inverse, and -DV < y < DV\n return y > 0 ? this.DV - y : -y;\n}\nfunction bnEquals(a) {\n return this.compareTo(a) === 0;\n}\n// (protected) r = this + a\nfunction bnpAddTo(a, r) {\n let i = 0;\n let c = 0;\n const m = Math.min(a.t, this.t);\n while (i < m) {\n c += this[i] + a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n if (a.t < this.t) {\n c += a.s;\n while (i < this.t) {\n c += this[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += this.s;\n }\n else {\n c += this.s;\n while (i < a.t) {\n c += a[i];\n r[i++] = c & this.DM;\n c >>= this.DB;\n }\n c += a.s;\n }\n r.s = c < 0 ? -1 : 0;\n if (c > 0)\n r[i++] = c;\n else if (c < -1)\n r[i++] = this.DV + c;\n r.t = i;\n r.clamp();\n}\n// (public) this + a\nfunction bnAdd(a) {\n const r = nbi();\n this.addTo(a, r);\n return r;\n}\n// (public) this - a\nfunction bnSubtract(a) {\n const r = nbi();\n this.subTo(a, r);\n return r;\n}\n// (public) this * a\nfunction bnMultiply(a) {\n const r = nbi();\n this.multiplyTo(a, r);\n return r;\n}\n// (public) this / a\nfunction bnDivide(a) {\n const r = nbi();\n this.divRemTo(a, r, null);\n return r;\n}\n// Montgomery reduction\nfunction Montgomery(m) {\n this.m = m;\n this.mp = m.invDigit();\n this.mpl = this.mp & 0x7fff;\n this.mph = this.mp >> 15;\n this.um = (1 << (m.DB - 15)) - 1;\n this.mt2 = 2 * m.t;\n}\n// xR mod m\nfunction montConvert(x) {\n const r = nbi();\n x.abs().dlShiftTo(this.m.t, r);\n r.divRemTo(this.m, null, r);\n if (x.s < 0 && r.compareTo(BigInteger.ZERO) > 0)\n this.m.subTo(r, r);\n return r;\n}\n// x/R mod m\nfunction montRevert(x) {\n const r = nbi();\n x.copyTo(r);\n this.reduce(r);\n return r;\n}\n// x = x/R mod m (HAC 14.32)\nfunction montReduce(x) {\n while (x.t <= this.mt2)\n // pad x so am has enough room later\n x[x.t++] = 0;\n for (let i = 0; i < this.m.t; ++i) {\n // faster way of calculating u0 = x[i]*mp mod DV\n let j = x[i] & 0x7fff;\n const u0 = (j * this.mpl +\n (((j * this.mph + (x[i] >> 15) * this.mpl) & this.um) << 15)) &\n x.DM;\n // use am to combine the multiply-shift-add into one call\n j = i + this.m.t;\n x[j] += this.m.am(0, u0, x, i, 0, this.m.t);\n // propagate carry\n while (x[j] >= x.DV) {\n x[j] -= x.DV;\n x[++j]++;\n }\n }\n x.clamp();\n x.drShiftTo(this.m.t, x);\n if (x.compareTo(this.m) >= 0)\n x.subTo(this.m, x);\n}\n// r = \"x^2/R mod m\"; x != r\nfunction montSqrTo(x, r) {\n x.squareTo(r);\n this.reduce(r);\n}\n// r = \"xy/R mod m\"; x,y != r\nfunction montMulTo(x, y, r) {\n x.multiplyTo(y, r);\n this.reduce(r);\n}\nMontgomery.prototype.convert = montConvert;\nMontgomery.prototype.revert = montRevert;\nMontgomery.prototype.reduce = montReduce;\nMontgomery.prototype.mulTo = montMulTo;\nMontgomery.prototype.sqrTo = montSqrTo;\n// (public) this^e % m (HAC 14.85)\nfunction bnModPow(e, m, callback) {\n let i = e.bitLength();\n let k;\n let r = nbv(1);\n const z = new Montgomery(m);\n if (i <= 0)\n return r;\n else if (i < 18)\n k = 1;\n else if (i < 48)\n k = 3;\n else if (i < 144)\n k = 4;\n else if (i < 768)\n k = 5;\n else\n k = 6;\n // precomputation\n const g = [];\n let n = 3;\n const k1 = k - 1;\n const km = (1 << k) - 1;\n g[1] = z.convert(this);\n if (k > 1) {\n const g2 = nbi();\n z.sqrTo(g[1], g2);\n while (n <= km) {\n g[n] = nbi();\n z.mulTo(g2, g[n - 2], g[n]);\n n += 2;\n }\n }\n let j = e.t - 1;\n let w;\n let is1 = true;\n let r2 = nbi();\n let t;\n i = nbits(e[j]) - 1;\n while (j >= 0) {\n if (i >= k1)\n w = (e[j] >> (i - k1)) & km;\n else {\n w = (e[j] & ((1 << (i + 1)) - 1)) << (k1 - i);\n if (j > 0)\n w |= e[j - 1] >> (this.DB + i - k1);\n }\n n = k;\n while ((w & 1) === 0) {\n w >>= 1;\n --n;\n }\n if ((i -= n) < 0) {\n i += this.DB;\n --j;\n }\n if (is1) {\n // ret == 1, don't bother squaring or multiplying it\n g[w].copyTo(r);\n is1 = false;\n }\n else {\n while (n > 1) {\n z.sqrTo(r, r2);\n z.sqrTo(r2, r);\n n -= 2;\n }\n if (n > 0)\n z.sqrTo(r, r2);\n else {\n t = r;\n r = r2;\n r2 = t;\n }\n z.mulTo(r2, g[w], r);\n }\n while (j >= 0 && (e[j] & (1 << i)) === 0) {\n z.sqrTo(r, r2);\n t = r;\n r = r2;\n r2 = t;\n if (--i < 0) {\n i = this.DB - 1;\n --j;\n }\n }\n }\n const result = z.revert(r);\n callback(null, result);\n return result;\n}\n// protected\nBigInteger.prototype.copyTo = bnpCopyTo;\nBigInteger.prototype.fromInt = bnpFromInt;\nBigInteger.prototype.fromString = bnpFromString;\nBigInteger.prototype.clamp = bnpClamp;\nBigInteger.prototype.dlShiftTo = bnpDLShiftTo;\nBigInteger.prototype.drShiftTo = bnpDRShiftTo;\nBigInteger.prototype.lShiftTo = bnpLShiftTo;\nBigInteger.prototype.rShiftTo = bnpRShiftTo;\nBigInteger.prototype.subTo = bnpSubTo;\nBigInteger.prototype.multiplyTo = bnpMultiplyTo;\nBigInteger.prototype.squareTo = bnpSquareTo;\nBigInteger.prototype.divRemTo = bnpDivRemTo;\nBigInteger.prototype.invDigit = bnpInvDigit;\nBigInteger.prototype.addTo = bnpAddTo;\n// public\nBigInteger.prototype.toString = bnToString;\nBigInteger.prototype.negate = bnNegate;\nBigInteger.prototype.abs = bnAbs;\nBigInteger.prototype.compareTo = bnCompareTo;\nBigInteger.prototype.bitLength = bnBitLength;\nBigInteger.prototype.mod = bnMod;\nBigInteger.prototype.equals = bnEquals;\nBigInteger.prototype.add = bnAdd;\nBigInteger.prototype.subtract = bnSubtract;\nBigInteger.prototype.multiply = bnMultiply;\nBigInteger.prototype.divide = bnDivide;\nBigInteger.prototype.modPow = bnModPow;\n// \"constants\"\nBigInteger.ZERO = nbv(0);\nBigInteger.ONE = nbv(1);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * @internal\n */\nexport const calculateS = async ({ a, g, k, x, B, N, U, }) => {\n return new Promise((resolve, reject) => {\n g.modPow(x, N, (outerErr, outerResult) => {\n if (outerErr) {\n reject(outerErr);\n return;\n }\n B.subtract(k.multiply(outerResult)).modPow(a.add(U.multiply(x)), N, (innerErr, innerResult) => {\n if (innerErr) {\n reject(innerErr);\n return;\n }\n resolve(innerResult.mod(N));\n });\n });\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const INIT_N = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD1' +\n '29024E088A67CC74020BBEA63B139B22514A08798E3404DD' +\n 'EF9519B3CD3A431B302B0A6DF25F14374FE1356D6D51C245' +\n 'E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' +\n 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE45B3D' +\n 'C2007CB8A163BF0598DA48361C55D39A69163FA8FD24CF5F' +\n '83655D23DCA3AD961C62F356208552BB9ED529077096966D' +\n '670C354E4ABC9804F1746C08CA18217C32905E462E36CE3B' +\n 'E39E772C180E86039B2783A2EC07A28FB5C55DF06F4C52C9' +\n 'DE2BCBF6955817183995497CEA956AE515D2261898FA0510' +\n '15728E5A8AAAC42DAD33170D04507A33A85521ABDF1CBA64' +\n 'ECFB850458DBEF0A8AEA71575D060C7DB3970F85A6E1E4C7' +\n 'ABF5AE8CDB0933D71E8C94E04A25619DCEE3D2261AD2EE6B' +\n 'F12FFA06D98A0864D87602733EC86A64521F2B18177B200C' +\n 'BBE117577A615D6C770988C0BAD946E208E24FA074E5AB31' +\n '43DB5BFCE0FD108E4B82D120A93AD2CAFFFFFFFFFFFFFFFF';\nexport const SHORT_TO_HEX = {};\nexport const HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { HEX_TO_SHORT } from './constants';\n/**\n * Converts a hexadecimal encoded string to a Uint8Array of bytes.\n *\n * @param encoded The hexadecimal encoded string\n */\nexport const getBytesFromHex = (encoded) => {\n if (encoded.length % 2 !== 0) {\n throw new Error('Hex encoded strings must have an even number length');\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { SHORT_TO_HEX } from './constants';\n/**\n * Converts a Uint8Array of binary data to a hexadecimal encoded string.\n *\n * @param bytes The binary data to encode\n */\nexport const getHexFromBytes = (bytes) => {\n let out = '';\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { getHexFromBytes } from './getHexFromBytes';\n/**\n * Calculate a hash from a `SourceData`\n * @param {SourceData} data Value to hash.\n * @returns {string} Hex-encoded hash.\n * @private\n */\nexport const getHashFromData = (data) => {\n const sha256 = new Sha256();\n sha256.update(data);\n const hashedData = sha256.digestSync();\n const hashHexFromUint8 = getHexFromBytes(hashedData);\n return new Array(64 - hashHexFromUint8.length).join('0') + hashHexFromUint8;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getBytesFromHex } from './getBytesFromHex';\nimport { getHashFromData } from './getHashFromData';\n/**\n * Calculate a hash from a hex string\n * @param {string} hexStr Value to hash.\n * @returns {string} Hex-encoded hash.\n * @private\n */\nexport const getHashFromHex = (hexStr) => getHashFromData(getBytesFromHex(hexStr));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInteger } from './BigInteger';\n/**\n * Tests if a hex string has it most significant bit set (case-insensitive regex)\n */\nconst HEX_MSB_REGEX = /^[89a-f]/i;\n/**\n * Returns an unambiguous, even-length hex string of the two's complement encoding of an integer.\n *\n * It is compatible with the hex encoding of Java's BigInteger's toByteArray(), wich returns a\n * byte array containing the two's-complement representation of a BigInteger. The array contains\n * the minimum number of bytes required to represent the BigInteger, including at least one sign bit.\n *\n * Examples showing how ambiguity is avoided by left padding with:\n * \t\"00\" (for positive values where the most-significant-bit is set)\n * \"FF\" (for negative values where the most-significant-bit is set)\n *\n * padHex(bigInteger.fromInt(-236)) === \"FF14\"\n * padHex(bigInteger.fromInt(20)) === \"14\"\n *\n * padHex(bigInteger.fromInt(-200)) === \"FF38\"\n * padHex(bigInteger.fromInt(56)) === \"38\"\n *\n * padHex(bigInteger.fromInt(-20)) === \"EC\"\n * padHex(bigInteger.fromInt(236)) === \"00EC\"\n *\n * padHex(bigInteger.fromInt(-56)) === \"C8\"\n * padHex(bigInteger.fromInt(200)) === \"00C8\"\n *\n * @param {AuthBigInteger} bigInt Number to encode.\n * @returns {String} even-length hex string of the two's complement encoding.\n */\nexport const getPaddedHex = (bigInt) => {\n if (!(bigInt instanceof BigInteger)) {\n throw new Error('Not a BigInteger');\n }\n const isNegative = bigInt.compareTo(BigInteger.ZERO) < 0;\n /* Get a hex string for abs(bigInt) */\n let hexStr = bigInt.abs().toString(16);\n /* Pad hex to even length if needed */\n hexStr = hexStr.length % 2 !== 0 ? `0${hexStr}` : hexStr;\n /* Prepend \"00\" if the most significant bit is set */\n hexStr = HEX_MSB_REGEX.test(hexStr) ? `00${hexStr}` : hexStr;\n if (isNegative) {\n /* Flip the bits of the representation */\n const invertedNibbles = hexStr\n .split('')\n .map((x) => {\n const invertedNibble = ~parseInt(x, 16) & 0xf;\n return '0123456789ABCDEF'.charAt(invertedNibble);\n })\n .join('');\n /* After flipping the bits, add one to get the 2's complement representation */\n const flippedBitsBI = new BigInteger(invertedNibbles, 16).add(BigInteger.ONE);\n hexStr = flippedBitsBI.toString(16);\n /*\n For hex strings starting with 'FF8', 'FF' can be dropped, e.g. 0xFFFF80=0xFF80=0x80=-128\n\n Any sequence of '1' bits on the left can always be substituted with a single '1' bit\n without changing the represented value.\n\n This only happens in the case when the input is 80...00\n */\n if (hexStr.toUpperCase().startsWith('FF8')) {\n hexStr = hexStr.substring(2);\n }\n }\n return hexStr;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { cryptoSecureRandomInt } from './cryptoSecureRandomInt';\n/**\n * Hex encoding strategy.\n * Converts a word array to a hex string.\n * @param {WordArray} wordArray The word array.\n * @return {string} The hex string.\n * @static\n */\nfunction hexStringify(wordArray) {\n // Shortcuts\n const { words } = wordArray;\n const { sigBytes } = wordArray;\n // Convert\n const hexChars = [];\n for (let i = 0; i < sigBytes; i++) {\n const bite = (words[i >>> 2] >>> (24 - (i % 4) * 8)) & 0xff;\n hexChars.push((bite >>> 4).toString(16));\n hexChars.push((bite & 0x0f).toString(16));\n }\n return hexChars.join('');\n}\nexport class WordArray {\n constructor(words, sigBytes) {\n this.words = [];\n let Words = words;\n Words = this.words = Words || [];\n if (sigBytes !== undefined) {\n this.sigBytes = sigBytes;\n }\n else {\n this.sigBytes = Words.length * 4;\n }\n }\n random(nBytes) {\n const words = [];\n for (let i = 0; i < nBytes; i += 4) {\n words.push(cryptoSecureRandomInt());\n }\n return new WordArray(words, nBytes);\n }\n toString() {\n return hexStringify(this);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getCrypto } from './globalHelpers';\n/*\n * Cryptographically secure pseudorandom number generator\n * As Math.random() is cryptographically not safe to use\n */\nexport function cryptoSecureRandomInt() {\n const crypto = getCrypto();\n const randomResult = crypto.getRandomValues(new Uint32Array(1))[0];\n return randomResult;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { WordArray } from '@aws-amplify/core/internals/utils';\nimport { getBytesFromHex } from './getBytesFromHex';\n/**\n * Returns a Uint8Array with a sequence of random nBytes\n *\n * @param {number} nBytes\n * @returns {Uint8Array} fixed-length sequence of random bytes\n */\nexport const getRandomBytes = (nBytes) => {\n const str = new WordArray().random(nBytes).toString();\n return getBytesFromHex(str);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from '../../../../../errors/AuthError';\nimport { textEncoder } from '../../textEncoder';\nimport { BigInteger } from '../BigInteger';\nimport { calculateS, calculateU } from '../calculate';\nimport { getBytesFromHex } from '../getBytesFromHex';\nimport { getHashFromData } from '../getHashFromData';\nimport { getHashFromHex } from '../getHashFromHex';\nimport { getHexFromBytes } from '../getHexFromBytes';\nimport { getHkdfKey } from '../getHkdfKey';\nimport { getPaddedHex } from '../getPaddedHex';\nimport { getRandomBytes } from '../getRandomBytes';\nimport { getRandomString } from '../getRandomString';\n/** @class */\nexport default class AuthenticationHelper {\n constructor({ userPoolName, a, g, A, N, }) {\n this.encoder = textEncoder;\n this.userPoolName = userPoolName;\n this.a = a;\n this.g = g;\n this.A = A;\n this.N = N;\n this.k = new BigInteger(getHashFromHex(`${getPaddedHex(N)}${getPaddedHex(g)}`), 16);\n }\n /**\n * @returns {string} Generated random value included in password hash.\n */\n getRandomPassword() {\n if (!this.randomPassword) {\n throw new AuthError({\n name: 'EmptyBigIntegerRandomPassword',\n message: 'random password is empty',\n });\n }\n return this.randomPassword;\n }\n /**\n * @returns {string} Generated random value included in devices hash.\n */\n getSaltToHashDevices() {\n if (!this.saltToHashDevices) {\n throw new AuthError({\n name: 'EmptyBigIntegersaltToHashDevices',\n message: 'saltToHashDevices is empty',\n });\n }\n return this.saltToHashDevices;\n }\n /**\n * @returns {string} Value used to verify devices.\n */\n getVerifierDevices() {\n if (!this.verifierDevices) {\n throw new AuthError({\n name: 'EmptyBigIntegerVerifierDevices',\n message: 'verifyDevices is empty',\n });\n }\n return this.verifierDevices;\n }\n /**\n * Generate salts and compute verifier.\n *\n * @param {string} deviceGroupKey Devices to generate verifier for.\n * @param {string} username User to generate verifier for.\n *\n * @returns {Promise}\n */\n async generateHashDevice(deviceGroupKey, username) {\n this.randomPassword = getRandomString();\n const combinedString = `${deviceGroupKey}${username}:${this.randomPassword}`;\n const hashedString = getHashFromData(combinedString);\n const hexRandom = getHexFromBytes(getRandomBytes(16));\n // The random hex will be unambiguously represented as a postive integer\n this.saltToHashDevices = getPaddedHex(new BigInteger(hexRandom, 16));\n return new Promise((resolve, reject) => {\n this.g.modPow(new BigInteger(getHashFromHex(this.saltToHashDevices + hashedString), 16), this.N, (err, result) => {\n if (err) {\n reject(err);\n return;\n }\n this.verifierDevices = getPaddedHex(result);\n resolve();\n });\n });\n }\n /**\n * Calculates the final HKDF key based on computed S value, computed U value and the key\n *\n * @param {String} username Username.\n * @param {String} password Password.\n * @param {AuthBigInteger} B Server B value.\n * @param {AuthBigInteger} salt Generated salt.\n */\n async getPasswordAuthenticationKey({ username, password, serverBValue, salt, }) {\n if (serverBValue.mod(this.N).equals(BigInteger.ZERO)) {\n throw new Error('B cannot be zero.');\n }\n const U = calculateU({\n A: this.A,\n B: serverBValue,\n });\n const usernamePassword = `${this.userPoolName}${username}:${password}`;\n const usernamePasswordHash = getHashFromData(usernamePassword);\n const x = new BigInteger(getHashFromHex(getPaddedHex(salt) + usernamePasswordHash), 16);\n const S = await calculateS({\n a: this.a,\n g: this.g,\n k: this.k,\n x,\n B: serverBValue,\n N: this.N,\n U,\n });\n const context = this.encoder.convert('Caldera Derived Key');\n const spacer = this.encoder.convert(String.fromCharCode(1));\n const info = new Uint8Array(context.byteLength + spacer.byteLength);\n info.set(context, 0);\n info.set(spacer, context.byteLength);\n const hkdfKey = getHkdfKey(getBytesFromHex(getPaddedHex(S)), getBytesFromHex(getPaddedHex(U)), info);\n return hkdfKey;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { base64Encoder } from '@aws-amplify/core/internals/utils';\nimport { getRandomBytes } from './getRandomBytes';\n/**\n * Helper function to generate a random string\n * @returns {string} a random value.\n *\n * @internal\n */\nexport const getRandomString = () => base64Encoder.convert(getRandomBytes(40));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInteger } from '../BigInteger';\nimport { getHashFromHex } from '../getHashFromHex';\nimport { getPaddedHex } from '../getPaddedHex';\n/**\n * @internal\n */\nexport const calculateU = ({ A, B, }) => {\n const U = new BigInteger(getHashFromHex(getPaddedHex(A) + getPaddedHex(B)), 16);\n if (U.equals(BigInteger.ZERO)) {\n throw new Error('U cannot be zero.');\n }\n return U;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Sha256 } from '@aws-crypto/sha256-js';\n/**\n * Standard HKDF algorithm.\n *\n * @param {Uint8Array} ikm Input key material.\n * @param {Uint8Array} salt Salt value.\n * @param {Uint8Array} info Context and application specific info.\n *\n * @returns {Uint8Array} Strong key material.\n *\n * @internal\n */\nexport const getHkdfKey = (ikm, salt, info) => {\n const awsCryptoHash = new Sha256(salt);\n awsCryptoHash.update(ikm);\n const resultFromAWSCryptoPrk = awsCryptoHash.digestSync();\n const awsCryptoHashHmac = new Sha256(resultFromAWSCryptoPrk);\n awsCryptoHashHmac.update(info);\n const resultFromAWSCryptoHmac = awsCryptoHashHmac.digestSync();\n const hashHexFromAWSCrypto = resultFromAWSCryptoHmac;\n return hashHexFromAWSCrypto.slice(0, 16);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { BigInteger } from '../BigInteger';\n/**\n * @internal\n */\nexport const calculateA = async ({ a, g, N, }) => {\n return new Promise((resolve, reject) => {\n g.modPow(a, N, (err, A) => {\n if (err) {\n reject(err);\n return;\n }\n if (A.mod(N).equals(BigInteger.ZERO)) {\n reject(new Error('Illegal parameter. A mod N cannot be 0.'));\n return;\n }\n resolve(A);\n });\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthenticationHelper } from './AuthenticationHelper';\nimport { BigInteger } from './BigInteger';\nimport { calculateA } from './calculate';\nimport { INIT_N } from './constants';\nimport { getHexFromBytes } from './getHexFromBytes';\nimport { getRandomBytes } from './getRandomBytes';\n/**\n * Returns a new {@link AuthenticationHelper} instance with randomly generated BigInteger seed\n *\n * @param userPoolName Cognito user pool name.\n * @returns An {@link AuthenticationHelper} instance.\n *\n * @internal\n */\nexport const getAuthenticationHelper = async (userPoolName) => {\n const N = new BigInteger(INIT_N, 16);\n const g = new BigInteger('2', 16);\n const a = generateRandomBigInteger();\n const A = await calculateA({ a, g, N });\n return new AuthenticationHelper({ userPoolName, a, g, A, N });\n};\n/**\n * Generates a random BigInteger.\n *\n * @returns {BigInteger} a random value.\n */\nconst generateRandomBigInteger = () => {\n // This will be interpreted as a postive 128-bit integer\n const hexRandom = getHexFromBytes(getRandomBytes(128));\n // There is no need to do randomBigInt.mod(this.N - 1) as N (3072-bit) is > 128 bytes (1024-bit)\n return new BigInteger(hexRandom, 16);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst MONTH_NAMES = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n];\nconst WEEK_NAMES = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\nexport const getNowString = () => {\n const now = new Date();\n const weekDay = WEEK_NAMES[now.getUTCDay()];\n const month = MONTH_NAMES[now.getUTCMonth()];\n const day = now.getUTCDate();\n let hours = now.getUTCHours();\n if (hours < 10) {\n hours = `0${hours}`;\n }\n let minutes = now.getUTCMinutes();\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n let seconds = now.getUTCSeconds();\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n const year = now.getUTCFullYear();\n // ddd MMM D HH:mm:ss UTC YYYY\n const dateNow = `${weekDay} ${month} ${day} ${hours}:${minutes}:${seconds} UTC ${year}`;\n return dateNow;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Sha256 } from '@aws-crypto/sha256-js';\nimport { base64Decoder, base64Encoder, } from '@aws-amplify/core/internals/utils';\nimport { textEncoder } from '../textEncoder';\nexport const getSignatureString = ({ userPoolName, username, challengeParameters, dateNow, hkdf, }) => {\n const bufUPIDaToB = textEncoder.convert(userPoolName);\n const bufUNaToB = textEncoder.convert(username);\n const bufSBaToB = urlB64ToUint8Array(challengeParameters.SECRET_BLOCK);\n const bufDNaToB = textEncoder.convert(dateNow);\n const bufConcat = new Uint8Array(bufUPIDaToB.byteLength +\n bufUNaToB.byteLength +\n bufSBaToB.byteLength +\n bufDNaToB.byteLength);\n bufConcat.set(bufUPIDaToB, 0);\n bufConcat.set(bufUNaToB, bufUPIDaToB.byteLength);\n bufConcat.set(bufSBaToB, bufUPIDaToB.byteLength + bufUNaToB.byteLength);\n bufConcat.set(bufDNaToB, bufUPIDaToB.byteLength + bufUNaToB.byteLength + bufSBaToB.byteLength);\n const awsCryptoHash = new Sha256(hkdf);\n awsCryptoHash.update(bufConcat);\n const resultFromAWSCrypto = awsCryptoHash.digestSync();\n const signatureString = base64Encoder.convert(resultFromAWSCrypto);\n return signatureString;\n};\nconst urlB64ToUint8Array = (base64String) => {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');\n const rawData = base64Decoder.convert(base64);\n const outputArray = new Uint8Array(rawData.length);\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n return outputArray;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AmplifyUrl, AuthAction, assertTokenProviderConfig, base64Encoder, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nimport { InitiateAuthException } from '../types/errors';\nimport { AuthErrorCodes } from '../../../common/AuthErrorStrings';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { USER_ALREADY_AUTHENTICATED_EXCEPTION } from '../../../errors/constants';\nimport { getCurrentUser } from '../apis/getCurrentUser';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { signInStore } from './signInStore';\nimport { associateSoftwareToken, confirmDevice, initiateAuth, respondToAuthChallenge, verifySoftwareToken, } from './clients/CognitoIdentityProvider';\nimport { getRegion } from './clients/CognitoIdentityProvider/utils';\nimport { assertDeviceMetadata } from './types';\nimport { getAuthenticationHelper, getBytesFromHex, getNowString, getSignatureString, } from './srp';\nimport { BigInteger } from './srp/BigInteger';\nimport { getUserContextData } from './userContextData';\nconst USER_ATTRIBUTES = 'userAttributes.';\nexport async function handleCustomChallenge({ challengeResponse, clientMetadata, session, username, config, tokenOrchestrator, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n ANSWER: challengeResponse,\n };\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'CUSTOM_CHALLENGE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH') {\n return handleDeviceSRPAuth({\n username,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n }\n return response;\n}\nexport async function handleMFASetupChallenge({ challengeResponse, username, clientMetadata, session, deviceName, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n };\n const { Session } = await verifySoftwareToken({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, {\n UserCode: challengeResponse,\n Session: session,\n FriendlyDeviceName: deviceName,\n });\n signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n const jsonReq = {\n ChallengeName: 'MFA_SETUP',\n ChallengeResponses: challengeResponses,\n Session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n };\n return respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReq);\n}\nexport async function handleSelectMFATypeChallenge({ challengeResponse, username, clientMetadata, session, config, }) {\n const { userPoolId, userPoolClientId } = config;\n assertValidationError(challengeResponse === 'TOTP' || challengeResponse === 'SMS', AuthValidationErrorCode.IncorrectMFAMethod);\n const challengeResponses = {\n USERNAME: username,\n ANSWER: mapMfaType(challengeResponse),\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SELECT_MFA_TYPE',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleSMSMFAChallenge({ challengeResponse, clientMetadata, session, username, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n SMS_MFA_CODE: challengeResponse,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SMS_MFA',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleSoftwareTokenMFAChallenge({ challengeResponse, clientMetadata, session, username, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n USERNAME: username,\n SOFTWARE_TOKEN_MFA_CODE: challengeResponse,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'SOFTWARE_TOKEN_MFA',\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleCompleteNewPasswordChallenge({ challengeResponse, clientMetadata, session, username, requiredAttributes, config, }) {\n const { userPoolId, userPoolClientId } = config;\n const challengeResponses = {\n ...createAttributes(requiredAttributes),\n NEW_PASSWORD: challengeResponse,\n USERNAME: username,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n ChallengeName: 'NEW_PASSWORD_REQUIRED',\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n ClientId: userPoolClientId,\n UserContextData,\n };\n return respondToAuthChallenge({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.ConfirmSignIn),\n }, jsonReq);\n}\nexport async function handleUserPasswordAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId } = config;\n const authParameters = {\n USERNAME: username,\n PASSWORD: password,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'USER_PASSWORD_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ??\n response.ChallengeParameters?.USER_ID_FOR_SRP ??\n username;\n setActiveSignInUsername(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexport async function handleUserSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n const { userPoolId, userPoolClientId } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const authenticationHelper = await getAuthenticationHelper(userPoolName);\n const authParameters = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'USER_SRP_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const resp = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const { ChallengeParameters: challengeParameters, Session: session } = resp;\n const activeUsername = challengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n return retryOnResourceNotFoundException(handlePasswordVerifierChallenge, [\n password,\n challengeParameters,\n clientMetadata,\n session,\n authenticationHelper,\n config,\n tokenOrchestrator,\n ], activeUsername, tokenOrchestrator);\n}\nexport async function handleCustomAuthFlowWithoutSRP(username, clientMetadata, config, tokenOrchestrator) {\n const { userPoolClientId, userPoolId } = config;\n const authParameters = {\n USERNAME: username,\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n authParameters.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = response.ChallengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username: activeUsername,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexport async function handleCustomSRPAuthFlow(username, password, clientMetadata, config, tokenOrchestrator) {\n assertTokenProviderConfig(config);\n const { userPoolId, userPoolClientId } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const authenticationHelper = await getAuthenticationHelper(userPoolName);\n const authParameters = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n CHALLENGE_NAME: 'SRP_A',\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReq = {\n AuthFlow: 'CUSTOM_AUTH',\n AuthParameters: authParameters,\n ClientMetadata: clientMetadata,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const { ChallengeParameters: challengeParameters, Session: session } = await initiateAuth({\n region: getRegion(userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignIn),\n }, jsonReq);\n const activeUsername = challengeParameters?.USERNAME ?? username;\n setActiveSignInUsername(activeUsername);\n return retryOnResourceNotFoundException(handlePasswordVerifierChallenge, [\n password,\n challengeParameters,\n clientMetadata,\n session,\n authenticationHelper,\n config,\n tokenOrchestrator,\n ], activeUsername, tokenOrchestrator);\n}\nasync function handleDeviceSRPAuth({ username, config, clientMetadata, session, tokenOrchestrator, }) {\n const { userPoolId } = config;\n const clientId = config.userPoolClientId;\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n assertDeviceMetadata(deviceMetadata);\n const authenticationHelper = await getAuthenticationHelper(deviceMetadata.deviceGroupKey);\n const challengeResponses = {\n USERNAME: username,\n SRP_A: authenticationHelper.A.toString(16),\n DEVICE_KEY: deviceMetadata.deviceKey,\n };\n const jsonReqResponseChallenge = {\n ChallengeName: 'DEVICE_SRP_AUTH',\n ClientId: clientId,\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n };\n const { ChallengeParameters: respondedChallengeParameters, Session } = await respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReqResponseChallenge);\n return handleDevicePasswordVerifier(username, respondedChallengeParameters, clientMetadata, Session, authenticationHelper, config, tokenOrchestrator);\n}\nasync function handleDevicePasswordVerifier(username, challengeParameters, clientMetadata, session, authenticationHelper, { userPoolId, userPoolClientId }, tokenOrchestrator) {\n const deviceMetadata = await tokenOrchestrator?.getDeviceMetadata(username);\n assertDeviceMetadata(deviceMetadata);\n const serverBValue = new BigInteger(challengeParameters?.SRP_B, 16);\n const salt = new BigInteger(challengeParameters?.SALT, 16);\n const { deviceKey } = deviceMetadata;\n const { deviceGroupKey } = deviceMetadata;\n const hkdf = await authenticationHelper.getPasswordAuthenticationKey({\n username: deviceMetadata.deviceKey,\n password: deviceMetadata.randomPassword,\n serverBValue,\n salt,\n });\n const dateNow = getNowString();\n const challengeResponses = {\n USERNAME: challengeParameters?.USERNAME ?? username,\n PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,\n TIMESTAMP: dateNow,\n PASSWORD_CLAIM_SIGNATURE: getSignatureString({\n username: deviceKey,\n userPoolName: deviceGroupKey,\n challengeParameters,\n dateNow,\n hkdf,\n }),\n DEVICE_KEY: deviceKey,\n };\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReqResponseChallenge = {\n ChallengeName: 'DEVICE_PASSWORD_VERIFIER',\n ClientId: userPoolClientId,\n ChallengeResponses: challengeResponses,\n Session: session,\n ClientMetadata: clientMetadata,\n UserContextData,\n };\n return respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReqResponseChallenge);\n}\nexport async function handlePasswordVerifierChallenge(password, challengeParameters, clientMetadata, session, authenticationHelper, config, tokenOrchestrator) {\n const { userPoolId, userPoolClientId } = config;\n const userPoolName = userPoolId?.split('_')[1] || '';\n const serverBValue = new BigInteger(challengeParameters?.SRP_B, 16);\n const salt = new BigInteger(challengeParameters?.SALT, 16);\n const username = challengeParameters?.USER_ID_FOR_SRP;\n if (!username)\n throw new AuthError({\n name: 'EmptyUserIdForSRPException',\n message: 'USER_ID_FOR_SRP was not found in challengeParameters',\n });\n const hkdf = await authenticationHelper.getPasswordAuthenticationKey({\n username,\n password,\n serverBValue,\n salt,\n });\n const dateNow = getNowString();\n const challengeResponses = {\n USERNAME: username,\n PASSWORD_CLAIM_SECRET_BLOCK: challengeParameters?.SECRET_BLOCK,\n TIMESTAMP: dateNow,\n PASSWORD_CLAIM_SIGNATURE: getSignatureString({\n username,\n userPoolName,\n challengeParameters,\n dateNow,\n hkdf,\n }),\n };\n const deviceMetadata = await tokenOrchestrator.getDeviceMetadata(username);\n if (deviceMetadata && deviceMetadata.deviceKey) {\n challengeResponses.DEVICE_KEY = deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId,\n userPoolClientId,\n });\n const jsonReqResponseChallenge = {\n ChallengeName: 'PASSWORD_VERIFIER',\n ChallengeResponses: challengeResponses,\n ClientMetadata: clientMetadata,\n Session: session,\n ClientId: userPoolClientId,\n UserContextData,\n };\n const response = await respondToAuthChallenge({ region: getRegion(userPoolId) }, jsonReqResponseChallenge);\n if (response.ChallengeName === 'DEVICE_SRP_AUTH')\n return handleDeviceSRPAuth({\n username,\n config,\n clientMetadata,\n session: response.Session,\n tokenOrchestrator,\n });\n return response;\n}\nexport async function getSignInResult(params) {\n const { challengeName, challengeParameters } = params;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n switch (challengeName) {\n case 'CUSTOM_CHALLENGE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_CUSTOM_CHALLENGE',\n additionalInfo: challengeParameters,\n },\n };\n case 'MFA_SETUP': {\n const { signInSession, username } = signInStore.getState();\n if (!isMFATypeEnabled(challengeParameters, 'TOTP'))\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: `Cannot initiate MFA setup from available types: ${getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_SETUP))}`,\n });\n const { Session, SecretCode: secretCode } = await associateSoftwareToken({ region: getRegion(authConfig.userPoolId) }, {\n Session: signInSession,\n });\n signInStore.dispatch({\n type: 'SET_SIGN_IN_SESSION',\n value: Session,\n });\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_TOTP_SETUP',\n totpSetupDetails: getTOTPSetupDetails(secretCode, username),\n },\n };\n }\n case 'NEW_PASSWORD_REQUIRED':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_NEW_PASSWORD_REQUIRED',\n missingAttributes: parseAttributes(challengeParameters.requiredAttributes),\n },\n };\n case 'SELECT_MFA_TYPE':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONTINUE_SIGN_IN_WITH_MFA_SELECTION',\n allowedMFATypes: getMFATypes(parseMFATypes(challengeParameters.MFAS_CAN_CHOOSE)),\n },\n };\n case 'SMS_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_SMS_CODE',\n codeDeliveryDetails: {\n deliveryMedium: challengeParameters.CODE_DELIVERY_DELIVERY_MEDIUM,\n destination: challengeParameters.CODE_DELIVERY_DESTINATION,\n },\n },\n };\n case 'SOFTWARE_TOKEN_MFA':\n return {\n isSignedIn: false,\n nextStep: {\n signInStep: 'CONFIRM_SIGN_IN_WITH_TOTP_CODE',\n },\n };\n case 'ADMIN_NO_SRP_AUTH':\n break;\n case 'DEVICE_PASSWORD_VERIFIER':\n break;\n case 'DEVICE_SRP_AUTH':\n break;\n case 'PASSWORD_VERIFIER':\n break;\n }\n // TODO: remove this error message for production apps\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: 'An error occurred during the sign in process. ' +\n `${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexport function getTOTPSetupDetails(secretCode, username) {\n return {\n sharedSecret: secretCode,\n getSetupUri: (appName, accountName) => {\n const totpUri = `otpauth://totp/${appName}:${accountName ?? username}?secret=${secretCode}&issuer=${appName}`;\n return new AmplifyUrl(totpUri);\n },\n };\n}\nexport function getSignInResultFromError(errorName) {\n if (errorName === InitiateAuthException.PasswordResetRequiredException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'RESET_PASSWORD' },\n };\n }\n else if (errorName === InitiateAuthException.UserNotConfirmedException) {\n return {\n isSignedIn: false,\n nextStep: { signInStep: 'CONFIRM_SIGN_UP' },\n };\n }\n}\nexport function parseAttributes(attributes) {\n if (!attributes)\n return [];\n const parsedAttributes = JSON.parse(attributes).map(att => att.includes(USER_ATTRIBUTES) ? att.replace(USER_ATTRIBUTES, '') : att);\n return parsedAttributes;\n}\nexport function createAttributes(attributes) {\n if (!attributes)\n return {};\n const newAttributes = {};\n Object.entries(attributes).forEach(([key, value]) => {\n if (value)\n newAttributes[`${USER_ATTRIBUTES}${key}`] = value;\n });\n return newAttributes;\n}\nexport async function handleChallengeName(username, challengeName, session, challengeResponse, config, tokenOrchestrator, clientMetadata, options) {\n const userAttributes = options?.userAttributes;\n const deviceName = options?.friendlyDeviceName;\n switch (challengeName) {\n case 'SMS_MFA':\n return handleSMSMFAChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'SELECT_MFA_TYPE':\n return handleSelectMFATypeChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n case 'MFA_SETUP':\n return handleMFASetupChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n deviceName,\n config,\n });\n case 'NEW_PASSWORD_REQUIRED':\n return handleCompleteNewPasswordChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n requiredAttributes: userAttributes,\n config,\n });\n case 'CUSTOM_CHALLENGE':\n return retryOnResourceNotFoundException(handleCustomChallenge, [\n {\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n tokenOrchestrator,\n },\n ], username, tokenOrchestrator);\n case 'SOFTWARE_TOKEN_MFA':\n return handleSoftwareTokenMFAChallenge({\n challengeResponse,\n clientMetadata,\n session,\n username,\n config,\n });\n }\n // TODO: remove this error message for production apps\n throw new AuthError({\n name: AuthErrorCodes.SignInException,\n message: `An error occurred during the sign in process. \n\t\t${challengeName} challengeName returned by the underlying service was not addressed.`,\n });\n}\nexport function mapMfaType(mfa) {\n let mfaType = 'SMS_MFA';\n if (mfa === 'TOTP')\n mfaType = 'SOFTWARE_TOKEN_MFA';\n return mfaType;\n}\nexport function getMFAType(type) {\n if (type === 'SMS_MFA')\n return 'SMS';\n if (type === 'SOFTWARE_TOKEN_MFA')\n return 'TOTP';\n // TODO: log warning for unknown MFA type\n}\nexport function getMFATypes(types) {\n if (!types)\n return undefined;\n return types.map(getMFAType).filter(Boolean);\n}\nexport function parseMFATypes(mfa) {\n if (!mfa)\n return [];\n return JSON.parse(mfa);\n}\nexport function isMFATypeEnabled(challengeParams, mfaType) {\n const { MFAS_CAN_SETUP } = challengeParams;\n const mfaTypes = getMFATypes(parseMFATypes(MFAS_CAN_SETUP));\n if (!mfaTypes)\n return false;\n return mfaTypes.includes(mfaType);\n}\nexport async function assertUserNotAuthenticated() {\n let authUser;\n try {\n authUser = await getCurrentUser();\n }\n catch (error) { }\n if (authUser && authUser.userId && authUser.username) {\n throw new AuthError({\n name: USER_ALREADY_AUTHENTICATED_EXCEPTION,\n message: 'There is already a signed in user.',\n recoverySuggestion: 'Call signOut before calling signIn again.',\n });\n }\n}\n/**\n * This function is used to kick off the device management flow.\n *\n * If an error is thrown while generating a hash device or calling the `ConfirmDevice`\n * client, then this API will ignore the error and return undefined. Otherwise the authentication\n * flow will not complete and the user won't be able to be signed in.\n *\n * @returns DeviceMetadata | undefined\n */\nexport async function getNewDeviceMetatada(userPoolId, newDeviceMetadata, accessToken) {\n if (!newDeviceMetadata)\n return undefined;\n const userPoolName = userPoolId.split('_')[1] || '';\n const authenticationHelper = await getAuthenticationHelper(userPoolName);\n const deviceKey = newDeviceMetadata?.DeviceKey;\n const deviceGroupKey = newDeviceMetadata?.DeviceGroupKey;\n try {\n await authenticationHelper.generateHashDevice(deviceGroupKey ?? '', deviceKey ?? '');\n }\n catch (errGenHash) {\n // TODO: log error here\n return undefined;\n }\n const deviceSecretVerifierConfig = {\n Salt: base64Encoder.convert(getBytesFromHex(authenticationHelper.getSaltToHashDevices())),\n PasswordVerifier: base64Encoder.convert(getBytesFromHex(authenticationHelper.getVerifierDevices())),\n };\n const randomPassword = authenticationHelper.getRandomPassword();\n try {\n await confirmDevice({ region: getRegion(userPoolId) }, {\n AccessToken: accessToken,\n DeviceKey: newDeviceMetadata?.DeviceKey,\n DeviceSecretVerifierConfig: deviceSecretVerifierConfig,\n });\n return {\n deviceKey,\n deviceGroupKey,\n randomPassword,\n };\n }\n catch (error) {\n // TODO: log error here\n return undefined;\n }\n}\n/**\n * It will retry the function if the error is a `ResourceNotFoundException` and\n * will clean the device keys stored in the storage mechanism.\n *\n */\nexport async function retryOnResourceNotFoundException(func, args, username, tokenOrchestrator) {\n try {\n return await func(...args);\n }\n catch (error) {\n if (error instanceof AuthError &&\n error.name === 'ResourceNotFoundException' &&\n error.message.includes('Device does not exist.')) {\n await tokenOrchestrator.clearDeviceMetadata(username);\n return func(...args);\n }\n throw error;\n }\n}\nexport function setActiveSignInUsername(username) {\n const { dispatch } = signInStore;\n dispatch({ type: 'SET_USERNAME', value: username });\n}\nexport function getActiveSignInUsername(username) {\n const state = signInStore.getState();\n return state.username ?? username;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyError, decodeJWT } from '@aws-amplify/core/internals/utils';\nimport { tokenOrchestrator } from './tokenProvider';\nexport async function cacheCognitoTokens(AuthenticationResult) {\n if (AuthenticationResult.AccessToken) {\n const accessToken = decodeJWT(AuthenticationResult.AccessToken);\n const accessTokenIssuedAtInMillis = (accessToken.payload.iat || 0) * 1000;\n const currentTime = new Date().getTime();\n const clockDrift = accessTokenIssuedAtInMillis > 0\n ? accessTokenIssuedAtInMillis - currentTime\n : 0;\n let idToken;\n let refreshToken;\n let deviceMetadata;\n if (AuthenticationResult.RefreshToken) {\n refreshToken = AuthenticationResult.RefreshToken;\n }\n if (AuthenticationResult.IdToken) {\n idToken = decodeJWT(AuthenticationResult.IdToken);\n }\n if (AuthenticationResult?.NewDeviceMetadata) {\n deviceMetadata = AuthenticationResult.NewDeviceMetadata;\n }\n const tokens = {\n accessToken,\n idToken,\n refreshToken,\n clockDrift,\n deviceMetadata,\n username: AuthenticationResult.username,\n };\n if (AuthenticationResult?.signInDetails) {\n tokens.signInDetails = AuthenticationResult.signInDetails;\n }\n await tokenOrchestrator.setTokens({\n tokens,\n });\n }\n else {\n // This would be a service error\n throw new AmplifyError({\n message: 'Invalid tokens',\n name: 'InvalidTokens',\n recoverySuggestion: 'Check Cognito UserPool settings',\n });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils';\nimport { getCurrentUser } from '../apis/getCurrentUser';\nimport { UNEXPECTED_SIGN_IN_INTERRUPTION_EXCEPTION, USER_UNAUTHENTICATED_EXCEPTION, } from '../../../errors/constants';\nimport { AuthError } from '../../../errors/AuthError';\nexport const ERROR_MESSAGE = 'Unable to get user session following successful sign-in.';\nexport const dispatchSignedInHubEvent = async () => {\n try {\n Hub.dispatch('auth', {\n event: 'signedIn',\n data: await getCurrentUser(),\n }, 'Auth', AMPLIFY_SYMBOL);\n }\n catch (error) {\n if (error.name === USER_UNAUTHENTICATED_EXCEPTION) {\n throw new AuthError({\n name: UNEXPECTED_SIGN_IN_INTERRUPTION_EXCEPTION,\n message: ERROR_MESSAGE,\n recoverySuggestion: 'This most likely is due to auth tokens not being persisted. If you are using cookie store, please ensure cookies can be correctly set from your server.',\n });\n }\n throw error;\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleCustomSRPAuthFlow, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in using a custom authentication flow with SRP\n *\n * @param input - The SignInWithCustomSRPAuthInput object\n * @returns SignInWithCustomSRPAuthOutput\n * @throws service: {@link InitiateAuthException }, {@link RespondToAuthChallengeException } - Cognito\n * service errors thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signInWithCustomSRPAuth(input) {\n const { username, password, options } = input;\n const signInDetails = {\n loginId: username,\n authFlowType: 'CUSTOM_WITH_SRP',\n };\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const metadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignInPassword);\n try {\n const { ChallengeName: handledChallengeName, ChallengeParameters: handledChallengeParameters, AuthenticationResult, Session, } = await handleCustomSRPAuthFlow(username, password, metadata, authConfig, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: handledChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n await cacheCognitoTokens({\n username: activeUsername,\n ...AuthenticationResult,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n cleanActiveSignInState();\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: handledChallengeName,\n challengeParameters: handledChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleUserSRPAuthFlow, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in\n *\n * @param input - The SignInWithSRPInput object\n * @returns SignInWithSRPOutput\n * @throws service: {@link InitiateAuthException }, {@link RespondToAuthChallengeException } - Cognito service errors\n * thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signInWithSRP(input) {\n const { username, password } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const signInDetails = {\n loginId: username,\n authFlowType: 'USER_SRP_AUTH',\n };\n assertTokenProviderConfig(authConfig);\n const clientMetaData = input.options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignInPassword);\n try {\n const { ChallengeName: handledChallengeName, ChallengeParameters: handledChallengeParameters, AuthenticationResult, Session, } = await handleUserSRPAuthFlow(username, password, clientMetaData, authConfig, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: handledChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n cleanActiveSignInState();\n await cacheCognitoTokens({\n username: activeUsername,\n ...AuthenticationResult,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: handledChallengeName,\n challengeParameters: handledChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertUserNotAuthenticated } from '../utils/signInHelpers';\nimport { signInWithCustomAuth } from './signInWithCustomAuth';\nimport { signInWithCustomSRPAuth } from './signInWithCustomSRPAuth';\nimport { signInWithSRP } from './signInWithSRP';\nimport { signInWithUserPassword } from './signInWithUserPassword';\n/**\n * Signs a user in\n *\n * @param input - The SignInInput object\n * @returns SignInOutput\n * @throws service: {@link InitiateAuthException }, {@link RespondToAuthChallengeException }\n * - Cognito service errors thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signIn(input) {\n const authFlowType = input.options?.authFlowType;\n await assertUserNotAuthenticated();\n switch (authFlowType) {\n case 'USER_SRP_AUTH':\n return signInWithSRP(input);\n case 'USER_PASSWORD_AUTH':\n return signInWithUserPassword(input);\n case 'CUSTOM_WITHOUT_SRP':\n return signInWithCustomAuth(input);\n case 'CUSTOM_WITH_SRP':\n return signInWithCustomSRPAuth(input);\n default:\n return signInWithSRP(input);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleUserPasswordAuthFlow, retryOnResourceNotFoundException, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in using USER_PASSWORD_AUTH AuthFlowType\n *\n * @param input - The SignInWithUserPasswordInput object\n * @returns SignInWithUserPasswordOutput\n * @throws service: {@link InitiateAuthException } - Cognito service error thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signInWithUserPassword(input) {\n const { username, password, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const signInDetails = {\n loginId: username,\n authFlowType: 'USER_PASSWORD_AUTH',\n };\n assertTokenProviderConfig(authConfig);\n const metadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignInPassword);\n try {\n const { ChallengeName: retiredChallengeName, ChallengeParameters: retriedChallengeParameters, AuthenticationResult, Session, } = await retryOnResourceNotFoundException(handleUserPasswordAuthFlow, [username, password, metadata, authConfig, tokenOrchestrator], username, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: retiredChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n await cacheCognitoTokens({\n ...AuthenticationResult,\n username: activeUsername,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n cleanActiveSignInState();\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: retiredChallengeName,\n challengeParameters: retriedChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { getActiveSignInUsername, getNewDeviceMetatada, getSignInResult, getSignInResultFromError, handleCustomAuthFlowWithoutSRP, retryOnResourceNotFoundException, } from '../utils/signInHelpers';\nimport { cleanActiveSignInState, setActiveSignInState, } from '../utils/signInStore';\nimport { cacheCognitoTokens } from '../tokenProvider/cacheTokens';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { dispatchSignedInHubEvent } from '../utils/dispatchSignedInHubEvent';\n/**\n * Signs a user in using a custom authentication flow without password\n *\n * @param input - The SignInWithCustomAuthInput object\n * @returns AuthSignInResult\n * @throws service: {@link InitiateAuthException } - Cognito service errors thrown during the sign-in process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown when either username or password\n * are not defined.\n * @throws SignInWithCustomAuthOutput - Thrown when the token provider config is invalid.\n */\nexport async function signInWithCustomAuth(input) {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(authConfig);\n const { username, password, options } = input;\n const signInDetails = {\n loginId: username,\n authFlowType: 'CUSTOM_WITHOUT_SRP',\n };\n const metadata = options?.clientMetadata;\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignInUsername);\n assertValidationError(!password, AuthValidationErrorCode.CustomAuthSignInPassword);\n try {\n const { ChallengeName: retriedChallengeName, ChallengeParameters: retiredChallengeParameters, AuthenticationResult, Session, } = await retryOnResourceNotFoundException(handleCustomAuthFlowWithoutSRP, [username, metadata, authConfig, tokenOrchestrator], username, tokenOrchestrator);\n const activeUsername = getActiveSignInUsername(username);\n // sets up local state used during the sign-in process\n setActiveSignInState({\n signInSession: Session,\n username: activeUsername,\n challengeName: retriedChallengeName,\n signInDetails,\n });\n if (AuthenticationResult) {\n cleanActiveSignInState();\n await cacheCognitoTokens({\n username: activeUsername,\n ...AuthenticationResult,\n NewDeviceMetadata: await getNewDeviceMetatada(authConfig.userPoolId, AuthenticationResult.NewDeviceMetadata, AuthenticationResult.AccessToken),\n signInDetails,\n });\n await dispatchSignedInHubEvent();\n return {\n isSignedIn: true,\n nextStep: { signInStep: 'DONE' },\n };\n }\n return getSignInResult({\n challengeName: retriedChallengeName,\n challengeParameters: retiredChallengeParameters,\n });\n }\n catch (error) {\n cleanActiveSignInState();\n assertServiceError(error);\n const result = getSignInResultFromError(error.name);\n if (result)\n return result;\n throw error;\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '../Amplify';\nexport function clearCredentials() {\n return Amplify.Auth.clearCredentials();\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { invalidOriginException, invalidRedirectException, } from '../../../../errors/constants';\n/** @internal */\nexport function getRedirectUrl(redirects) {\n const redirectUrlFromTheSameOrigin = redirects?.find(isSameOriginAndPathName) ??\n redirects?.find(isTheSameDomain);\n const redirectUrlFromDifferentOrigin = redirects?.find(isHttps) ?? redirects?.find(isHttp);\n if (redirectUrlFromTheSameOrigin) {\n return redirectUrlFromTheSameOrigin;\n }\n else if (redirectUrlFromDifferentOrigin) {\n throw invalidOriginException;\n }\n throw invalidRedirectException;\n}\n// origin + pathname => https://example.com/app\nconst isSameOriginAndPathName = (redirect) => redirect.startsWith(String(window.location.origin + window.location.pathname ?? '/'));\n// domain => outlook.live.com, github.com\nconst isTheSameDomain = (redirect) => redirect.includes(String(window.location.hostname));\nconst isHttp = (redirect) => redirect.startsWith('http://');\nconst isHttps = (redirect) => redirect.startsWith('https://');\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertOAuthConfig } from '@aws-amplify/core/internals/utils';\nimport { openAuthSession } from '../../../../utils';\nimport { getRedirectUrl } from './getRedirectUrl';\nexport const oAuthSignOutRedirect = async (authConfig, preferPrivateSession = false) => {\n assertOAuthConfig(authConfig);\n const { loginWith, userPoolClientId } = authConfig;\n const { domain, redirectSignOut } = loginWith.oauth;\n const signoutUri = getRedirectUrl(redirectSignOut);\n const oAuthLogoutEndpoint = `https://${domain}/logout?${Object.entries({\n client_id: userPoolClientId,\n logout_uri: encodeURIComponent(signoutUri),\n })\n .map(([k, v]) => `${k}=${v}`)\n .join('&')}`;\n return openAuthSession(oAuthLogoutEndpoint, redirectSignOut, preferPrivateSession);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const openAuthSession = async (url) => {\n if (!window?.location) {\n return;\n }\n // enforce HTTPS\n window.location.href = url.replace('http://', 'https://');\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { completeOAuthSignOut } from './completeOAuthSignOut';\nimport { oAuthSignOutRedirect } from './oAuthSignOutRedirect';\nexport const handleOAuthSignOut = async (cognitoConfig, store) => {\n const { isOAuthSignIn } = await store.loadOAuthSignIn();\n // Clear everything before attempting to visted logout endpoint since the current application\n // state could be wiped away on redirect\n await completeOAuthSignOut(store);\n if (isOAuthSignIn) {\n // On web, this will always end up being a void action\n return oAuthSignOutRedirect(cognitoConfig);\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub, clearCredentials } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL } from '@aws-amplify/core/internals/utils';\nimport { tokenOrchestrator } from '../../tokenProvider';\nexport const completeOAuthSignOut = async (store) => {\n await store.clearOAuthData();\n tokenOrchestrator.clearTokens();\n await clearCredentials();\n Hub.dispatch('auth', { event: 'signedOut' }, 'Auth', AMPLIFY_SYMBOL);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, ConsoleLogger, Hub, clearCredentials, defaultStorage, } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL, AuthAction, assertOAuthConfig, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { tokenOrchestrator } from '../tokenProvider';\nimport { globalSignOut as globalSignOutClient, revokeToken, } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { assertAuthTokens, assertAuthTokensWithRefreshToken, } from '../utils/types';\nimport { handleOAuthSignOut } from '../utils/oauth';\nimport { DefaultOAuthStore } from '../utils/signInWithRedirectStore';\nimport { AuthError } from '../../../errors/AuthError';\nimport { OAUTH_SIGNOUT_EXCEPTION } from '../../../errors/constants';\nconst logger = new ConsoleLogger('Auth');\n/**\n * Signs a user out\n *\n * @param input - The SignOutInput object\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signOut(input) {\n const cognitoConfig = Amplify.getConfig().Auth?.Cognito;\n assertTokenProviderConfig(cognitoConfig);\n if (input?.global) {\n await globalSignOut(cognitoConfig);\n }\n else {\n await clientSignOut(cognitoConfig);\n }\n let hasOAuthConfig;\n try {\n assertOAuthConfig(cognitoConfig);\n hasOAuthConfig = true;\n }\n catch (err) {\n hasOAuthConfig = false;\n }\n if (hasOAuthConfig) {\n const oAuthStore = new DefaultOAuthStore(defaultStorage);\n oAuthStore.setAuthConfig(cognitoConfig);\n const { type } = (await handleOAuthSignOut(cognitoConfig, oAuthStore)) ?? {};\n if (type === 'error') {\n throw new AuthError({\n name: OAUTH_SIGNOUT_EXCEPTION,\n message: 'An error occurred when attempting to log out from OAuth provider.',\n });\n }\n }\n else {\n // complete sign out\n tokenOrchestrator.clearTokens();\n await clearCredentials();\n Hub.dispatch('auth', { event: 'signedOut' }, 'Auth', AMPLIFY_SYMBOL);\n }\n}\nasync function clientSignOut(cognitoConfig) {\n try {\n const authTokens = await tokenOrchestrator.getTokenStore().loadTokens();\n assertAuthTokensWithRefreshToken(authTokens);\n if (isSessionRevocable(authTokens.accessToken)) {\n await revokeToken({\n region: getRegion(cognitoConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignOut),\n }, {\n ClientId: cognitoConfig.userPoolClientId,\n Token: authTokens.refreshToken,\n });\n }\n }\n catch (err) {\n // this shouldn't throw\n logger.debug('Client signOut error caught but will proceed with token removal');\n }\n}\nasync function globalSignOut(cognitoConfig) {\n try {\n const authTokens = await tokenOrchestrator.getTokenStore().loadTokens();\n assertAuthTokens(authTokens);\n await globalSignOutClient({\n region: getRegion(cognitoConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignOut),\n }, {\n AccessToken: authTokens.accessToken.toString(),\n });\n }\n catch (err) {\n // it should not throw\n logger.debug('Global signOut error caught but will proceed with token removal');\n }\n}\nconst isSessionRevocable = (token) => !!token?.payload?.origin_jti;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { AuthAction, assertTokenProviderConfig, } from '@aws-amplify/core/internals/utils';\nimport { signUp as signUpClient } from '../utils/clients/CognitoIdentityProvider';\nimport { assertValidationError } from '../../../errors/utils/assertValidationError';\nimport { AuthValidationErrorCode } from '../../../errors/types/validation';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { toAttributeType } from '../utils/apiHelpers';\nimport { autoSignInUserConfirmed, autoSignInWhenUserIsConfirmedWithLink, handleCodeAutoSignIn, isAutoSignInStarted, isSignUpComplete, setAutoSignInStarted, setUsernameUsedForAutoSignIn, } from '../utils/signUpHelpers';\nimport { getAuthUserAgentValue } from '../../../utils';\nimport { setAutoSignIn } from './autoSignIn';\n/**\n * Creates a user\n *\n * @param input - The SignUpInput object\n * @returns SignUpOutput\n * @throws service: {@link SignUpException } - Cognito service errors thrown during the sign-up process.\n * @throws validation: {@link AuthValidationErrorCode } - Validation errors thrown either username or password\n * are not defined.\n * @throws AuthTokenConfigException - Thrown when the token provider config is invalid.\n */\nexport async function signUp(input) {\n const { username, password, options } = input;\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const signUpVerificationMethod = authConfig?.signUpVerificationMethod ?? 'code';\n const { clientMetadata, validationData, autoSignIn } = input.options ?? {};\n assertTokenProviderConfig(authConfig);\n assertValidationError(!!username, AuthValidationErrorCode.EmptySignUpUsername);\n assertValidationError(!!password, AuthValidationErrorCode.EmptySignUpPassword);\n const signInServiceOptions = typeof autoSignIn !== 'boolean' ? autoSignIn : undefined;\n const signInInput = {\n username,\n options: signInServiceOptions,\n };\n // if the authFlowType is 'CUSTOM_WITHOUT_SRP' then we don't include the password\n if (signInServiceOptions?.authFlowType !== 'CUSTOM_WITHOUT_SRP') {\n signInInput.password = password;\n }\n if (signInServiceOptions || autoSignIn === true) {\n setUsernameUsedForAutoSignIn(username);\n setAutoSignInStarted(true);\n }\n const clientOutput = await signUpClient({\n region: getRegion(authConfig.userPoolId),\n userAgentValue: getAuthUserAgentValue(AuthAction.SignUp),\n }, {\n Username: username,\n Password: password,\n UserAttributes: options?.userAttributes && toAttributeType(options?.userAttributes),\n ClientMetadata: clientMetadata,\n ValidationData: validationData && toAttributeType(validationData),\n ClientId: authConfig.userPoolClientId,\n });\n const { UserSub, CodeDeliveryDetails } = clientOutput;\n if (isSignUpComplete(clientOutput) && isAutoSignInStarted()) {\n setAutoSignIn(autoSignInUserConfirmed(signInInput));\n return {\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n },\n };\n }\n else if (isSignUpComplete(clientOutput) && !isAutoSignInStarted()) {\n return {\n isSignUpComplete: true,\n nextStep: {\n signUpStep: 'DONE',\n },\n };\n }\n else if (!isSignUpComplete(clientOutput) &&\n isAutoSignInStarted() &&\n signUpVerificationMethod === 'code') {\n handleCodeAutoSignIn(signInInput);\n }\n else if (!isSignUpComplete(clientOutput) &&\n isAutoSignInStarted() &&\n signUpVerificationMethod === 'link') {\n setAutoSignIn(autoSignInWhenUserIsConfirmedWithLink(signInInput));\n return {\n isSignUpComplete: false,\n nextStep: {\n signUpStep: 'COMPLETE_AUTO_SIGN_IN',\n codeDeliveryDetails: {\n deliveryMedium: CodeDeliveryDetails?.DeliveryMedium,\n destination: CodeDeliveryDetails?.Destination,\n attributeName: CodeDeliveryDetails?.AttributeName,\n },\n },\n userId: UserSub,\n };\n }\n return {\n isSignUpComplete: false,\n nextStep: {\n signUpStep: 'CONFIRM_SIGN_UP',\n codeDeliveryDetails: {\n deliveryMedium: CodeDeliveryDetails?.DeliveryMedium,\n destination: CodeDeliveryDetails?.Destination,\n attributeName: CodeDeliveryDetails?.AttributeName,\n },\n },\n userId: UserSub,\n };\n}\n","export const AuthTokenStorageKeys = {\n accessToken: 'accessToken',\n idToken: 'idToken',\n oidcProvider: 'oidcProvider',\n clockDrift: 'clockDrift',\n refreshToken: 'refreshToken',\n deviceKey: 'deviceKey',\n randomPasswordKey: 'randomPasswordKey',\n deviceGroupKey: 'deviceGroupKey',\n signInDetails: 'signInDetails',\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createAssertionFunction, } from '@aws-amplify/core/internals/utils';\nexport var TokenProviderErrorCode;\n(function (TokenProviderErrorCode) {\n TokenProviderErrorCode[\"InvalidAuthTokens\"] = \"InvalidAuthTokens\";\n})(TokenProviderErrorCode || (TokenProviderErrorCode = {}));\nconst tokenValidationErrorMap = {\n [TokenProviderErrorCode.InvalidAuthTokens]: {\n message: 'Invalid tokens.',\n recoverySuggestion: 'Make sure the tokens are valid.',\n },\n};\nexport const assert = createAssertionFunction(tokenValidationErrorMap);\n","import { assertTokenProviderConfig, decodeJWT, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nimport { AuthTokenStorageKeys, } from './types';\nimport { TokenProviderErrorCode, assert } from './errorHelpers';\nexport class DefaultTokenStore {\n constructor() {\n this.name = 'CognitoIdentityServiceProvider'; // To be backwards compatible with V5, no migration needed\n }\n getKeyValueStorage() {\n if (!this.keyValueStorage) {\n throw new AuthError({\n name: 'KeyValueStorageNotFoundException',\n message: 'KeyValueStorage was not found in TokenStore',\n });\n }\n return this.keyValueStorage;\n }\n setKeyValueStorage(keyValueStorage) {\n this.keyValueStorage = keyValueStorage;\n }\n setAuthConfig(authConfig) {\n this.authConfig = authConfig;\n }\n async loadTokens() {\n // TODO(v6): migration logic should be here\n // Reading V5 tokens old format\n try {\n const authKeys = await this.getAuthKeys();\n const accessTokenString = await this.getKeyValueStorage().getItem(authKeys.accessToken);\n if (!accessTokenString) {\n throw new AuthError({\n name: 'NoSessionFoundException',\n message: 'Auth session was not found. Make sure to call signIn.',\n });\n }\n const accessToken = decodeJWT(accessTokenString);\n const itString = await this.getKeyValueStorage().getItem(authKeys.idToken);\n const idToken = itString ? decodeJWT(itString) : undefined;\n const refreshToken = (await this.getKeyValueStorage().getItem(authKeys.refreshToken)) ??\n undefined;\n const clockDriftString = (await this.getKeyValueStorage().getItem(authKeys.clockDrift)) ?? '0';\n const clockDrift = Number.parseInt(clockDriftString);\n const signInDetails = await this.getKeyValueStorage().getItem(authKeys.signInDetails);\n const tokens = {\n accessToken,\n idToken,\n refreshToken,\n deviceMetadata: (await this.getDeviceMetadata()) ?? undefined,\n clockDrift,\n username: await this.getLastAuthUser(),\n };\n if (signInDetails) {\n tokens.signInDetails = JSON.parse(signInDetails);\n }\n return tokens;\n }\n catch (err) {\n return null;\n }\n }\n async storeTokens(tokens) {\n assert(tokens !== undefined, TokenProviderErrorCode.InvalidAuthTokens);\n await this.clearTokens();\n const lastAuthUser = tokens.username;\n await this.getKeyValueStorage().setItem(this.getLastAuthUserKey(), lastAuthUser);\n const authKeys = await this.getAuthKeys();\n await this.getKeyValueStorage().setItem(authKeys.accessToken, tokens.accessToken.toString());\n if (tokens.idToken) {\n await this.getKeyValueStorage().setItem(authKeys.idToken, tokens.idToken.toString());\n }\n if (tokens.refreshToken) {\n await this.getKeyValueStorage().setItem(authKeys.refreshToken, tokens.refreshToken);\n }\n if (tokens.deviceMetadata) {\n if (tokens.deviceMetadata.deviceKey) {\n await this.getKeyValueStorage().setItem(authKeys.deviceKey, tokens.deviceMetadata.deviceKey);\n }\n if (tokens.deviceMetadata.deviceGroupKey) {\n await this.getKeyValueStorage().setItem(authKeys.deviceGroupKey, tokens.deviceMetadata.deviceGroupKey);\n }\n await this.getKeyValueStorage().setItem(authKeys.randomPasswordKey, tokens.deviceMetadata.randomPassword);\n }\n if (tokens.signInDetails) {\n await this.getKeyValueStorage().setItem(authKeys.signInDetails, JSON.stringify(tokens.signInDetails));\n }\n await this.getKeyValueStorage().setItem(authKeys.clockDrift, `${tokens.clockDrift}`);\n }\n async clearTokens() {\n const authKeys = await this.getAuthKeys();\n // Not calling clear because it can remove data that is not managed by AuthTokenStore\n await Promise.all([\n this.getKeyValueStorage().removeItem(authKeys.accessToken),\n this.getKeyValueStorage().removeItem(authKeys.idToken),\n this.getKeyValueStorage().removeItem(authKeys.clockDrift),\n this.getKeyValueStorage().removeItem(authKeys.refreshToken),\n this.getKeyValueStorage().removeItem(authKeys.signInDetails),\n this.getKeyValueStorage().removeItem(this.getLastAuthUserKey()),\n ]);\n }\n async getDeviceMetadata(username) {\n const authKeys = await this.getAuthKeys(username);\n const deviceKey = await this.getKeyValueStorage().getItem(authKeys.deviceKey);\n const deviceGroupKey = await this.getKeyValueStorage().getItem(authKeys.deviceGroupKey);\n const randomPassword = await this.getKeyValueStorage().getItem(authKeys.randomPasswordKey);\n return randomPassword\n ? {\n deviceKey: deviceKey ?? undefined,\n deviceGroupKey: deviceGroupKey ?? undefined,\n randomPassword,\n }\n : null;\n }\n async clearDeviceMetadata(username) {\n const authKeys = await this.getAuthKeys(username);\n await Promise.all([\n this.getKeyValueStorage().removeItem(authKeys.deviceKey),\n this.getKeyValueStorage().removeItem(authKeys.deviceGroupKey),\n this.getKeyValueStorage().removeItem(authKeys.randomPasswordKey),\n ]);\n }\n async getAuthKeys(username) {\n assertTokenProviderConfig(this.authConfig?.Cognito);\n const lastAuthUser = username ?? (await this.getLastAuthUser());\n return createKeysForAuthStorage(this.name, `${this.authConfig.Cognito.userPoolClientId}.${lastAuthUser}`);\n }\n getLastAuthUserKey() {\n assertTokenProviderConfig(this.authConfig?.Cognito);\n const identifier = this.authConfig.Cognito.userPoolClientId;\n return `${this.name}.${identifier}.LastAuthUser`;\n }\n async getLastAuthUser() {\n const lastAuthUser = (await this.getKeyValueStorage().getItem(this.getLastAuthUserKey())) ??\n 'username';\n return lastAuthUser;\n }\n}\nexport const createKeysForAuthStorage = (provider, identifier) => {\n return getAuthStorageKeys(AuthTokenStorageKeys)(`${provider}`, identifier);\n};\nexport function getAuthStorageKeys(authKeys) {\n const keys = Object.values({ ...authKeys });\n return (prefix, identifier) => keys.reduce((acc, authKey) => ({\n ...acc,\n [authKey]: `${prefix}.${identifier}.${authKey}`,\n }), {});\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertTokenProviderConfig, deDupeAsyncFunction, decodeJWT, } from '@aws-amplify/core/internals/utils';\nimport { initiateAuth } from '../utils/clients/CognitoIdentityProvider';\nimport { getRegion } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { assertAuthTokensWithRefreshToken } from '../utils/types';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getUserContextData } from './userContextData';\nconst refreshAuthTokensFunction = async ({ tokens, authConfig, username, }) => {\n assertTokenProviderConfig(authConfig?.Cognito);\n const region = getRegion(authConfig.Cognito.userPoolId);\n assertAuthTokensWithRefreshToken(tokens);\n const refreshTokenString = tokens.refreshToken;\n const AuthParameters = {\n REFRESH_TOKEN: refreshTokenString,\n };\n if (tokens.deviceMetadata?.deviceKey) {\n AuthParameters.DEVICE_KEY = tokens.deviceMetadata.deviceKey;\n }\n const UserContextData = getUserContextData({\n username,\n userPoolId: authConfig.Cognito.userPoolId,\n userPoolClientId: authConfig.Cognito.userPoolClientId,\n });\n const { AuthenticationResult } = await initiateAuth({ region }, {\n ClientId: authConfig?.Cognito?.userPoolClientId,\n AuthFlow: 'REFRESH_TOKEN_AUTH',\n AuthParameters,\n UserContextData,\n });\n const accessToken = decodeJWT(AuthenticationResult?.AccessToken ?? '');\n const idToken = AuthenticationResult?.IdToken\n ? decodeJWT(AuthenticationResult.IdToken)\n : undefined;\n const { iat } = accessToken.payload;\n // This should never happen. If it does, it's a bug from the service.\n if (!iat) {\n throw new AuthError({\n name: 'iatNotFoundException',\n message: 'iat not found in access token',\n });\n }\n const clockDrift = iat * 1000 - new Date().getTime();\n return {\n accessToken,\n idToken,\n clockDrift,\n refreshToken: refreshTokenString,\n username,\n };\n};\nexport const refreshAuthTokens = deDupeAsyncFunction(refreshAuthTokensFunction);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * returns in-flight promise if there is one\n *\n * @param asyncFunction - asyncFunction to be deduped.\n * @returns - the return type of the callback\n */\nexport const deDupeAsyncFunction = (asyncFunction) => {\n let inflightPromise;\n return async (...args) => {\n if (inflightPromise)\n return inflightPromise;\n inflightPromise = new Promise((resolve, reject) => {\n asyncFunction(...args)\n .then(result => {\n resolve(result);\n })\n .catch(error => {\n reject(error);\n })\n .finally(() => {\n inflightPromise = undefined;\n });\n });\n return inflightPromise;\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { defaultStorage } from '@aws-amplify/core';\nimport { DefaultOAuthStore } from '../signInWithRedirectStore';\nexport const oAuthStore = new DefaultOAuthStore(defaultStorage);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst inflightPromises = [];\nexport const addInflightPromise = (resolver) => {\n inflightPromises.push(resolver);\n};\nexport const resolveAndClearInflightPromises = () => {\n while (inflightPromises.length) {\n inflightPromises.pop()?.();\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Hub, } from '@aws-amplify/core';\nimport { AMPLIFY_SYMBOL, assertTokenProviderConfig, isTokenExpired, } from '@aws-amplify/core/internals/utils';\nimport { assertServiceError } from '../../../errors/utils/assertServiceError';\nimport { AuthError } from '../../../errors/AuthError';\nimport { oAuthStore } from '../utils/oauth/oAuthStore';\nimport { addInflightPromise } from '../utils/oauth/inflightPromise';\nexport class TokenOrchestrator {\n constructor() {\n this.waitForInflightOAuth = async () => {\n if (!(await oAuthStore.loadOAuthInFlight())) {\n return;\n }\n if (this.inflightPromise) {\n return this.inflightPromise;\n }\n // when there is valid oauth config and there is an inflight oauth flow, try\n // to block async calls that require fetching tokens before the oauth flow completes\n // e.g. getCurrentUser, fetchAuthSession etc.\n this.inflightPromise = new Promise((resolve, _reject) => {\n addInflightPromise(resolve);\n });\n return this.inflightPromise;\n };\n }\n setAuthConfig(authConfig) {\n oAuthStore.setAuthConfig(authConfig.Cognito);\n this.authConfig = authConfig;\n }\n setTokenRefresher(tokenRefresher) {\n this.tokenRefresher = tokenRefresher;\n }\n setAuthTokenStore(tokenStore) {\n this.tokenStore = tokenStore;\n }\n getTokenStore() {\n if (!this.tokenStore) {\n throw new AuthError({\n name: 'EmptyTokenStoreException',\n message: 'TokenStore not set',\n });\n }\n return this.tokenStore;\n }\n getTokenRefresher() {\n if (!this.tokenRefresher) {\n throw new AuthError({\n name: 'EmptyTokenRefresherException',\n message: 'TokenRefresher not set',\n });\n }\n return this.tokenRefresher;\n }\n async getTokens(options) {\n let tokens;\n try {\n assertTokenProviderConfig(this.authConfig?.Cognito);\n }\n catch (_err) {\n // Token provider not configured\n return null;\n }\n await this.waitForInflightOAuth();\n this.inflightPromise = undefined;\n tokens = await this.getTokenStore().loadTokens();\n const username = await this.getTokenStore().getLastAuthUser();\n if (tokens === null) {\n return null;\n }\n const idTokenExpired = !!tokens?.idToken &&\n isTokenExpired({\n expiresAt: (tokens.idToken?.payload?.exp ?? 0) * 1000,\n clockDrift: tokens.clockDrift ?? 0,\n });\n const accessTokenExpired = isTokenExpired({\n expiresAt: (tokens.accessToken?.payload?.exp ?? 0) * 1000,\n clockDrift: tokens.clockDrift ?? 0,\n });\n if (options?.forceRefresh || idTokenExpired || accessTokenExpired) {\n tokens = await this.refreshTokens({\n tokens,\n username,\n });\n if (tokens === null) {\n return null;\n }\n }\n return {\n accessToken: tokens?.accessToken,\n idToken: tokens?.idToken,\n signInDetails: tokens?.signInDetails,\n };\n }\n async refreshTokens({ tokens, username, }) {\n try {\n const { signInDetails } = tokens;\n const newTokens = await this.getTokenRefresher()({\n tokens,\n authConfig: this.authConfig,\n username,\n });\n newTokens.signInDetails = signInDetails;\n await this.setTokens({ tokens: newTokens });\n Hub.dispatch('auth', { event: 'tokenRefresh' }, 'Auth', AMPLIFY_SYMBOL);\n return newTokens;\n }\n catch (err) {\n return this.handleErrors(err);\n }\n }\n handleErrors(err) {\n assertServiceError(err);\n if (err.message !== 'Network error') {\n // TODO(v6): Check errors on client\n this.clearTokens();\n }\n Hub.dispatch('auth', {\n event: 'tokenRefresh_failure',\n data: { error: err },\n }, 'Auth', AMPLIFY_SYMBOL);\n if (err.name.startsWith('NotAuthorizedException')) {\n return null;\n }\n throw err;\n }\n async setTokens({ tokens }) {\n return this.getTokenStore().storeTokens(tokens);\n }\n async clearTokens() {\n return this.getTokenStore().clearTokens();\n }\n getDeviceMetadata(username) {\n return this.getTokenStore().getDeviceMetadata(username);\n }\n clearDeviceMetadata(username) {\n return this.getTokenStore().clearDeviceMetadata(username);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { CognitoUserPoolsTokenProvider } from './CognitoUserPoolsTokenProvider';\n/**\n * The default provider for the JWT access token and ID token issued from the configured Cognito user pool. It manages\n * the refresh and storage of the tokens. It stores the tokens in `window.localStorage` if available, and falls back to\n * in-memory storage if not.\n */\nexport const cognitoUserPoolsTokenProvider = new CognitoUserPoolsTokenProvider();\nexport const { tokenOrchestrator } = cognitoUserPoolsTokenProvider;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { defaultStorage, } from '@aws-amplify/core';\nimport { refreshAuthTokens } from '../utils/refreshAuthTokens';\nimport { DefaultTokenStore } from './TokenStore';\nimport { TokenOrchestrator } from './TokenOrchestrator';\nexport class CognitoUserPoolsTokenProvider {\n constructor() {\n this.authTokenStore = new DefaultTokenStore();\n this.authTokenStore.setKeyValueStorage(defaultStorage);\n this.tokenOrchestrator = new TokenOrchestrator();\n this.tokenOrchestrator.setAuthTokenStore(this.authTokenStore);\n this.tokenOrchestrator.setTokenRefresher(refreshAuthTokens);\n }\n getTokens({ forceRefresh } = { forceRefresh: false }) {\n return this.tokenOrchestrator.getTokens({ forceRefresh });\n }\n setKeyValueStorage(keyValueStorage) {\n this.authTokenStore.setKeyValueStorage(keyValueStorage);\n }\n setAuthConfig(authConfig) {\n this.authTokenStore.setAuthConfig(authConfig);\n this.tokenOrchestrator.setAuthConfig(authConfig);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Transforms a user attributes object into an array of AttributeType objects.\n * @param attributes user attributes to be mapped to AttributeType objects.\n * @returns an array of AttributeType objects.\n */\nexport function toAttributeType(attributes) {\n return Object.entries(attributes).map(([key, value]) => ({\n Name: key,\n Value: value,\n }));\n}\n/**\n * Transforms an array of AttributeType objects into a user attributes object.\n *\n * @param attributes - an array of AttributeType objects.\n * @returns AuthUserAttributes object.\n */\nexport function toAuthUserAttribute(attributes) {\n const userAttributes = {};\n attributes?.forEach(attribute => {\n if (attribute.Name)\n userAttributes[attribute.Name] = attribute.Value;\n });\n return userAttributes;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '@aws-amplify/core';\nimport { getDnsSuffix, getRetryDecider, jitteredBackoff, parseJsonError, unauthenticatedHandler, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { AmplifyUrl, getAmplifyUserAgent, } from '@aws-amplify/core/internals/utils';\nimport { composeTransferHandler } from '@aws-amplify/core/internals/aws-client-utils/composers';\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nconst SERVICE_NAME = 'cognito-idp';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nconst endpointResolver = ({ region }) => {\n const authConfig = Amplify.getConfig().Auth?.Cognito;\n const customURL = authConfig?.userPoolEndpoint;\n const defaultURL = new AmplifyUrl(`https://${SERVICE_NAME}.${region}.${getDnsSuffix(region)}`);\n return {\n url: customURL ? new AmplifyUrl(customURL) : defaultURL,\n };\n};\n/**\n * A Cognito Identity-specific middleware that disables caching for all requests.\n */\nconst disableCacheMiddlewareFactory = () => (next, _) => async function disableCacheMiddleware(request) {\n request.headers['cache-control'] = 'no-store';\n return next(request);\n};\n/**\n * A Cognito Identity-specific transfer handler that does NOT sign requests, and\n * disables caching.\n *\n * @internal\n */\nexport const cognitoUserPoolTransferHandler = composeTransferHandler(unauthenticatedHandler, [disableCacheMiddlewareFactory]);\n/**\n * @internal\n */\nexport const defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver,\n retryDecider: getRetryDecider(parseJsonError),\n computeDelay: jitteredBackoff,\n userAgentValue: getAmplifyUserAgent(),\n cache: 'no-store',\n};\n/**\n * @internal\n */\nexport const getSharedHeaders = (operation) => ({\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': `AWSCognitoIdentityProviderService.${operation}`,\n});\n/**\n * @internal\n */\nexport const buildHttpRpcRequest = ({ url }, headers, body) => ({\n headers,\n url,\n body,\n method: 'POST',\n});\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { composeServiceApi } from '@aws-amplify/core/internals/aws-client-utils/composers';\nimport { parseJsonBody, parseJsonError, } from '@aws-amplify/core/internals/aws-client-utils';\nimport { assertServiceError } from '../../../../../errors/utils/assertServiceError';\nimport { AuthError } from '../../../../../errors/AuthError';\nimport { buildHttpRpcRequest, cognitoUserPoolTransferHandler, defaultConfig, getSharedHeaders, } from './base';\nconst buildUserPoolSerializer = (operation) => (input, endpoint) => {\n const headers = getSharedHeaders(operation);\n const body = JSON.stringify(input);\n return buildHttpRpcRequest(endpoint, headers, body);\n};\nconst buildUserPoolDeserializer = () => {\n return async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseJsonError(response);\n assertServiceError(error);\n throw new AuthError({ name: error.name, message: error.message });\n }\n else {\n const body = await parseJsonBody(response);\n return body;\n }\n };\n};\nconst handleEmptyResponseDeserializer = () => {\n return async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseJsonError(response);\n assertServiceError(error);\n throw new AuthError({ name: error.name, message: error.message });\n }\n else {\n return undefined;\n }\n };\n};\nexport const initiateAuth = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('InitiateAuth'), buildUserPoolDeserializer(), defaultConfig);\nexport const revokeToken = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('RevokeToken'), buildUserPoolDeserializer(), defaultConfig);\nexport const signUp = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('SignUp'), buildUserPoolDeserializer(), defaultConfig);\nexport const confirmSignUp = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ConfirmSignUp'), buildUserPoolDeserializer(), defaultConfig);\nexport const forgotPassword = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ForgotPassword'), buildUserPoolDeserializer(), defaultConfig);\nexport const confirmForgotPassword = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ConfirmForgotPassword'), buildUserPoolDeserializer(), defaultConfig);\nexport const respondToAuthChallenge = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('RespondToAuthChallenge'), buildUserPoolDeserializer(), defaultConfig);\nexport const resendConfirmationCode = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ResendConfirmationCode'), buildUserPoolDeserializer(), defaultConfig);\nexport const verifySoftwareToken = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('VerifySoftwareToken'), buildUserPoolDeserializer(), defaultConfig);\nexport const associateSoftwareToken = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('AssociateSoftwareToken'), buildUserPoolDeserializer(), defaultConfig);\nexport const setUserMFAPreference = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('SetUserMFAPreference'), buildUserPoolDeserializer(), defaultConfig);\nexport const getUser = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('GetUser'), buildUserPoolDeserializer(), defaultConfig);\nexport const changePassword = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ChangePassword'), buildUserPoolDeserializer(), defaultConfig);\nexport const confirmDevice = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ConfirmDevice'), buildUserPoolDeserializer(), defaultConfig);\nexport const forgetDevice = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ForgetDevice'), handleEmptyResponseDeserializer(), defaultConfig);\nexport const deleteUser = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('DeleteUser'), handleEmptyResponseDeserializer(), defaultConfig);\nexport const getUserAttributeVerificationCode = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('GetUserAttributeVerificationCode'), buildUserPoolDeserializer(), defaultConfig);\nexport const globalSignOut = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('GlobalSignOut'), buildUserPoolDeserializer(), defaultConfig);\nexport const updateUserAttributes = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('UpdateUserAttributes'), buildUserPoolDeserializer(), defaultConfig);\nexport const verifyUserAttribute = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('VerifyUserAttribute'), buildUserPoolDeserializer(), defaultConfig);\nexport const updateDeviceStatus = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('UpdateDeviceStatus'), buildUserPoolDeserializer(), defaultConfig);\nexport const listDevices = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('ListDevices'), buildUserPoolDeserializer(), defaultConfig);\nexport const deleteUserAttributes = composeServiceApi(cognitoUserPoolTransferHandler, buildUserPoolSerializer('DeleteUserAttributes'), buildUserPoolDeserializer(), defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from '../../../../../errors/AuthError';\nexport function getRegion(userPoolId) {\n const region = userPoolId?.split('_')[0];\n if (!userPoolId ||\n userPoolId.indexOf('_') < 0 ||\n !region ||\n typeof region !== 'string')\n throw new AuthError({\n name: 'InvalidUserPoolId',\n message: 'Invalid user pool id provided.',\n });\n return region;\n}\nexport function getRegionFromIdentityPoolId(identityPoolId) {\n if (!identityPoolId || !identityPoolId.includes(':')) {\n throw new AuthError({\n name: 'InvalidIdentityPoolIdException',\n message: 'Invalid identity pool id provided.',\n recoverySuggestion: 'Make sure a valid identityPoolId is given in the config.',\n });\n }\n return identityPoolId.split(':')[0];\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { assertTokenProviderConfig } from '@aws-amplify/core/internals/utils';\nimport { getAuthStorageKeys } from '../tokenProvider/TokenStore';\nimport { OAuthStorageKeys } from './types';\nconst V5_HOSTED_UI_KEY = 'amplify-signin-with-hostedUI';\nconst name = 'CognitoIdentityServiceProvider';\nexport class DefaultOAuthStore {\n constructor(keyValueStorage) {\n this.keyValueStorage = keyValueStorage;\n }\n async clearOAuthInflightData() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await Promise.all([\n this.keyValueStorage.removeItem(authKeys.inflightOAuth),\n this.keyValueStorage.removeItem(authKeys.oauthPKCE),\n this.keyValueStorage.removeItem(authKeys.oauthState),\n ]);\n }\n async clearOAuthData() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await this.clearOAuthInflightData();\n await this.keyValueStorage.removeItem(V5_HOSTED_UI_KEY); // remove in case a customer migrated an App from v5 to v6\n return this.keyValueStorage.removeItem(authKeys.oauthSignIn);\n }\n loadOAuthState() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.getItem(authKeys.oauthState);\n }\n storeOAuthState(state) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.setItem(authKeys.oauthState, state);\n }\n loadPKCE() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.getItem(authKeys.oauthPKCE);\n }\n storePKCE(pkce) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return this.keyValueStorage.setItem(authKeys.oauthPKCE, pkce);\n }\n setAuthConfig(authConfigParam) {\n this.cognitoConfig = authConfigParam;\n }\n async loadOAuthInFlight() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n return ((await this.keyValueStorage.getItem(authKeys.inflightOAuth)) === 'true');\n }\n async storeOAuthInFlight(inflight) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await this.keyValueStorage.setItem(authKeys.inflightOAuth, `${inflight}`);\n }\n async loadOAuthSignIn() {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n const isLegacyHostedUISignIn = await this.keyValueStorage.getItem(V5_HOSTED_UI_KEY);\n const [isOAuthSignIn, preferPrivateSession] = (await this.keyValueStorage.getItem(authKeys.oauthSignIn))?.split(',') ??\n [];\n return {\n isOAuthSignIn: isOAuthSignIn === 'true' || isLegacyHostedUISignIn === 'true',\n preferPrivateSession: preferPrivateSession === 'true',\n };\n }\n async storeOAuthSignIn(oauthSignIn, preferPrivateSession = false) {\n assertTokenProviderConfig(this.cognitoConfig);\n const authKeys = createKeysForAuthStorage(name, this.cognitoConfig.userPoolClientId);\n await this.keyValueStorage.setItem(authKeys.oauthSignIn, `${oauthSignIn},${preferPrivateSession}`);\n }\n}\nconst createKeysForAuthStorage = (provider, identifier) => {\n return getAuthStorageKeys(OAuthStorageKeys)(provider, identifier);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { HubInternal } from '@aws-amplify/core/internals/utils';\nimport { signIn } from '../apis/signIn';\nimport { AuthError } from '../../../errors/AuthError';\nimport { resetAutoSignIn, setAutoSignIn } from '../apis/autoSignIn';\nimport { AUTO_SIGN_IN_EXCEPTION } from '../../../errors/constants';\nconst MAX_AUTOSIGNIN_POLLING_MS = 3 * 60 * 1000;\nexport function handleCodeAutoSignIn(signInInput) {\n const stopHubListener = HubInternal.listen('auth-internal', async ({ payload }) => {\n switch (payload.event) {\n case 'confirmSignUp': {\n const response = payload.data;\n if (response?.isSignUpComplete) {\n HubInternal.dispatch('auth-internal', {\n event: 'autoSignIn',\n });\n setAutoSignIn(autoSignInWithCode(signInInput));\n stopHubListener();\n }\n }\n }\n });\n // This will stop the listener if confirmSignUp is not resolved.\n const timeOutId = setTimeout(() => {\n stopHubListener();\n setAutoSignInStarted(false);\n clearTimeout(timeOutId);\n resetAutoSignIn();\n }, MAX_AUTOSIGNIN_POLLING_MS);\n}\nfunction debounce(fun, delay) {\n let timer;\n return (args) => {\n if (!timer) {\n fun(...args);\n }\n clearTimeout(timer);\n timer = setTimeout(() => {\n timer = undefined;\n }, delay);\n };\n}\nfunction handleAutoSignInWithLink(signInInput, resolve, reject) {\n const start = Date.now();\n const autoSignInPollingIntervalId = setInterval(async () => {\n const elapsedTime = Date.now() - start;\n const maxTime = MAX_AUTOSIGNIN_POLLING_MS;\n if (elapsedTime > maxTime) {\n clearInterval(autoSignInPollingIntervalId);\n setAutoSignInStarted(false);\n reject(new AuthError({\n name: AUTO_SIGN_IN_EXCEPTION,\n message: 'The account was not confirmed on time.',\n recoverySuggestion: 'Try to verify your account by clicking the link sent your email or phone and then login manually.',\n }));\n resetAutoSignIn();\n }\n else {\n try {\n const signInOutput = await signIn(signInInput);\n if (signInOutput.nextStep.signInStep !== 'CONFIRM_SIGN_UP') {\n resolve(signInOutput);\n clearInterval(autoSignInPollingIntervalId);\n setAutoSignInStarted(false);\n resetAutoSignIn();\n }\n }\n catch (error) {\n clearInterval(autoSignInPollingIntervalId);\n setAutoSignInStarted(false);\n reject(error);\n resetAutoSignIn();\n }\n }\n }, 5000);\n}\nconst debouncedAutoSignInWithLink = debounce(handleAutoSignInWithLink, 300);\nconst debouncedAutoSignWithCodeOrUserConfirmed = debounce(handleAutoSignInWithCodeOrUserConfirmed, 300);\nlet autoSignInStarted = false;\nlet usernameUsedForAutoSignIn;\nexport function setUsernameUsedForAutoSignIn(username) {\n usernameUsedForAutoSignIn = username;\n}\nexport function isAutoSignInUserUsingConfirmSignUp(username) {\n return usernameUsedForAutoSignIn === username;\n}\nexport function isAutoSignInStarted() {\n return autoSignInStarted;\n}\nexport function setAutoSignInStarted(value) {\n if (value === false) {\n setUsernameUsedForAutoSignIn(undefined);\n }\n autoSignInStarted = value;\n}\nexport function isSignUpComplete(output) {\n return !!output.UserConfirmed;\n}\nexport function autoSignInWhenUserIsConfirmedWithLink(signInInput) {\n return async () => {\n return new Promise((resolve, reject) => {\n debouncedAutoSignInWithLink([signInInput, resolve, reject]);\n });\n };\n}\nasync function handleAutoSignInWithCodeOrUserConfirmed(signInInput, resolve, reject) {\n try {\n const output = await signIn(signInInput);\n resolve(output);\n resetAutoSignIn();\n }\n catch (error) {\n reject(error);\n resetAutoSignIn();\n }\n}\nfunction autoSignInWithCode(signInInput) {\n return async () => {\n return new Promise((resolve, reject) => {\n debouncedAutoSignWithCodeOrUserConfirmed([signInInput, resolve, reject]);\n });\n };\n}\nexport const autoSignInUserConfirmed = autoSignInWithCode;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AuthError } from '../../../errors/AuthError';\nimport { DEVICE_METADATA_NOT_FOUND_EXCEPTION, TOKEN_REFRESH_EXCEPTION, USER_UNAUTHENTICATED_EXCEPTION, } from '../../../errors/constants';\nexport function isTypeUserPoolConfig(authConfig) {\n if (authConfig &&\n authConfig.Cognito.userPoolId &&\n authConfig.Cognito.userPoolClientId) {\n return true;\n }\n return false;\n}\nexport function assertAuthTokens(tokens) {\n if (!tokens || !tokens.accessToken) {\n throw new AuthError({\n name: USER_UNAUTHENTICATED_EXCEPTION,\n message: 'User needs to be authenticated to call this API.',\n recoverySuggestion: 'Sign in before calling this API again.',\n });\n }\n}\nexport function assertIdTokenInAuthTokens(tokens) {\n if (!tokens || !tokens.idToken) {\n throw new AuthError({\n name: USER_UNAUTHENTICATED_EXCEPTION,\n message: 'User needs to be authenticated to call this API.',\n recoverySuggestion: 'Sign in before calling this API again.',\n });\n }\n}\nexport const oAuthTokenRefreshException = new AuthError({\n name: TOKEN_REFRESH_EXCEPTION,\n message: `Token refresh is not supported when authenticated with the 'implicit grant' (token) oauth flow. \n\tPlease change your oauth configuration to use 'code grant' flow.`,\n recoverySuggestion: `Please logout and change your Amplify configuration to use \"code grant\" flow. \n\tE.g { responseType: 'code' }`,\n});\nexport const tokenRefreshException = new AuthError({\n name: USER_UNAUTHENTICATED_EXCEPTION,\n message: 'User needs to be authenticated to call this API.',\n recoverySuggestion: 'Sign in before calling this API again.',\n});\nexport function assertAuthTokensWithRefreshToken(tokens) {\n if (isAuthenticatedWithImplicitOauthFlow(tokens)) {\n throw oAuthTokenRefreshException;\n }\n if (!isAuthenticatedWithRefreshToken(tokens)) {\n throw tokenRefreshException;\n }\n}\nexport function assertDeviceMetadata(deviceMetadata) {\n if (!deviceMetadata ||\n !deviceMetadata.deviceKey ||\n !deviceMetadata.deviceGroupKey ||\n !deviceMetadata.randomPassword) {\n throw new AuthError({\n name: DEVICE_METADATA_NOT_FOUND_EXCEPTION,\n message: 'Either deviceKey, deviceGroupKey or secretPassword were not found during the sign-in process.',\n recoverySuggestion: 'Make sure to not clear storage after calling the signIn API.',\n });\n }\n}\nexport const OAuthStorageKeys = {\n inflightOAuth: 'inflightOAuth',\n oauthSignIn: 'oauthSignIn',\n oauthPKCE: 'oauthPKCE',\n oauthState: 'oauthState',\n};\nfunction isAuthenticated(tokens) {\n return tokens?.accessToken || tokens?.idToken;\n}\nfunction isAuthenticatedWithRefreshToken(tokens) {\n return isAuthenticated(tokens) && tokens?.refreshToken;\n}\nfunction isAuthenticatedWithImplicitOauthFlow(tokens) {\n return isAuthenticated(tokens) && !tokens?.refreshToken;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport function getUserContextData({ username, userPoolId, userPoolClientId, }) {\n if (typeof window === 'undefined') {\n return undefined;\n }\n const amazonCognitoAdvancedSecurityData = window\n .AmazonCognitoAdvancedSecurityData;\n if (typeof amazonCognitoAdvancedSecurityData === 'undefined') {\n return undefined;\n }\n const advancedSecurityData = amazonCognitoAdvancedSecurityData.getData(username, userPoolId, userPoolClientId);\n if (advancedSecurityData) {\n const userContextData = {\n EncodedData: advancedSecurityData,\n };\n return userContextData;\n }\n return {};\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Category, getAmplifyUserAgent, } from '@aws-amplify/core/internals/utils';\nexport const getAuthUserAgentValue = (action, customUserAgentDetails) => getAmplifyUserAgent({\n category: Category.Auth,\n action,\n ...customUserAgentDetails,\n});\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from '../Logger';\nimport { NO_HUBCALLBACK_PROVIDED_EXCEPTION } from '../constants';\nimport { AmplifyError } from '../errors';\nexport const AMPLIFY_SYMBOL = (typeof Symbol !== 'undefined'\n ? Symbol('amplify_default')\n : '@@amplify_default');\nconst logger = new ConsoleLogger('Hub');\nexport class HubClass {\n constructor(name) {\n this.listeners = new Map();\n this.protectedChannels = [\n 'core',\n 'auth',\n 'api',\n 'analytics',\n 'interactions',\n 'pubsub',\n 'storage',\n 'ui',\n 'xr',\n ];\n this.name = name;\n }\n /**\n * Used internally to remove a Hub listener.\n *\n * @remarks\n * This private method is for internal use only. Instead of calling Hub.remove, call the result of Hub.listen.\n */\n _remove(channel, listener) {\n const holder = this.listeners.get(channel);\n if (!holder) {\n logger.warn(`No listeners for ${channel}`);\n return;\n }\n this.listeners.set(channel, [\n ...holder.filter(({ callback }) => callback !== listener),\n ]);\n }\n dispatch(channel, payload, source, ampSymbol) {\n if (typeof channel === 'string' &&\n this.protectedChannels.indexOf(channel) > -1) {\n const hasAccess = ampSymbol === AMPLIFY_SYMBOL;\n if (!hasAccess) {\n logger.warn(`WARNING: ${channel} is protected and dispatching on it can have unintended consequences`);\n }\n }\n const capsule = {\n channel,\n payload: { ...payload },\n source,\n patternInfo: [],\n };\n try {\n this._toListeners(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n }\n listen(channel, callback, listenerName = 'noname') {\n let cb;\n if (typeof callback !== 'function') {\n throw new AmplifyError({\n name: NO_HUBCALLBACK_PROVIDED_EXCEPTION,\n message: 'No callback supplied to Hub',\n });\n }\n else {\n // Needs to be casted as a more generic type\n cb = callback;\n }\n let holder = this.listeners.get(channel);\n if (!holder) {\n holder = [];\n this.listeners.set(channel, holder);\n }\n holder.push({\n name: listenerName,\n callback: cb,\n });\n return () => {\n this._remove(channel, cb);\n };\n }\n _toListeners(capsule) {\n const { channel, payload } = capsule;\n const holder = this.listeners.get(channel);\n if (holder) {\n holder.forEach(listener => {\n logger.debug(`Dispatching to ${channel} with `, payload);\n try {\n listener.callback(capsule);\n }\n catch (e) {\n logger.error(e);\n }\n });\n }\n }\n}\n/* We export a __default__ instance of HubClass to use it as a\npseudo Singleton for the main messaging bus, however you can still create\nyour own instance of HubClass() for a separate \"private bus\" of events. */\nexport const Hub = new HubClass('__default__');\n/**\n * @internal\n *\n * Internal hub used for core Amplify functionality. Not intended for use outside of Amplify.\n *\n */\nexport const HubInternal = new HubClass('internal-hub');\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var LogType;\n(function (LogType) {\n LogType[\"DEBUG\"] = \"DEBUG\";\n LogType[\"ERROR\"] = \"ERROR\";\n LogType[\"INFO\"] = \"INFO\";\n LogType[\"WARN\"] = \"WARN\";\n LogType[\"VERBOSE\"] = \"VERBOSE\";\n LogType[\"NONE\"] = \"NONE\";\n})(LogType || (LogType = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AWS_CLOUDWATCH_CATEGORY } from '../constants';\nimport { LogType } from './types';\nconst LOG_LEVELS = {\n VERBOSE: 1,\n DEBUG: 2,\n INFO: 3,\n WARN: 4,\n ERROR: 5,\n NONE: 6,\n};\n/**\n * Write logs\n * @class Logger\n */\nexport class ConsoleLogger {\n /**\n * @constructor\n * @param {string} name - Name of the logger\n */\n constructor(name, level = LogType.WARN) {\n this.name = name;\n this.level = level;\n this._pluggables = [];\n }\n _padding(n) {\n return n < 10 ? '0' + n : '' + n;\n }\n _ts() {\n const dt = new Date();\n return ([this._padding(dt.getMinutes()), this._padding(dt.getSeconds())].join(':') +\n '.' +\n dt.getMilliseconds());\n }\n configure(config) {\n if (!config)\n return this._config;\n this._config = config;\n return this._config;\n }\n /**\n * Write log\n * @method\n * @memeberof Logger\n * @param {LogType|string} type - log type, default INFO\n * @param {string|object} msg - Logging message or object\n */\n _log(type, ...msg) {\n let loggerLevelName = this.level;\n if (ConsoleLogger.LOG_LEVEL) {\n loggerLevelName = ConsoleLogger.LOG_LEVEL;\n }\n if (typeof window !== 'undefined' && window.LOG_LEVEL) {\n loggerLevelName = window.LOG_LEVEL;\n }\n const loggerLevel = LOG_LEVELS[loggerLevelName];\n const typeLevel = LOG_LEVELS[type];\n if (!(typeLevel >= loggerLevel)) {\n // Do nothing if type is not greater than or equal to logger level (handle undefined)\n return;\n }\n let log = console.log.bind(console);\n if (type === LogType.ERROR && console.error) {\n log = console.error.bind(console);\n }\n if (type === LogType.WARN && console.warn) {\n log = console.warn.bind(console);\n }\n if (ConsoleLogger.BIND_ALL_LOG_LEVELS) {\n if (type === LogType.INFO && console.info) {\n log = console.info.bind(console);\n }\n if (type === LogType.DEBUG && console.debug) {\n log = console.debug.bind(console);\n }\n }\n const prefix = `[${type}] ${this._ts()} ${this.name}`;\n let message = '';\n if (msg.length === 1 && typeof msg[0] === 'string') {\n message = `${prefix} - ${msg[0]}`;\n log(message);\n }\n else if (msg.length === 1) {\n message = `${prefix} ${msg[0]}`;\n log(prefix, msg[0]);\n }\n else if (typeof msg[0] === 'string') {\n let obj = msg.slice(1);\n if (obj.length === 1) {\n obj = obj[0];\n }\n message = `${prefix} - ${msg[0]} ${obj}`;\n log(`${prefix} - ${msg[0]}`, obj);\n }\n else {\n message = `${prefix} ${msg}`;\n log(prefix, msg);\n }\n for (const plugin of this._pluggables) {\n const logEvent = { message, timestamp: Date.now() };\n plugin.pushLogs([logEvent]);\n }\n }\n /**\n * Write General log. Default to INFO\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n log(...msg) {\n this._log(LogType.INFO, ...msg);\n }\n /**\n * Write INFO log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n info(...msg) {\n this._log(LogType.INFO, ...msg);\n }\n /**\n * Write WARN log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n warn(...msg) {\n this._log(LogType.WARN, ...msg);\n }\n /**\n * Write ERROR log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n error(...msg) {\n this._log(LogType.ERROR, ...msg);\n }\n /**\n * Write DEBUG log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n debug(...msg) {\n this._log(LogType.DEBUG, ...msg);\n }\n /**\n * Write VERBOSE log\n * @method\n * @memeberof Logger\n * @param {string|object} msg - Logging message or object\n */\n verbose(...msg) {\n this._log(LogType.VERBOSE, ...msg);\n }\n addPluggable(pluggable) {\n if (pluggable && pluggable.getCategoryName() === AWS_CLOUDWATCH_CATEGORY) {\n this._pluggables.push(pluggable);\n pluggable.configure(this._config);\n }\n }\n listPluggables() {\n return this._pluggables;\n }\n}\nConsoleLogger.LOG_LEVEL = null;\nConsoleLogger.BIND_ALL_LOG_LEVELS = false;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const globalExists = () => {\n return typeof global !== 'undefined';\n};\nexport const globalThisExists = () => {\n return typeof globalThis !== 'undefined';\n};\nexport const windowExists = () => {\n return typeof window !== 'undefined';\n};\nexport const documentExists = () => {\n return typeof document !== 'undefined';\n};\nexport const processExists = () => {\n return typeof process !== 'undefined';\n};\nexport const keyPrefixMatch = (object, prefix) => {\n return !!Object.keys(object).find(key => key.startsWith(prefix));\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Framework } from '../types';\nimport { reactSSRDetect, reactWebDetect } from './React';\nimport { vueSSRDetect, vueWebDetect } from './Vue';\nimport { svelteSSRDetect, svelteWebDetect } from './Svelte';\nimport { nextSSRDetect, nextWebDetect } from './Next';\nimport { nuxtSSRDetect, nuxtWebDetect } from './Nuxt';\nimport { angularSSRDetect, angularWebDetect } from './Angular';\nimport { reactNativeDetect } from './ReactNative';\nimport { expoDetect } from './Expo';\nimport { webDetect } from './Web';\n// These are in the order of detection where when both are detectable, the early Framework will be reported\nconst detectionMap = [\n // First, detect mobile\n { platform: Framework.Expo, detectionMethod: expoDetect },\n { platform: Framework.ReactNative, detectionMethod: reactNativeDetect },\n // Next, detect web frameworks\n { platform: Framework.NextJs, detectionMethod: nextWebDetect },\n { platform: Framework.Nuxt, detectionMethod: nuxtWebDetect },\n { platform: Framework.Angular, detectionMethod: angularWebDetect },\n { platform: Framework.React, detectionMethod: reactWebDetect },\n { platform: Framework.VueJs, detectionMethod: vueWebDetect },\n { platform: Framework.Svelte, detectionMethod: svelteWebDetect },\n { platform: Framework.WebUnknown, detectionMethod: webDetect },\n // Last, detect ssr frameworks\n { platform: Framework.NextJsSSR, detectionMethod: nextSSRDetect },\n { platform: Framework.NuxtSSR, detectionMethod: nuxtSSRDetect },\n { platform: Framework.ReactSSR, detectionMethod: reactSSRDetect },\n { platform: Framework.VueJsSSR, detectionMethod: vueSSRDetect },\n { platform: Framework.AngularSSR, detectionMethod: angularSSRDetect },\n { platform: Framework.SvelteSSR, detectionMethod: svelteSSRDetect },\n];\nexport function detect() {\n return (detectionMap.find(detectionEntry => detectionEntry.detectionMethod())\n ?.platform || Framework.ServerSideUnknown);\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists } from './helpers';\n// Tested with expo 48 / react-native 0.71.3\nexport function expoDetect() {\n return globalExists() && typeof global.expo !== 'undefined';\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// Tested with react-native 0.17.7\nexport function reactNativeDetect() {\n return (typeof navigator !== 'undefined' &&\n typeof navigator.product !== 'undefined' &&\n navigator.product === 'ReactNative');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists, keyPrefixMatch, windowExists } from './helpers';\n// Tested with next 13.4 / react 18.2\nexport function nextWebDetect() {\n return (windowExists() &&\n window.next &&\n typeof window.next === 'object');\n}\nexport function nextSSRDetect() {\n return (globalExists() &&\n (keyPrefixMatch(global, '__next') || keyPrefixMatch(global, '__NEXT')));\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists, windowExists } from './helpers';\n// Tested with nuxt 2.15 / vue 2.7\nexport function nuxtWebDetect() {\n return (windowExists() &&\n (window.__NUXT__ !== undefined ||\n window.$nuxt !== undefined));\n}\nexport function nuxtSSRDetect() {\n return (globalExists() && typeof global.__NUXT_PATHS__ !== 'undefined');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { documentExists, processExists, windowExists } from './helpers';\n// Tested with @angular/core 16.0.0\nexport function angularWebDetect() {\n const angularVersionSetInDocument = Boolean(documentExists() && document.querySelector('[ng-version]'));\n const angularContentSetInWindow = Boolean(windowExists() && typeof window.ng !== 'undefined');\n return angularVersionSetInDocument || angularContentSetInWindow;\n}\nexport function angularSSRDetect() {\n return ((processExists() &&\n typeof process.env === 'object' &&\n process.env.npm_lifecycle_script?.startsWith('ng ')) ||\n false);\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { documentExists, processExists } from './helpers';\n// Tested with react 18.2 - built using Vite\nexport function reactWebDetect() {\n const elementKeyPrefixedWithReact = (key) => {\n return key.startsWith('_react') || key.startsWith('__react');\n };\n const elementIsReactEnabled = (element) => {\n return Object.keys(element).find(elementKeyPrefixedWithReact);\n };\n const allElementsWithId = () => Array.from(document.querySelectorAll('[id]'));\n return documentExists() && allElementsWithId().some(elementIsReactEnabled);\n}\nexport function reactSSRDetect() {\n return (processExists() &&\n typeof process.env !== 'undefined' &&\n !!Object.keys(process.env).find(key => key.includes('react')));\n}\n// use the some\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { globalExists, keyPrefixMatch, windowExists } from './helpers';\n// Tested with vue 3.3.2\nexport function vueWebDetect() {\n return windowExists() && keyPrefixMatch(window, '__VUE');\n}\nexport function vueSSRDetect() {\n return globalExists() && keyPrefixMatch(global, '__VUE');\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { keyPrefixMatch, processExists, windowExists } from './helpers';\n// Tested with svelte 3.59\nexport function svelteWebDetect() {\n return windowExists() && keyPrefixMatch(window, '__SVELTE');\n}\nexport function svelteSSRDetect() {\n return (processExists() &&\n typeof process.env !== 'undefined' &&\n !!Object.keys(process.env).find(key => key.includes('svelte')));\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { windowExists } from './helpers';\nexport function webDetect() {\n return windowExists();\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Framework } from './types';\nimport { detect } from './detection';\n// We want to cache detection since the framework won't change\nlet frameworkCache;\nexport const frameworkChangeObservers = [];\n// Setup the detection reset tracking / timeout delays\nlet resetTriggered = false;\nconst SSR_RESET_TIMEOUT = 10; // ms\nconst WEB_RESET_TIMEOUT = 10; // ms\nconst PRIME_FRAMEWORK_DELAY = 1000; // ms\nexport const detectFramework = () => {\n if (!frameworkCache) {\n frameworkCache = detect();\n if (resetTriggered) {\n // The final run of detectFramework:\n // Starting from this point, the `frameworkCache` becomes \"final\".\n // So we don't need to notify the observers again so the observer\n // can be removed after the final notice.\n while (frameworkChangeObservers.length) {\n frameworkChangeObservers.pop()?.();\n }\n }\n else {\n // The first run of detectFramework:\n // Every time we update the cache, call each observer function\n frameworkChangeObservers.forEach(fcn => {\n fcn();\n });\n }\n // Retry once for either Unknown type after a delay (explained below)\n resetTimeout(Framework.ServerSideUnknown, SSR_RESET_TIMEOUT);\n resetTimeout(Framework.WebUnknown, WEB_RESET_TIMEOUT);\n }\n return frameworkCache;\n};\n/**\n * @internal Setup observer callback that will be called everytime the framework changes\n */\nexport const observeFrameworkChanges = (fcn) => {\n // When the `frameworkCache` won't be updated again, we ignore all incoming\n // observers.\n if (resetTriggered) {\n return;\n }\n frameworkChangeObservers.push(fcn);\n};\nexport function clearCache() {\n frameworkCache = undefined;\n}\n// For a framework type and a delay amount, setup the event to re-detect\n// During the runtime boot, it is possible that framework detection will\n// be triggered before the framework has made modifications to the\n// global/window/etc needed for detection. When no framework is detected\n// we will reset and try again to ensure we don't use a cached\n// non-framework detection result for all requests.\nfunction resetTimeout(framework, delay) {\n if (frameworkCache === framework && !resetTriggered) {\n setTimeout(() => {\n clearCache();\n resetTriggered = true;\n setTimeout(detectFramework, PRIME_FRAMEWORK_DELAY);\n }, delay);\n }\n}\n","// generated by genversion\nexport const version = '6.0.23';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// Maintains custom user-agent state set by external consumers.\nconst customUserAgentState = {};\n/**\n * Sets custom user agent state which will be appended to applicable requests. Returns a function that can be used to\n * clean up any custom state set with this API.\n *\n * @note\n * This API operates globally. Calling this API multiple times will result in the most recently set values for a\n * particular API being used.\n *\n * @note\n * This utility IS NOT compatible with SSR.\n *\n * @param input - SetCustomUserAgentInput that defines custom state to apply to the specified APIs.\n */\nexport const setCustomUserAgent = (input) => {\n // Save custom user-agent state & increment reference counter\n // TODO Remove `any` when we upgrade to TypeScript 5.2, see: https://github.com/microsoft/TypeScript/issues/44373\n customUserAgentState[input.category] = input.apis.reduce((acc, api) => ({\n ...acc,\n [api]: {\n refCount: acc[api]?.refCount ? acc[api].refCount + 1 : 1,\n additionalDetails: input.additionalDetails,\n },\n }), customUserAgentState[input.category] ?? {});\n // Callback that cleans up state for APIs recorded by this call\n let cleanUpCallbackCalled = false;\n const cleanUpCallback = () => {\n // Only allow the cleanup callback to be called once\n if (cleanUpCallbackCalled) {\n return;\n }\n cleanUpCallbackCalled = true;\n input.apis.forEach(api => {\n const apiRefCount = customUserAgentState[input.category][api].refCount;\n if (apiRefCount > 1) {\n customUserAgentState[input.category][api].refCount = apiRefCount - 1;\n }\n else {\n delete customUserAgentState[input.category][api];\n // Clean up category if no more APIs set\n if (!Object.keys(customUserAgentState[input.category]).length) {\n delete customUserAgentState[input.category];\n }\n }\n });\n };\n return cleanUpCallback;\n};\nexport const getCustomUserAgent = (category, api) => customUserAgentState[category]?.[api]?.additionalDetails;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Framework } from './types';\nimport { version } from './version';\nimport { detectFramework, observeFrameworkChanges } from './detectFramework';\nimport { getCustomUserAgent } from './customUserAgent';\nconst BASE_USER_AGENT = `aws-amplify`;\nclass PlatformBuilder {\n constructor() {\n this.userAgent = `${BASE_USER_AGENT}/${version}`;\n }\n get framework() {\n return detectFramework();\n }\n get isReactNative() {\n return (this.framework === Framework.ReactNative ||\n this.framework === Framework.Expo);\n }\n observeFrameworkChanges(fcn) {\n observeFrameworkChanges(fcn);\n }\n}\nexport const Platform = new PlatformBuilder();\nexport const getAmplifyUserAgentObject = ({ category, action, } = {}) => {\n const userAgent = [[BASE_USER_AGENT, version]];\n if (category) {\n userAgent.push([category, action]);\n }\n userAgent.push(['framework', detectFramework()]);\n if (category && action) {\n const customState = getCustomUserAgent(category, action);\n if (customState) {\n customState.forEach(state => {\n userAgent.push(state);\n });\n }\n }\n return userAgent;\n};\nexport const getAmplifyUserAgent = (customUserAgentDetails) => {\n const userAgent = getAmplifyUserAgentObject(customUserAgentDetails);\n const userAgentString = userAgent\n .map(([agentKey, agentValue]) => agentKey && agentValue ? `${agentKey}/${agentValue}` : agentKey)\n .join(' ');\n return userAgentString;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var Framework;\n(function (Framework) {\n // < 100 - Web frameworks\n Framework[\"WebUnknown\"] = \"0\";\n Framework[\"React\"] = \"1\";\n Framework[\"NextJs\"] = \"2\";\n Framework[\"Angular\"] = \"3\";\n Framework[\"VueJs\"] = \"4\";\n Framework[\"Nuxt\"] = \"5\";\n Framework[\"Svelte\"] = \"6\";\n // 100s - Server side frameworks\n Framework[\"ServerSideUnknown\"] = \"100\";\n Framework[\"ReactSSR\"] = \"101\";\n Framework[\"NextJsSSR\"] = \"102\";\n Framework[\"AngularSSR\"] = \"103\";\n Framework[\"VueJsSSR\"] = \"104\";\n Framework[\"NuxtSSR\"] = \"105\";\n Framework[\"SvelteSSR\"] = \"106\";\n // 200s - Mobile framework\n Framework[\"ReactNative\"] = \"201\";\n Framework[\"Expo\"] = \"202\";\n})(Framework || (Framework = {}));\nexport var Category;\n(function (Category) {\n Category[\"API\"] = \"api\";\n Category[\"Auth\"] = \"auth\";\n Category[\"Analytics\"] = \"analytics\";\n Category[\"DataStore\"] = \"datastore\";\n Category[\"Geo\"] = \"geo\";\n Category[\"InAppMessaging\"] = \"inappmessaging\";\n Category[\"Interactions\"] = \"interactions\";\n Category[\"Predictions\"] = \"predictions\";\n Category[\"PubSub\"] = \"pubsub\";\n Category[\"PushNotification\"] = \"pushnotification\";\n Category[\"Storage\"] = \"storage\";\n})(Category || (Category = {}));\nexport var AnalyticsAction;\n(function (AnalyticsAction) {\n AnalyticsAction[\"Record\"] = \"1\";\n AnalyticsAction[\"IdentifyUser\"] = \"2\";\n})(AnalyticsAction || (AnalyticsAction = {}));\nexport var ApiAction;\n(function (ApiAction) {\n ApiAction[\"GraphQl\"] = \"1\";\n ApiAction[\"Get\"] = \"2\";\n ApiAction[\"Post\"] = \"3\";\n ApiAction[\"Put\"] = \"4\";\n ApiAction[\"Patch\"] = \"5\";\n ApiAction[\"Del\"] = \"6\";\n ApiAction[\"Head\"] = \"7\";\n})(ApiAction || (ApiAction = {}));\nexport var AuthAction;\n(function (AuthAction) {\n AuthAction[\"SignUp\"] = \"1\";\n AuthAction[\"ConfirmSignUp\"] = \"2\";\n AuthAction[\"ResendSignUpCode\"] = \"3\";\n AuthAction[\"SignIn\"] = \"4\";\n AuthAction[\"FetchMFAPreference\"] = \"6\";\n AuthAction[\"UpdateMFAPreference\"] = \"7\";\n AuthAction[\"SetUpTOTP\"] = \"10\";\n AuthAction[\"VerifyTOTPSetup\"] = \"11\";\n AuthAction[\"ConfirmSignIn\"] = \"12\";\n AuthAction[\"DeleteUserAttributes\"] = \"15\";\n AuthAction[\"DeleteUser\"] = \"16\";\n AuthAction[\"UpdateUserAttributes\"] = \"17\";\n AuthAction[\"FetchUserAttributes\"] = \"18\";\n AuthAction[\"ConfirmUserAttribute\"] = \"22\";\n AuthAction[\"SignOut\"] = \"26\";\n AuthAction[\"UpdatePassword\"] = \"27\";\n AuthAction[\"ResetPassword\"] = \"28\";\n AuthAction[\"ConfirmResetPassword\"] = \"29\";\n AuthAction[\"FederatedSignIn\"] = \"30\";\n AuthAction[\"RememberDevice\"] = \"32\";\n AuthAction[\"ForgetDevice\"] = \"33\";\n AuthAction[\"FetchDevices\"] = \"34\";\n AuthAction[\"SendUserAttributeVerificationCode\"] = \"35\";\n AuthAction[\"SignInWithRedirect\"] = \"36\";\n})(AuthAction || (AuthAction = {}));\nexport var DataStoreAction;\n(function (DataStoreAction) {\n DataStoreAction[\"Subscribe\"] = \"1\";\n DataStoreAction[\"GraphQl\"] = \"2\";\n})(DataStoreAction || (DataStoreAction = {}));\nexport var GeoAction;\n(function (GeoAction) {\n GeoAction[\"SearchByText\"] = \"0\";\n GeoAction[\"SearchByCoordinates\"] = \"1\";\n GeoAction[\"SearchForSuggestions\"] = \"2\";\n GeoAction[\"SearchByPlaceId\"] = \"3\";\n GeoAction[\"SaveGeofences\"] = \"4\";\n GeoAction[\"GetGeofence\"] = \"5\";\n GeoAction[\"ListGeofences\"] = \"6\";\n GeoAction[\"DeleteGeofences\"] = \"7\";\n})(GeoAction || (GeoAction = {}));\nexport var InAppMessagingAction;\n(function (InAppMessagingAction) {\n InAppMessagingAction[\"SyncMessages\"] = \"1\";\n InAppMessagingAction[\"IdentifyUser\"] = \"2\";\n InAppMessagingAction[\"NotifyMessageInteraction\"] = \"3\";\n})(InAppMessagingAction || (InAppMessagingAction = {}));\nexport var InteractionsAction;\n(function (InteractionsAction) {\n InteractionsAction[\"None\"] = \"0\";\n})(InteractionsAction || (InteractionsAction = {}));\nexport var PredictionsAction;\n(function (PredictionsAction) {\n PredictionsAction[\"Convert\"] = \"1\";\n PredictionsAction[\"Identify\"] = \"2\";\n PredictionsAction[\"Interpret\"] = \"3\";\n})(PredictionsAction || (PredictionsAction = {}));\nexport var PubSubAction;\n(function (PubSubAction) {\n PubSubAction[\"Subscribe\"] = \"1\";\n})(PubSubAction || (PubSubAction = {}));\nexport var PushNotificationAction;\n(function (PushNotificationAction) {\n PushNotificationAction[\"InitializePushNotifications\"] = \"1\";\n PushNotificationAction[\"IdentifyUser\"] = \"2\";\n})(PushNotificationAction || (PushNotificationAction = {}));\nexport var StorageAction;\n(function (StorageAction) {\n StorageAction[\"UploadData\"] = \"1\";\n StorageAction[\"DownloadData\"] = \"2\";\n StorageAction[\"List\"] = \"3\";\n StorageAction[\"Copy\"] = \"4\";\n StorageAction[\"Remove\"] = \"5\";\n StorageAction[\"GetProperties\"] = \"6\";\n StorageAction[\"GetUrl\"] = \"7\";\n})(StorageAction || (StorageAction = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Default partition for AWS services. This is used when the region is not provided or the region is not recognized.\n *\n * @internal\n */\nexport const defaultPartition = {\n id: 'aws',\n outputs: {\n dnsSuffix: 'amazonaws.com',\n },\n regionRegex: '^(us|eu|ap|sa|ca|me|af)\\\\-\\\\w+\\\\-\\\\d+$',\n regions: ['aws-global'],\n};\n/**\n * This data is adapted from the partition file from AWS SDK shared utilities but remove some contents for bundle size\n * concern. Information removed are `dualStackDnsSuffix`, `supportDualStack`, `supportFIPS`, restricted partitions, and\n * list of regions for each partition other than global regions.\n *\n * * Ref: https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints\n * * Ref: https://github.com/aws/aws-sdk-js-v3/blob/0201baef03c2379f1f6f7150b9d401d4b230d488/packages/util-endpoints/src/lib/aws/partitions.json#L1\n *\n * @internal\n */\nexport const partitionsInfo = {\n partitions: [\n defaultPartition,\n {\n id: 'aws-cn',\n outputs: {\n dnsSuffix: 'amazonaws.com.cn',\n },\n regionRegex: '^cn\\\\-\\\\w+\\\\-\\\\d+$',\n regions: ['aws-cn-global'],\n },\n ],\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { defaultPartition, partitionsInfo } from './partitions';\n/**\n * Get the AWS Services endpoint URL's DNS suffix for a given region. A typical AWS regional service endpoint URL will\n * follow this pattern: {endpointPrefix}.{region}.{dnsSuffix}. For example, the endpoint URL for Cognito Identity in\n * us-east-1 will be cognito-identity.us-east-1.amazonaws.com. Here the DnsSuffix is `amazonaws.com`.\n *\n * @param region\n * @returns The DNS suffix\n *\n * @internal\n */\nexport const getDnsSuffix = (region) => {\n const { partitions } = partitionsInfo;\n for (const { regions, outputs, regionRegex } of partitions) {\n const regex = new RegExp(regionRegex);\n if (regions.includes(region) || regex.test(region)) {\n return outputs.dnsSuffix;\n }\n }\n return defaultPartition.outputs.dnsSuffix;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst DEFAULT_RETRY_ATTEMPTS = 3;\n/**\n * Retry middleware\n */\nexport const retryMiddlewareFactory = ({ maxAttempts = DEFAULT_RETRY_ATTEMPTS, retryDecider, computeDelay, abortSignal, }) => {\n if (maxAttempts < 1) {\n throw new Error('maxAttempts must be greater than 0');\n }\n return (next, context) => async function retryMiddleware(request) {\n let error;\n let attemptsCount = context.attemptsCount ?? 0;\n let response;\n // When retry is not needed or max attempts is reached, either error or response will be set. This function handles either cases.\n const handleTerminalErrorOrResponse = () => {\n if (response) {\n addOrIncrementMetadataAttempts(response, attemptsCount);\n return response;\n }\n else {\n addOrIncrementMetadataAttempts(error, attemptsCount);\n throw error;\n }\n };\n while (!abortSignal?.aborted && attemptsCount < maxAttempts) {\n try {\n response = await next(request);\n error = undefined;\n }\n catch (e) {\n error = e;\n response = undefined;\n }\n // context.attemptsCount may be updated after calling next handler which may retry the request by itself.\n attemptsCount =\n (context.attemptsCount ?? 0) > attemptsCount\n ? context.attemptsCount ?? 0\n : attemptsCount + 1;\n context.attemptsCount = attemptsCount;\n if (await retryDecider(response, error)) {\n if (!abortSignal?.aborted && attemptsCount < maxAttempts) {\n // prevent sleep for last attempt or cancelled request;\n const delay = computeDelay(attemptsCount);\n await cancellableSleep(delay, abortSignal);\n }\n continue;\n }\n else {\n return handleTerminalErrorOrResponse();\n }\n }\n if (abortSignal?.aborted) {\n throw new Error('Request aborted.');\n }\n else {\n return handleTerminalErrorOrResponse();\n }\n };\n};\nconst cancellableSleep = (timeoutMs, abortSignal) => {\n if (abortSignal?.aborted) {\n return Promise.resolve();\n }\n let timeoutId;\n let sleepPromiseResolveFn;\n const sleepPromise = new Promise(resolve => {\n sleepPromiseResolveFn = resolve;\n timeoutId = setTimeout(resolve, timeoutMs);\n });\n abortSignal?.addEventListener('abort', function cancelSleep(_) {\n clearTimeout(timeoutId);\n abortSignal?.removeEventListener('abort', cancelSleep);\n sleepPromiseResolveFn();\n });\n return sleepPromise;\n};\nconst addOrIncrementMetadataAttempts = (nextHandlerOutput, attempts) => {\n if (Object.prototype.toString.call(nextHandlerOutput) !== '[object Object]') {\n return;\n }\n nextHandlerOutput.$metadata = {\n ...(nextHandlerOutput.$metadata ?? {}),\n attempts,\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Cache the payload of a response body. It allows multiple calls to the body,\n * for example, when reading the body in both retry decider and error deserializer.\n * Caching body is allowed here because we call the body accessor(blob(), json(),\n * etc.) when body is small or streaming implementation is not available(RN).\n *\n * @internal\n */\nexport const withMemoization = (payloadAccessor) => {\n let cached;\n return () => {\n if (!cached) {\n // Explicitly not awaiting. Intermediate await would add overhead and\n // introduce a possible race in the event that this wrapper is called\n // again before the first `payloadAccessor` call resolves.\n cached = payloadAccessor();\n }\n return cached;\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { withMemoization } from '../utils/memoization';\nconst shouldSendBody = (method) => !['HEAD', 'GET', 'DELETE'].includes(method.toUpperCase());\n// TODO[AllanZhengYP]: we need to provide isCanceledError utility\nexport const fetchTransferHandler = async ({ url, method, headers, body }, { abortSignal, cache, withCrossDomainCredentials }) => {\n let resp;\n try {\n resp = await fetch(url, {\n method,\n headers,\n body: shouldSendBody(method) ? body : undefined,\n signal: abortSignal,\n cache,\n credentials: withCrossDomainCredentials ? 'include' : 'same-origin',\n });\n }\n catch (e) {\n // TODO: needs to revise error handling in v6\n // For now this is a thin wrapper over original fetch error similar to cognito-identity-js package.\n // Ref: https://github.com/aws-amplify/amplify-js/blob/4fbc8c0a2be7526aab723579b4c95b552195a80b/packages/amazon-cognito-identity-js/src/Client.js#L103-L108\n if (e instanceof TypeError) {\n throw new Error('Network error');\n }\n throw e;\n }\n const responseHeaders = {};\n resp.headers?.forEach((value, key) => {\n responseHeaders[key.toLowerCase()] = value;\n });\n const httpResponse = {\n statusCode: resp.status,\n headers: responseHeaders,\n body: null,\n };\n // resp.body is a ReadableStream according to Fetch API spec, but React Native\n // does not implement it.\n const bodyWithMixin = Object.assign(resp.body ?? {}, {\n text: withMemoization(() => resp.text()),\n blob: withMemoization(() => resp.blob()),\n json: withMemoization(() => resp.json()),\n });\n return {\n ...httpResponse,\n body: bodyWithMixin,\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { retryMiddlewareFactory } from '../middleware/retry';\nimport { userAgentMiddlewareFactory, } from '../middleware/userAgent';\nimport { composeTransferHandler } from '../internal/composeTransferHandler';\nimport { fetchTransferHandler } from './fetch';\nexport const unauthenticatedHandler = composeTransferHandler(fetchTransferHandler, [userAgentMiddlewareFactory, retryMiddlewareFactory]);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Middleware injects user agent string to specified header(default to 'x-amz-user-agent'),\n * if the header is not set already.\n *\n * TODO: incorporate new user agent design\n */\nexport const userAgentMiddlewareFactory = ({ userAgentHeader = 'x-amz-user-agent', userAgentValue = '', }) => next => {\n return async function userAgentMiddleware(request) {\n if (userAgentValue.trim().length === 0) {\n const result = await next(request);\n return result;\n }\n else {\n const headerName = userAgentHeader.toLowerCase();\n request.headers[headerName] = request.headers[headerName]\n ? `${request.headers[headerName]} ${userAgentValue}`\n : userAgentValue;\n const response = await next(request);\n return response;\n }\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const composeServiceApi = (transferHandler, serializer, deserializer, defaultConfig) => {\n return async (config, input) => {\n const resolvedConfig = {\n ...defaultConfig,\n ...config,\n };\n // We may want to allow different endpoints from given config(other than region) and input.\n // Currently S3 supports additional `useAccelerateEndpoint` option to use accelerate endpoint.\n const endpoint = await resolvedConfig.endpointResolver(resolvedConfig, input);\n // Unlike AWS SDK clients, a serializer should NOT populate the `host` or `content-length` headers.\n // Both of these headers are prohibited per Spec(https://developer.mozilla.org/en-US/docs/Glossary/Forbidden_header_name).\n // They will be populated automatically by browser, or node-fetch polyfill.\n const request = await serializer(input, endpoint);\n const response = await transferHandler(request, {\n ...resolvedConfig,\n });\n return deserializer(response);\n };\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * Compose a transfer handler with a core transfer handler and a list of middleware.\n * @param coreHandler Core transfer handler\n * @param middleware\tList of middleware\n * @returns A transfer handler whose option type is the union of the core\n * \ttransfer handler's option type and the middleware's option type.\n * @internal\n */\nexport const composeTransferHandler = (coreHandler, middleware) => (request, options) => {\n const context = {};\n let composedHandler = (composeHandlerRequest) => coreHandler(composeHandlerRequest, options);\n for (let i = middleware.length - 1; i >= 0; i--) {\n const m = middleware[i];\n const resolvedMiddleware = m(options);\n composedHandler = resolvedMiddleware(composedHandler, context);\n }\n return composedHandler(request);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// via https://github.com/aws/aws-sdk-js-v3/blob/ab0e7be36e7e7f8a0c04834357aaad643c7912c3/packages/service-error-classification/src/constants.ts#L8\nconst CLOCK_SKEW_ERROR_CODES = [\n 'AuthFailure',\n 'InvalidSignatureException',\n 'RequestExpired',\n 'RequestInTheFuture',\n 'RequestTimeTooSkewed',\n 'SignatureDoesNotMatch',\n 'BadRequestException', // API Gateway\n];\n/**\n * Given an error code, returns true if it is related to a clock skew error.\n *\n * @param errorCode String representation of some error.\n * @returns True if given error is present in `CLOCK_SKEW_ERROR_CODES`, false otherwise.\n *\n * @internal\n */\nexport const isClockSkewError = (errorCode) => !!errorCode && CLOCK_SKEW_ERROR_CODES.includes(errorCode);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { isClockSkewError } from './isClockSkewError';\n/**\n * Get retry decider function\n * @param errorParser Function to load JavaScript error from HTTP response\n */\nexport const getRetryDecider = (errorParser) => async (response, error) => {\n const parsedError = error ??\n (await errorParser(response)) ??\n undefined;\n const errorCode = parsedError?.code;\n const statusCode = response?.statusCode;\n return (isConnectionError(error) ||\n isThrottlingError(statusCode, errorCode) ||\n isClockSkewError(errorCode) ||\n isServerSideError(statusCode, errorCode));\n};\n// reference: https://github.com/aws/aws-sdk-js-v3/blob/ab0e7be36e7e7f8a0c04834357aaad643c7912c3/packages/service-error-classification/src/constants.ts#L22-L37\nconst THROTTLING_ERROR_CODES = [\n 'BandwidthLimitExceeded',\n 'EC2ThrottledException',\n 'LimitExceededException',\n 'PriorRequestNotComplete',\n 'ProvisionedThroughputExceededException',\n 'RequestLimitExceeded',\n 'RequestThrottled',\n 'RequestThrottledException',\n 'SlowDown',\n 'ThrottledException',\n 'Throttling',\n 'ThrottlingException',\n 'TooManyRequestsException',\n];\nconst TIMEOUT_ERROR_CODES = [\n 'TimeoutError',\n 'RequestTimeout',\n 'RequestTimeoutException',\n];\nconst isThrottlingError = (statusCode, errorCode) => statusCode === 429 ||\n (!!errorCode && THROTTLING_ERROR_CODES.includes(errorCode));\nconst isConnectionError = (error) => error?.name === 'Network error';\nconst isServerSideError = (statusCode, errorCode) => (!!statusCode && [500, 502, 503, 504].includes(statusCode)) ||\n (!!errorCode && TIMEOUT_ERROR_CODES.includes(errorCode));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { jitteredBackoff as jitteredBackoffUtil } from '../../../utils';\n// TODO: [v6] The separate retry utility is used by Data packages now and will replaced by retry middleware.\nconst DEFAULT_MAX_DELAY_MS = 5 * 60 * 1000;\nexport const jitteredBackoff = attempt => {\n const delayFunction = jitteredBackoffUtil(DEFAULT_MAX_DELAY_MS);\n const delay = delayFunction(attempt);\n // The delayFunction returns false when the delay is greater than the max delay(5 mins).\n // In this case, the retry middleware will delay 5 mins instead, as a ceiling of the delay.\n return delay === false ? DEFAULT_MAX_DELAY_MS : delay;\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { MAX_DELAY_MS } from './constants';\n/**\n * @private\n * Internal use of Amplify only\n */\nexport function jitteredBackoff(maxDelayMs = MAX_DELAY_MS) {\n const BASE_TIME_MS = 100;\n const JITTER_FACTOR = 100;\n return attempt => {\n const delay = 2 ** attempt * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const MAX_DELAY_MS = 5 * 60 * 1000;\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseMetadata } from './responseInfo';\n/**\n * Utility functions for serializing and deserializing of JSON protocol in general(including: REST-JSON, JSON-RPC, etc.)\n */\n/**\n * Error parser for AWS JSON protocol.\n */\nexport const parseJsonError = async (response) => {\n if (!response || response.statusCode < 300) {\n return;\n }\n const body = await parseJsonBody(response);\n const sanitizeErrorCode = (rawValue) => {\n const [cleanValue] = rawValue.toString().split(/[,:]+/);\n if (cleanValue.includes('#')) {\n return cleanValue.split('#')[1];\n }\n return cleanValue;\n };\n const code = sanitizeErrorCode(response.headers['x-amzn-errortype'] ??\n body.code ??\n body.__type ??\n 'UnknownError');\n const message = body.message ?? body.Message ?? 'Unknown error';\n const error = new Error(message);\n return Object.assign(error, {\n name: code,\n $metadata: parseMetadata(response),\n });\n};\n/**\n * Parse JSON response body to JavaScript object.\n */\nexport const parseJsonBody = async (response) => {\n if (!response.body) {\n throw new Error('Missing response payload');\n }\n const output = await response.body.json();\n return Object.assign(output, {\n $metadata: parseMetadata(response),\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const parseMetadata = (response) => {\n const { headers, statusCode } = response;\n return {\n ...(isMetadataBearer(response) ? response.$metadata : {}),\n httpStatusCode: statusCode,\n requestId: headers['x-amzn-requestid'] ??\n headers['x-amzn-request-id'] ??\n headers['x-amz-request-id'],\n extendedRequestId: headers['x-amz-id-2'],\n cfId: headers['x-amz-cf-id'],\n };\n};\nconst isMetadataBearer = (response) => typeof response?.$metadata === 'object';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n// Logging constants\nexport const AWS_CLOUDWATCH_CATEGORY = 'Logging';\nexport const USER_AGENT_HEADER = 'x-amz-user-agent';\n// Error exception code constants\nexport const NO_HUBCALLBACK_PROVIDED_EXCEPTION = 'NoHubcallbackProvidedException';\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport class AmplifyError extends Error {\n /**\n * Constructs an AmplifyError.\n *\n * @param message text that describes the main problem.\n * @param underlyingError the underlying cause of the error.\n * @param recoverySuggestion suggestion to recover from the error.\n *\n */\n constructor({ message, name, recoverySuggestion, underlyingError, }) {\n super(message);\n this.name = name;\n this.underlyingError = underlyingError;\n this.recoverySuggestion = recoverySuggestion;\n // Hack for making the custom error class work when transpiled to es5\n // TODO: Delete the following 2 lines after we change the build target to >= es2015\n this.constructor = AmplifyError;\n Object.setPrototypeOf(this, AmplifyError.prototype);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyError } from './AmplifyError';\nexport const createAssertionFunction = (errorMap, AssertionError = AmplifyError) => (assertion, name, additionalContext) => {\n const { message, recoverySuggestion } = errorMap[name];\n if (!assertion) {\n throw new AssertionError({\n name,\n message: additionalContext\n ? `${message} ${additionalContext}`\n : message,\n recoverySuggestion,\n });\n }\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger } from './Logger';\nimport { AmplifyError } from './errors';\nconst logger = new ConsoleLogger('parseAWSExports');\nconst authTypeMapping = {\n API_KEY: 'apiKey',\n AWS_IAM: 'iam',\n AMAZON_COGNITO_USER_POOLS: 'userPool',\n OPENID_CONNECT: 'oidc',\n NONE: 'none',\n AWS_LAMBDA: 'lambda',\n // `LAMBDA` is an incorrect value that was added during the v6 rewrite.\n // Keeping it as a valid value until v7 to prevent breaking customers who might\n // be relying on it as a workaround.\n // ref: https://github.com/aws-amplify/amplify-js/pull/12922\n // TODO: @v7 remove next line\n LAMBDA: 'lambda',\n};\n/**\n * Converts the object imported from `aws-exports.js` or `amplifyconfiguration.json` files generated by\n * the Amplify CLI into an object that conforms to the {@link ResourcesConfig}.\n *\n * @param config A configuration object imported from `aws-exports.js` or `amplifyconfiguration.json`.\n *\n * @returns An object that conforms to the {@link ResourcesConfig} .\n */\nexport const parseAWSExports = (config = {}) => {\n if (!Object.prototype.hasOwnProperty.call(config, 'aws_project_region')) {\n throw new AmplifyError({\n name: 'InvalidParameterException',\n message: 'Invalid config parameter.',\n recoverySuggestion: 'Ensure passing the config object imported from `amplifyconfiguration.json`.',\n });\n }\n const { aws_appsync_apiKey, aws_appsync_authenticationType, aws_appsync_graphqlEndpoint, aws_appsync_region, aws_bots_config, aws_cognito_identity_pool_id, aws_cognito_sign_up_verification_method, aws_cognito_mfa_configuration, aws_cognito_mfa_types, aws_cognito_password_protection_settings, aws_cognito_verification_mechanisms, aws_cognito_signup_attributes, aws_cognito_social_providers, aws_cognito_username_attributes, aws_mandatory_sign_in, aws_mobile_analytics_app_id, aws_mobile_analytics_app_region, aws_user_files_s3_bucket, aws_user_files_s3_bucket_region, aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing, aws_user_pools_id, aws_user_pools_web_client_id, geo, oauth, predictions, aws_cloud_logic_custom, Notifications, modelIntrospection, } = config;\n const amplifyConfig = {};\n // Analytics\n if (aws_mobile_analytics_app_id) {\n amplifyConfig.Analytics = {\n Pinpoint: {\n appId: aws_mobile_analytics_app_id,\n region: aws_mobile_analytics_app_region,\n },\n };\n }\n // Notifications\n const { InAppMessaging, Push } = Notifications ?? {};\n if (InAppMessaging?.AWSPinpoint || Push?.AWSPinpoint) {\n if (InAppMessaging?.AWSPinpoint) {\n const { appId, region } = InAppMessaging.AWSPinpoint;\n amplifyConfig.Notifications = {\n InAppMessaging: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n if (Push?.AWSPinpoint) {\n const { appId, region } = Push.AWSPinpoint;\n amplifyConfig.Notifications = {\n ...amplifyConfig.Notifications,\n PushNotification: {\n Pinpoint: {\n appId,\n region,\n },\n },\n };\n }\n }\n // Interactions\n if (Array.isArray(aws_bots_config)) {\n amplifyConfig.Interactions = {\n LexV1: Object.fromEntries(aws_bots_config.map(bot => [bot.name, bot])),\n };\n }\n // API\n if (aws_appsync_graphqlEndpoint) {\n const defaultAuthMode = authTypeMapping[aws_appsync_authenticationType];\n if (!defaultAuthMode) {\n logger.debug(`Invalid authentication type ${aws_appsync_authenticationType}. Falling back to IAM.`);\n }\n amplifyConfig.API = {\n GraphQL: {\n endpoint: aws_appsync_graphqlEndpoint,\n apiKey: aws_appsync_apiKey,\n region: aws_appsync_region,\n defaultAuthMode: defaultAuthMode ?? 'iam',\n },\n };\n if (modelIntrospection) {\n amplifyConfig.API.GraphQL.modelIntrospection = modelIntrospection;\n }\n }\n // Auth\n const mfaConfig = aws_cognito_mfa_configuration\n ? {\n status: aws_cognito_mfa_configuration &&\n aws_cognito_mfa_configuration.toLowerCase(),\n totpEnabled: aws_cognito_mfa_types?.includes('TOTP') ?? false,\n smsEnabled: aws_cognito_mfa_types?.includes('SMS') ?? false,\n }\n : undefined;\n const passwordFormatConfig = aws_cognito_password_protection_settings\n ? {\n minLength: aws_cognito_password_protection_settings.passwordPolicyMinLength,\n requireLowercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_LOWERCASE') ?? false,\n requireUppercase: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_UPPERCASE') ?? false,\n requireNumbers: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_NUMBERS') ?? false,\n requireSpecialCharacters: aws_cognito_password_protection_settings.passwordPolicyCharacters?.includes('REQUIRES_SYMBOLS') ?? false,\n }\n : undefined;\n const mergedUserAttributes = Array.from(new Set([\n ...(aws_cognito_verification_mechanisms ?? []),\n ...(aws_cognito_signup_attributes ?? []),\n ]));\n const userAttributes = mergedUserAttributes.reduce((attributes, key) => ({\n ...attributes,\n // All user attributes generated by the CLI are required\n [key.toLowerCase()]: { required: true },\n }), {});\n const loginWithEmailEnabled = aws_cognito_username_attributes?.includes('EMAIL') ?? false;\n const loginWithPhoneEnabled = aws_cognito_username_attributes?.includes('PHONE_NUMBER') ?? false;\n if (aws_cognito_identity_pool_id || aws_user_pools_id) {\n amplifyConfig.Auth = {\n Cognito: {\n identityPoolId: aws_cognito_identity_pool_id,\n allowGuestAccess: aws_mandatory_sign_in !== 'enable',\n signUpVerificationMethod: aws_cognito_sign_up_verification_method,\n userAttributes,\n userPoolClientId: aws_user_pools_web_client_id,\n userPoolId: aws_user_pools_id,\n mfa: mfaConfig,\n passwordFormat: passwordFormatConfig,\n loginWith: {\n username: !(loginWithEmailEnabled || loginWithPhoneEnabled),\n email: loginWithEmailEnabled,\n phone: loginWithPhoneEnabled,\n },\n },\n };\n }\n const hasOAuthConfig = oauth ? Object.keys(oauth).length > 0 : false;\n const hasSocialProviderConfig = aws_cognito_social_providers\n ? aws_cognito_social_providers.length > 0\n : false;\n if (amplifyConfig.Auth && hasOAuthConfig) {\n amplifyConfig.Auth.Cognito.loginWith = {\n ...amplifyConfig.Auth.Cognito.loginWith,\n oauth: {\n ...getOAuthConfig(oauth),\n ...(hasSocialProviderConfig && {\n providers: parseSocialProviders(aws_cognito_social_providers),\n }),\n },\n };\n }\n // Storage\n if (aws_user_files_s3_bucket) {\n amplifyConfig.Storage = {\n S3: {\n bucket: aws_user_files_s3_bucket,\n region: aws_user_files_s3_bucket_region,\n dangerouslyConnectToHttpEndpointForTesting: aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing,\n },\n };\n }\n // Geo\n if (geo) {\n const { amazon_location_service } = geo;\n amplifyConfig.Geo = amazon_location_service\n ? {\n LocationService: {\n ...amazon_location_service,\n searchIndices: amazon_location_service.search_indices,\n region: amazon_location_service.region,\n },\n }\n : { ...geo };\n }\n // REST API\n if (aws_cloud_logic_custom) {\n amplifyConfig.API = {\n ...amplifyConfig.API,\n REST: aws_cloud_logic_custom.reduce((acc, api) => {\n const { name, endpoint, region, service } = api;\n return {\n ...acc,\n [name]: {\n endpoint,\n ...(service ? { service } : undefined),\n ...(region ? { region } : undefined),\n },\n };\n }, {}),\n };\n }\n // Predictions\n if (predictions) {\n // map VoiceId from speechGenerator defaults to voiceId\n const { VoiceId: voiceId } = predictions?.convert?.speechGenerator?.defaults ?? {};\n amplifyConfig.Predictions = voiceId\n ? {\n ...predictions,\n convert: {\n ...predictions.convert,\n speechGenerator: {\n ...predictions.convert.speechGenerator,\n defaults: { voiceId },\n },\n },\n }\n : predictions;\n }\n return amplifyConfig;\n};\nconst getRedirectUrl = (redirectStr) => redirectStr?.split(',') ?? [];\nconst getOAuthConfig = ({ domain, scope, redirectSignIn, redirectSignOut, responseType, }) => ({\n domain,\n scopes: scope,\n redirectSignIn: getRedirectUrl(redirectSignIn),\n redirectSignOut: getRedirectUrl(redirectSignOut),\n responseType,\n});\nconst parseSocialProviders = (aws_cognito_social_providers) => {\n return aws_cognito_social_providers.map((provider) => {\n const updatedProvider = provider.toLowerCase();\n return updatedProvider.charAt(0).toUpperCase() + updatedProvider.slice(1);\n });\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const deepFreeze = (object) => {\n const propNames = Reflect.ownKeys(object);\n for (const name of propNames) {\n const value = object[name];\n if ((value && typeof value === 'object') || typeof value === 'function') {\n deepFreeze(value);\n }\n }\n return Object.freeze(object);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const ADD_OAUTH_LISTENER = Symbol('oauth-listener');\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AMPLIFY_SYMBOL, Hub } from '../Hub';\nimport { parseAWSExports } from '../parseAWSExports';\nimport { deepFreeze } from '../utils';\nimport { AuthClass } from './Auth';\nimport { ADD_OAUTH_LISTENER } from './constants';\nexport class AmplifyClass {\n constructor() {\n this.oAuthListener = undefined;\n this.resourcesConfig = {};\n this.libraryOptions = {};\n this.Auth = new AuthClass();\n }\n /**\n * Configures Amplify for use with your back-end resources.\n *\n * @remarks\n * This API does not perform any merging of either `resourcesConfig` or `libraryOptions`. The most recently\n * provided values will be used after configuration.\n *\n * @remarks\n * `configure` can be used to specify additional library options where available for supported categories.\n *\n * @param resourceConfig - Back-end resource configuration. Typically provided via the `aws-exports.js` file.\n * @param libraryOptions - Additional options for customizing the behavior of the library.\n */\n configure(resourcesConfig, libraryOptions) {\n let resolvedResourceConfig;\n if (Object.keys(resourcesConfig).some(key => key.startsWith('aws_'))) {\n resolvedResourceConfig = parseAWSExports(resourcesConfig);\n }\n else {\n resolvedResourceConfig = resourcesConfig;\n }\n this.resourcesConfig = resolvedResourceConfig;\n if (libraryOptions) {\n this.libraryOptions = libraryOptions;\n }\n // Make resource config immutable\n this.resourcesConfig = deepFreeze(this.resourcesConfig);\n this.Auth.configure(this.resourcesConfig.Auth, this.libraryOptions.Auth);\n Hub.dispatch('core', {\n event: 'configure',\n data: this.resourcesConfig,\n }, 'Configure', AMPLIFY_SYMBOL);\n this.notifyOAuthListener();\n }\n /**\n * Provides access to the current back-end resource configuration for the Library.\n *\n * @returns Returns the immutable back-end resource configuration.\n */\n getConfig() {\n return this.resourcesConfig;\n }\n /** @internal */\n [ADD_OAUTH_LISTENER](listener) {\n if (this.resourcesConfig.Auth?.Cognito.loginWith?.oauth) {\n // when Amplify has been configured with a valid OAuth config while adding the listener, run it directly\n listener(this.resourcesConfig.Auth?.Cognito);\n }\n else {\n // otherwise register the listener and run it later when Amplify gets configured with a valid oauth config\n this.oAuthListener = listener;\n }\n }\n notifyOAuthListener() {\n if (!this.resourcesConfig.Auth?.Cognito.loginWith?.oauth ||\n !this.oAuthListener) {\n return;\n }\n this.oAuthListener(this.resourcesConfig.Auth?.Cognito);\n // the listener should only be notified once with a valid oauth config\n this.oAuthListener = undefined;\n }\n}\n/**\n * The `Amplify` utility is used to configure the library.\n *\n * @remarks\n * `Amplify` is responsible for orchestrating cross-category communication within the library.\n */\nexport const Amplify = new AmplifyClass();\n","export function isTokenExpired({ expiresAt, clockDrift, }) {\n const currentTime = Date.now();\n return currentTime + clockDrift > expiresAt;\n}\nexport class AuthClass {\n /**\n * Configure Auth category\n *\n * @internal\n *\n * @param authResourcesConfig - Resources configurations required by Auth providers.\n * @param authOptions - Client options used by library\n *\n * @returns void\n */\n configure(authResourcesConfig, authOptions) {\n this.authConfig = authResourcesConfig;\n this.authOptions = authOptions;\n }\n /**\n * Fetch the auth tokens, and the temporary AWS credentials and identity if they are configured. By default it\n * does not refresh the auth tokens or credentials if they are loaded in storage already. You can force a refresh\n * with `{ forceRefresh: true }` input.\n *\n * @param options - Options configuring the fetch behavior.\n *\n * @returns Promise of current auth session {@link AuthSession}.\n */\n async fetchAuthSession(options = {}) {\n let credentialsAndIdentityId;\n let userSub;\n // Get tokens will throw if session cannot be refreshed (network or service error) or return null if not available\n const tokens = await this.getTokens(options);\n if (tokens) {\n userSub = tokens.accessToken?.payload?.sub;\n // getCredentialsAndIdentityId will throw if cannot get credentials (network or service error)\n credentialsAndIdentityId =\n await this.authOptions?.credentialsProvider?.getCredentialsAndIdentityId({\n authConfig: this.authConfig,\n tokens,\n authenticated: true,\n forceRefresh: options.forceRefresh,\n });\n }\n else {\n // getCredentialsAndIdentityId will throw if cannot get credentials (network or service error)\n credentialsAndIdentityId =\n await this.authOptions?.credentialsProvider?.getCredentialsAndIdentityId({\n authConfig: this.authConfig,\n authenticated: false,\n forceRefresh: options.forceRefresh,\n });\n }\n return {\n tokens,\n credentials: credentialsAndIdentityId?.credentials,\n identityId: credentialsAndIdentityId?.identityId,\n userSub,\n };\n }\n async clearCredentials() {\n await this.authOptions?.credentialsProvider?.clearCredentialsAndIdentityId();\n }\n async getTokens(options) {\n return ((await this.authOptions?.tokenProvider?.getTokens(options)) ?? undefined);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { createAssertionFunction } from '../../../errors';\nexport var AuthConfigurationErrorCode;\n(function (AuthConfigurationErrorCode) {\n AuthConfigurationErrorCode[\"AuthTokenConfigException\"] = \"AuthTokenConfigException\";\n AuthConfigurationErrorCode[\"AuthUserPoolAndIdentityPoolException\"] = \"AuthUserPoolAndIdentityPoolException\";\n AuthConfigurationErrorCode[\"AuthUserPoolException\"] = \"AuthUserPoolException\";\n AuthConfigurationErrorCode[\"InvalidIdentityPoolIdException\"] = \"InvalidIdentityPoolIdException\";\n AuthConfigurationErrorCode[\"OAuthNotConfigureException\"] = \"OAuthNotConfigureException\";\n})(AuthConfigurationErrorCode || (AuthConfigurationErrorCode = {}));\nconst authConfigurationErrorMap = {\n [AuthConfigurationErrorCode.AuthTokenConfigException]: {\n message: 'Auth Token Provider not configured.',\n recoverySuggestion: 'Make sure to call Amplify.configure in your app.',\n },\n [AuthConfigurationErrorCode.AuthUserPoolAndIdentityPoolException]: {\n message: 'Auth UserPool or IdentityPool not configured.',\n recoverySuggestion: 'Make sure to call Amplify.configure in your app with UserPoolId and IdentityPoolId.',\n },\n [AuthConfigurationErrorCode.AuthUserPoolException]: {\n message: 'Auth UserPool not configured.',\n recoverySuggestion: 'Make sure to call Amplify.configure in your app with userPoolId and userPoolClientId.',\n },\n [AuthConfigurationErrorCode.InvalidIdentityPoolIdException]: {\n message: 'Invalid identity pool id provided.',\n recoverySuggestion: 'Make sure a valid identityPoolId is given in the config.',\n },\n [AuthConfigurationErrorCode.OAuthNotConfigureException]: {\n message: 'oauth param not configured.',\n recoverySuggestion: 'Make sure to call Amplify.configure with oauth parameter in your app.',\n },\n};\nexport const assert = createAssertionFunction(authConfigurationErrorMap);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { base64Decoder } from '../../../utils/convert';\nimport { AuthConfigurationErrorCode, assert } from './errorHelpers';\nexport function assertTokenProviderConfig(cognitoConfig) {\n let assertionValid = true; // assume valid until otherwise proveed\n if (!cognitoConfig) {\n assertionValid = false;\n }\n else {\n assertionValid =\n !!cognitoConfig.userPoolId && !!cognitoConfig.userPoolClientId;\n }\n assert(assertionValid, AuthConfigurationErrorCode.AuthUserPoolException);\n}\nexport function assertOAuthConfig(cognitoConfig) {\n const validOAuthConfig = !!cognitoConfig?.loginWith?.oauth?.domain &&\n !!cognitoConfig?.loginWith?.oauth?.redirectSignOut &&\n !!cognitoConfig?.loginWith?.oauth?.redirectSignIn &&\n !!cognitoConfig?.loginWith?.oauth?.responseType;\n assert(validOAuthConfig, AuthConfigurationErrorCode.OAuthNotConfigureException);\n}\nexport function assertIdentityPoolIdConfig(cognitoConfig) {\n const validConfig = !!cognitoConfig?.identityPoolId;\n assert(validConfig, AuthConfigurationErrorCode.InvalidIdentityPoolIdException);\n}\nexport function decodeJWT(token) {\n const tokenParts = token.split('.');\n if (tokenParts.length !== 3) {\n throw new Error('Invalid token');\n }\n try {\n const base64WithUrlSafe = tokenParts[1];\n const base64 = base64WithUrlSafe.replace(/-/g, '+').replace(/_/g, '/');\n const jsonStr = decodeURIComponent(base64Decoder\n .convert(base64)\n .split('')\n .map(char => `%${`00${char.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(''));\n const payload = JSON.parse(jsonStr);\n return {\n toString: () => token,\n payload,\n };\n }\n catch (err) {\n throw new Error('Invalid token payload');\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify } from '../Amplify';\nimport { fetchAuthSession as fetchAuthSessionInternal } from './internal/fetchAuthSession';\nexport const fetchAuthSession = (options) => {\n return fetchAuthSessionInternal(Amplify, options);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const fetchAuthSession = (amplify, options) => {\n return amplify.Auth.fetchAuthSession(options);\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyErrorCode } from '../types';\nimport { AmplifyError } from './AmplifyError';\nexport class PlatformNotSupportedError extends AmplifyError {\n constructor() {\n super({\n name: AmplifyErrorCode.PlatformNotSupported,\n message: 'Function not supported on current platform',\n });\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { PlatformNotSupportedError } from '../errors';\n/**\n * @internal\n */\nexport class KeyValueStorage {\n constructor(storage) {\n this.storage = storage;\n }\n /**\n * This is used to set a specific item in storage\n * @param {string} key - the key for the item\n * @param {object} value - the value\n * @returns {string} value that was set\n */\n async setItem(key, value) {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n this.storage.setItem(key, value);\n }\n /**\n * This is used to get a specific key from storage\n * @param {string} key - the key for the item\n * This is used to clear the storage\n * @returns {string} the data item\n */\n async getItem(key) {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n return this.storage.getItem(key);\n }\n /**\n * This is used to remove an item from storage\n * @param {string} key - the key being set\n * @returns {string} value - value that was deleted\n */\n async removeItem(key) {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n this.storage.removeItem(key);\n }\n /**\n * This is used to clear the storage\n * @returns {string} nothing\n */\n async clear() {\n if (!this.storage)\n throw new PlatformNotSupportedError();\n this.storage.clear();\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n/**\n * @internal\n */\nexport class InMemoryStorage {\n constructor() {\n this.storage = new Map();\n }\n get length() {\n return this.storage.size;\n }\n key(index) {\n if (index > this.length - 1) {\n return null;\n }\n return Array.from(this.storage.keys())[index];\n }\n setItem(key, value) {\n this.storage.set(key, value);\n }\n getItem(key) {\n return this.storage.get(key) ?? null;\n }\n removeItem(key) {\n this.storage.delete(key);\n }\n clear() {\n this.storage.clear();\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { DefaultStorage } from './DefaultStorage';\nimport { InMemoryStorage } from './InMemoryStorage';\nimport { KeyValueStorage } from './KeyValueStorage';\nimport { SessionStorage } from './SessionStorage';\nexport { CookieStorage } from './CookieStorage';\nexport const defaultStorage = new DefaultStorage();\nexport const sessionStorage = new SessionStorage();\nexport const sharedInMemoryStorage = new KeyValueStorage(new InMemoryStorage());\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KeyValueStorage } from './KeyValueStorage';\nimport { getLocalStorageWithFallback } from './utils';\n/**\n * @internal\n */\nexport class DefaultStorage extends KeyValueStorage {\n constructor() {\n super(getLocalStorageWithFallback());\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { InMemoryStorage } from './InMemoryStorage';\n/**\n * @internal\n * @returns Either a reference to window.localStorage or an in-memory storage as fallback\n */\nexport const getLocalStorageWithFallback = () => typeof window !== 'undefined' && window.localStorage\n ? window.localStorage\n : new InMemoryStorage();\n/**\n * @internal\n * @returns Either a reference to window.sessionStorage or an in-memory storage as fallback\n */\nexport const getSessionStorageWithFallback = () => typeof window !== 'undefined' && window.sessionStorage\n ? window.sessionStorage\n : new InMemoryStorage();\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { KeyValueStorage } from './KeyValueStorage';\nimport { getSessionStorageWithFallback } from './utils';\n/**\n * @internal\n */\nexport class SessionStorage extends KeyValueStorage {\n constructor() {\n super(getSessionStorageWithFallback());\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport var AmplifyErrorCode;\n(function (AmplifyErrorCode) {\n AmplifyErrorCode[\"NoEndpointId\"] = \"NoEndpointId\";\n AmplifyErrorCode[\"PlatformNotSupported\"] = \"PlatformNotSupported\";\n AmplifyErrorCode[\"Unknown\"] = \"Unknown\";\n})(AmplifyErrorCode || (AmplifyErrorCode = {}));\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nconst AmplifyUrl = URL;\nconst AmplifyUrlSearchParams = URLSearchParams;\nexport { AmplifyUrl, AmplifyUrlSearchParams };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getAtob } from '../../globalHelpers';\nexport const base64Decoder = {\n convert(input) {\n return getAtob()(input);\n },\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { AmplifyError } from '../../errors';\nexport const getCrypto = () => {\n if (typeof window === 'object' && typeof window.crypto === 'object') {\n return window.crypto;\n }\n // Next.js global polyfill\n if (typeof crypto === 'object') {\n return crypto;\n }\n throw new AmplifyError({\n name: 'MissingPolyfill',\n message: 'Cannot resolve the `crypto` function from the environment.',\n });\n};\nexport const getBtoa = () => {\n // browser\n if (typeof window !== 'undefined' && typeof window.btoa === 'function') {\n return window.btoa;\n }\n // Next.js global polyfill\n if (typeof btoa === 'function') {\n return btoa;\n }\n throw new AmplifyError({\n name: 'Base64EncoderError',\n message: 'Cannot resolve the `btoa` function from the environment.',\n });\n};\nexport const getAtob = () => {\n // browser\n if (typeof window !== 'undefined' && typeof window.atob === 'function') {\n return window.atob;\n }\n // Next.js global polyfill\n if (typeof atob === 'function') {\n return atob;\n }\n throw new AmplifyError({\n name: 'Base64EncoderError',\n message: 'Cannot resolve the `atob` function from the environment.',\n });\n};\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport JsCookie from 'js-cookie';\nexport class CookieStorage {\n constructor(data = {}) {\n const { path, domain, expires, sameSite, secure } = data;\n this.domain = domain;\n this.path = path || '/';\n this.expires = Object.prototype.hasOwnProperty.call(data, 'expires')\n ? expires\n : 365;\n this.secure = Object.prototype.hasOwnProperty.call(data, 'secure')\n ? secure\n : true;\n if (Object.prototype.hasOwnProperty.call(data, 'sameSite')) {\n if (!sameSite || !['strict', 'lax', 'none'].includes(sameSite)) {\n throw new Error('The sameSite value of cookieStorage must be \"lax\", \"strict\" or \"none\".');\n }\n if (sameSite === 'none' && !this.secure) {\n throw new Error('sameSite = None requires the Secure attribute in latest browser versions.');\n }\n this.sameSite = sameSite;\n }\n }\n async setItem(key, value) {\n JsCookie.set(key, value, this.getData());\n }\n async getItem(key) {\n const item = JsCookie.get(key);\n return item ?? null;\n }\n async removeItem(key) {\n JsCookie.remove(key, this.getData());\n }\n async clear() {\n const cookie = JsCookie.get();\n const promises = Object.keys(cookie).map(key => this.removeItem(key));\n await Promise.all(promises);\n }\n getData() {\n return {\n path: this.path,\n expires: this.expires,\n domain: this.domain,\n secure: this.secure,\n ...(this.sameSite && { sameSite: this.sameSite }),\n };\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nexport const IdentityIdStorageKeys = {\n identityId: 'identityId',\n};\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger, } from '@aws-amplify/core';\nimport { assertIdentityPoolIdConfig } from '@aws-amplify/core/internals/utils';\nimport { getAuthStorageKeys } from '../tokenProvider/TokenStore';\nimport { IdentityIdStorageKeys } from './types';\nconst logger = new ConsoleLogger('DefaultIdentityIdStore');\nexport class DefaultIdentityIdStore {\n setAuthConfig(authConfigParam) {\n assertIdentityPoolIdConfig(authConfigParam.Cognito);\n this.authConfig = authConfigParam;\n this._authKeys = createKeysForAuthStorage('Cognito', authConfigParam.Cognito.identityPoolId);\n }\n constructor(keyValueStorage) {\n this._authKeys = {};\n this.keyValueStorage = keyValueStorage;\n }\n async loadIdentityId() {\n assertIdentityPoolIdConfig(this.authConfig?.Cognito);\n try {\n if (this._primaryIdentityId) {\n return {\n id: this._primaryIdentityId,\n type: 'primary',\n };\n }\n else {\n const storedIdentityId = await this.keyValueStorage.getItem(this._authKeys.identityId);\n if (storedIdentityId) {\n return {\n id: storedIdentityId,\n type: 'guest',\n };\n }\n return null;\n }\n }\n catch (err) {\n logger.log('Error getting stored IdentityId.', err);\n return null;\n }\n }\n async storeIdentityId(identity) {\n assertIdentityPoolIdConfig(this.authConfig?.Cognito);\n if (identity.type === 'guest') {\n this.keyValueStorage.setItem(this._authKeys.identityId, identity.id);\n // Clear in-memory storage of primary identityId\n this._primaryIdentityId = undefined;\n }\n else {\n this._primaryIdentityId = identity.id;\n // Clear locally stored guest id\n this.keyValueStorage.removeItem(this._authKeys.identityId);\n }\n }\n async clearIdentityId() {\n this._primaryIdentityId = undefined;\n await this.keyValueStorage.removeItem(this._authKeys.identityId);\n }\n}\nconst createKeysForAuthStorage = (provider, identifier) => {\n return getAuthStorageKeys(IdentityIdStorageKeys)(`com.amplify.${provider}`, identifier);\n};\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { getDnsSuffix, parseJsonError, unauthenticatedHandler, } from '../../clients';\nimport { composeTransferHandler } from '../../clients/internal/composeTransferHandler';\nimport { getRetryDecider, jitteredBackoff, } from '../../clients/middleware/retry';\nimport { getAmplifyUserAgent } from '../../Platform';\nimport { observeFrameworkChanges } from '../../Platform/detectFramework';\nimport { AmplifyUrl } from '../../utils/amplifyUrl';\n/**\n * The service name used to sign requests if the API requires authentication.\n */\nconst SERVICE_NAME = 'cognito-identity';\n/**\n * The endpoint resolver function that returns the endpoint URL for a given region.\n */\nconst endpointResolver = ({ region }) => ({\n url: new AmplifyUrl(`https://cognito-identity.${region}.${getDnsSuffix(region)}`),\n});\n/**\n * A Cognito Identity-specific middleware that disables caching for all requests.\n */\nconst disableCacheMiddlewareFactory = () => next => async function disableCacheMiddleware(request) {\n request.headers['cache-control'] = 'no-store';\n return next(request);\n};\n/**\n * A Cognito Identity-specific transfer handler that does NOT sign requests, and\n * disables caching.\n *\n * @internal\n */\nexport const cognitoIdentityTransferHandler = composeTransferHandler(unauthenticatedHandler, [disableCacheMiddlewareFactory]);\n/**\n * @internal\n */\nexport const defaultConfig = {\n service: SERVICE_NAME,\n endpointResolver,\n retryDecider: getRetryDecider(parseJsonError),\n computeDelay: jitteredBackoff,\n userAgentValue: getAmplifyUserAgent(),\n cache: 'no-store',\n};\nobserveFrameworkChanges(() => {\n defaultConfig.userAgentValue = getAmplifyUserAgent();\n});\n/**\n * @internal\n */\nexport const getSharedHeaders = (operation) => ({\n 'content-type': 'application/x-amz-json-1.1',\n 'x-amz-target': `AWSCognitoIdentityService.${operation}`,\n});\n/**\n * @internal\n */\nexport const buildHttpRpcRequest = ({ url }, headers, body) => ({\n headers,\n url,\n body,\n method: 'POST',\n});\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients';\nimport { composeServiceApi } from '../../clients/internal';\nimport { buildHttpRpcRequest, cognitoIdentityTransferHandler, defaultConfig, getSharedHeaders, } from './base';\nconst getCredentialsForIdentitySerializer = (input, endpoint) => {\n const headers = getSharedHeaders('GetCredentialsForIdentity');\n const body = JSON.stringify(input);\n return buildHttpRpcRequest(endpoint, headers, body);\n};\nconst getCredentialsForIdentityDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseJsonError(response);\n throw error;\n }\n else {\n const body = await parseJsonBody(response);\n return {\n IdentityId: body.IdentityId,\n Credentials: deserializeCredentials(body.Credentials),\n $metadata: parseMetadata(response),\n };\n }\n};\nconst deserializeCredentials = ({ AccessKeyId, SecretKey, SessionToken, Expiration, } = {}) => {\n return {\n AccessKeyId,\n SecretKey,\n SessionToken,\n Expiration: Expiration && new Date(Expiration * 1000),\n };\n};\n/**\n * @internal\n */\nexport const getCredentialsForIdentity = composeServiceApi(cognitoIdentityTransferHandler, getCredentialsForIdentitySerializer, getCredentialsForIdentityDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { parseJsonBody, parseJsonError, parseMetadata, } from '../../clients';\nimport { composeServiceApi } from '../../clients/internal';\nimport { buildHttpRpcRequest, cognitoIdentityTransferHandler, defaultConfig, getSharedHeaders, } from './base';\nconst getIdSerializer = (input, endpoint) => {\n const headers = getSharedHeaders('GetId');\n const body = JSON.stringify(input);\n return buildHttpRpcRequest(endpoint, headers, body);\n};\nconst getIdDeserializer = async (response) => {\n if (response.statusCode >= 300) {\n const error = await parseJsonError(response);\n throw error;\n }\n else {\n const body = await parseJsonBody(response);\n return {\n IdentityId: body.IdentityId,\n $metadata: parseMetadata(response),\n };\n }\n};\n/**\n * @internal\n */\nexport const getId = composeServiceApi(cognitoIdentityTransferHandler, getIdSerializer, getIdDeserializer, defaultConfig);\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { decodeJWT } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nexport function formLoginsMap(idToken) {\n const issuer = decodeJWT(idToken).payload.iss;\n const res = {};\n if (!issuer) {\n throw new AuthError({\n name: 'InvalidIdTokenException',\n message: 'Invalid Idtoken.',\n });\n }\n const domainName = issuer.replace(/(^\\w+:|^)\\/\\//, '');\n res[domainName] = idToken;\n return res;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger, getId } from '@aws-amplify/core';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getRegionFromIdentityPoolId } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { formLoginsMap } from './utils';\nconst logger = new ConsoleLogger('CognitoIdentityIdProvider');\n/**\n * Provides a Cognito identityId\n *\n * @param tokens - The AuthTokens received after SignIn\n * @returns string\n * @throws configuration exceptions: {@link InvalidIdentityPoolIdException }\n * - Auth errors that may arise from misconfiguration.\n * @throws service exceptions: {@link GetIdException }\n */\nexport async function cognitoIdentityIdProvider({ tokens, authConfig, identityIdStore, }) {\n identityIdStore.setAuthConfig({ Cognito: authConfig });\n // will return null only if there is no identityId cached or if there is an error retrieving it\n let identityId = await identityIdStore.loadIdentityId();\n // Tokens are available so return primary identityId\n if (tokens) {\n // If there is existing primary identityId in-memory return that\n if (identityId && identityId.type === 'primary') {\n return identityId.id;\n }\n else {\n const logins = tokens.idToken\n ? formLoginsMap(tokens.idToken.toString())\n : {};\n const generatedIdentityId = await generateIdentityId(logins, authConfig);\n if (identityId && identityId.id === generatedIdentityId) {\n logger.debug(`The guest identity ${identityId.id} has become the primary identity.`);\n }\n identityId = {\n id: generatedIdentityId,\n type: 'primary',\n };\n }\n }\n else {\n // If there is existing guest identityId cached return that\n if (identityId && identityId.type === 'guest') {\n return identityId.id;\n }\n else {\n identityId = {\n id: await generateIdentityId({}, authConfig),\n type: 'guest',\n };\n }\n }\n // Store in-memory or local storage depending on guest or primary identityId\n identityIdStore.storeIdentityId(identityId);\n return identityId.id;\n}\nasync function generateIdentityId(logins, authConfig) {\n const identityPoolId = authConfig?.identityPoolId;\n const region = getRegionFromIdentityPoolId(identityPoolId);\n // IdentityId is absent so get it using IdentityPoolId with Cognito's GetId API\n const idResult = \n // for a first-time user, this will return a brand new identity\n // for a returning user, this will retrieve the previous identity assocaited with the logins\n (await getId({\n region,\n }, {\n IdentityPoolId: identityPoolId,\n Logins: logins,\n })).IdentityId;\n if (!idResult) {\n throw new AuthError({\n name: 'GetIdResponseException',\n message: 'Received undefined response from getId operation',\n recoverySuggestion: 'Make sure to pass a valid identityPoolId in the configuration.',\n });\n }\n return idResult;\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { ConsoleLogger, getCredentialsForIdentity, } from '@aws-amplify/core';\nimport { assertIdentityPoolIdConfig, } from '@aws-amplify/core/internals/utils';\nimport { AuthError } from '../../../errors/AuthError';\nimport { getRegionFromIdentityPoolId } from '../utils/clients/CognitoIdentityProvider/utils';\nimport { assertIdTokenInAuthTokens } from '../utils/types';\nimport { cognitoIdentityIdProvider } from './IdentityIdProvider';\nimport { formLoginsMap } from './utils';\nconst logger = new ConsoleLogger('CognitoCredentialsProvider');\nconst CREDENTIALS_TTL = 50 * 60 * 1000; // 50 min, can be modified on config if required in the future\nexport class CognitoAWSCredentialsAndIdentityIdProvider {\n constructor(identityIdStore) {\n this._nextCredentialsRefresh = 0;\n this._identityIdStore = identityIdStore;\n }\n async clearCredentialsAndIdentityId() {\n logger.debug('Clearing out credentials and identityId');\n this._credentialsAndIdentityId = undefined;\n await this._identityIdStore.clearIdentityId();\n }\n async clearCredentials() {\n logger.debug('Clearing out in-memory credentials');\n this._credentialsAndIdentityId = undefined;\n }\n async getCredentialsAndIdentityId(getCredentialsOptions) {\n const isAuthenticated = getCredentialsOptions.authenticated;\n const { tokens } = getCredentialsOptions;\n const { authConfig } = getCredentialsOptions;\n try {\n assertIdentityPoolIdConfig(authConfig?.Cognito);\n }\n catch {\n // No identity pool configured, skipping\n return;\n }\n if (!isAuthenticated && !authConfig.Cognito.allowGuestAccess) {\n // TODO(V6): return partial result like Native platforms\n return;\n }\n const { forceRefresh } = getCredentialsOptions;\n const tokenHasChanged = this.hasTokenChanged(tokens);\n const identityId = await cognitoIdentityIdProvider({\n tokens,\n authConfig: authConfig.Cognito,\n identityIdStore: this._identityIdStore,\n });\n // Clear cached credentials when forceRefresh is true OR the cache token has changed\n if (forceRefresh || tokenHasChanged) {\n this.clearCredentials();\n }\n if (!isAuthenticated) {\n return this.getGuestCredentials(identityId, authConfig.Cognito);\n }\n else {\n assertIdTokenInAuthTokens(tokens);\n return this.credsForOIDCTokens(authConfig.Cognito, tokens, identityId);\n }\n }\n async getGuestCredentials(identityId, authConfig) {\n // Return existing in-memory cached credentials only if it exists, is not past it's lifetime and is unauthenticated credentials\n if (this._credentialsAndIdentityId &&\n !this.isPastTTL() &&\n this._credentialsAndIdentityId.isAuthenticatedCreds === false) {\n logger.info('returning stored credentials as they neither past TTL nor expired.');\n return this._credentialsAndIdentityId;\n }\n // Clear to discard if any authenticated credentials are set and start with a clean slate\n this.clearCredentials();\n const region = getRegionFromIdentityPoolId(authConfig.identityPoolId);\n // use identityId to obtain guest credentials\n // save credentials in-memory\n // No logins params should be passed for guest creds:\n // https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html\n const clientResult = await getCredentialsForIdentity({ region }, {\n IdentityId: identityId,\n });\n if (clientResult.Credentials &&\n clientResult.Credentials.AccessKeyId &&\n clientResult.Credentials.SecretKey) {\n this._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n const res = {\n credentials: {\n accessKeyId: clientResult.Credentials.AccessKeyId,\n secretAccessKey: clientResult.Credentials.SecretKey,\n sessionToken: clientResult.Credentials.SessionToken,\n expiration: clientResult.Credentials.Expiration,\n },\n identityId,\n };\n const identityIdRes = clientResult.IdentityId;\n if (identityIdRes) {\n res.identityId = identityIdRes;\n this._identityIdStore.storeIdentityId({\n id: identityIdRes,\n type: 'guest',\n });\n }\n this._credentialsAndIdentityId = {\n ...res,\n isAuthenticatedCreds: false,\n };\n return res;\n }\n else {\n throw new AuthError({\n name: 'CredentialsNotFoundException',\n message: `Cognito did not respond with either Credentials, AccessKeyId or SecretKey.`,\n });\n }\n }\n async credsForOIDCTokens(authConfig, authTokens, identityId) {\n if (this._credentialsAndIdentityId &&\n !this.isPastTTL() &&\n this._credentialsAndIdentityId.isAuthenticatedCreds === true) {\n logger.debug('returning stored credentials as they neither past TTL nor expired.');\n return this._credentialsAndIdentityId;\n }\n // Clear to discard if any unauthenticated credentials are set and start with a clean slate\n this.clearCredentials();\n const logins = authTokens.idToken\n ? formLoginsMap(authTokens.idToken.toString())\n : {};\n const region = getRegionFromIdentityPoolId(authConfig.identityPoolId);\n const clientResult = await getCredentialsForIdentity({ region }, {\n IdentityId: identityId,\n Logins: logins,\n });\n if (clientResult.Credentials &&\n clientResult.Credentials.AccessKeyId &&\n clientResult.Credentials.SecretKey) {\n const res = {\n credentials: {\n accessKeyId: clientResult.Credentials.AccessKeyId,\n secretAccessKey: clientResult.Credentials.SecretKey,\n sessionToken: clientResult.Credentials.SessionToken,\n expiration: clientResult.Credentials.Expiration,\n },\n identityId,\n };\n // Store the credentials in-memory along with the expiration\n this._credentialsAndIdentityId = {\n ...res,\n isAuthenticatedCreds: true,\n associatedIdToken: authTokens.idToken?.toString(),\n };\n this._nextCredentialsRefresh = new Date().getTime() + CREDENTIALS_TTL;\n const identityIdRes = clientResult.IdentityId;\n if (identityIdRes) {\n res.identityId = identityIdRes;\n this._identityIdStore.storeIdentityId({\n id: identityIdRes,\n type: 'primary',\n });\n }\n return res;\n }\n else {\n throw new AuthError({\n name: 'CredentialsException',\n message: `Cognito did not respond with either Credentials, AccessKeyId or SecretKey.`,\n });\n }\n }\n isPastTTL() {\n return this._nextCredentialsRefresh === undefined\n ? true\n : this._nextCredentialsRefresh <= Date.now();\n }\n hasTokenChanged(tokens) {\n return (!!tokens &&\n !!this._credentialsAndIdentityId?.associatedIdToken &&\n tokens.idToken?.toString() !==\n this._credentialsAndIdentityId.associatedIdToken);\n }\n}\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { defaultStorage } from '@aws-amplify/core';\nimport { DefaultIdentityIdStore } from './IdentityIdStore';\nimport { CognitoAWSCredentialsAndIdentityIdProvider } from './credentialsProvider';\n/**\n * Cognito specific implmentation of the CredentialsProvider interface\n * that manages setting and getting of AWS Credentials.\n *\n * @throws configuration expections: {@link InvalidIdentityPoolIdException }\n * - Auth errors that may arise from misconfiguration.\n * @throws service expections: {@link GetCredentialsForIdentityException}, {@link GetIdException}\n *\n */\nexport const cognitoCredentialsProvider = new CognitoAWSCredentialsAndIdentityIdProvider(new DefaultIdentityIdStore(defaultStorage));\nexport { CognitoAWSCredentialsAndIdentityIdProvider, DefaultIdentityIdStore };\n","// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { Amplify, CookieStorage, defaultStorage, } from '@aws-amplify/core';\nimport { parseAWSExports, } from '@aws-amplify/core/internals/utils';\nimport { cognitoCredentialsProvider, cognitoUserPoolsTokenProvider, } from './auth/cognito';\nexport const DefaultAmplify = {\n /**\n * Configures Amplify with the {@link resourceConfig} and {@link libraryOptions}.\n *\n * @param resourceConfig The {@link ResourcesConfig} object that is typically imported from the\n * `amplifyconfiguration.json` file. It can also be an object literal created inline when calling `Amplify.configure`.\n * @param libraryOptions The {@link LibraryOptions} additional options for the library.\n *\n * @example\n * import config from './amplifyconfiguration.json';\n *\n * Amplify.configure(config);\n */\n configure(resourceConfig, libraryOptions) {\n let resolvedResourceConfig;\n if (Object.keys(resourceConfig).some(key => key.startsWith('aws_'))) {\n resolvedResourceConfig = parseAWSExports(resourceConfig);\n }\n else {\n resolvedResourceConfig = resourceConfig;\n }\n // If no Auth config is provided, no special handling will be required, configure as is.\n // Otherwise, we can assume an Auth config is provided from here on.\n if (!resolvedResourceConfig.Auth) {\n Amplify.configure(resolvedResourceConfig, libraryOptions);\n return;\n }\n // If Auth options are provided, always just configure as is.\n // Otherwise, we can assume no Auth libraryOptions were provided from here on.\n if (libraryOptions?.Auth) {\n Amplify.configure(resolvedResourceConfig, libraryOptions);\n return;\n }\n // If no Auth libraryOptions were previously configured, then always add default providers.\n if (!Amplify.libraryOptions.Auth) {\n cognitoUserPoolsTokenProvider.setAuthConfig(resolvedResourceConfig.Auth);\n cognitoUserPoolsTokenProvider.setKeyValueStorage(\n // TODO: allow configure with a public interface\n libraryOptions?.ssr\n ? new CookieStorage({ sameSite: 'lax' })\n : defaultStorage);\n Amplify.configure(resolvedResourceConfig, {\n ...libraryOptions,\n Auth: {\n tokenProvider: cognitoUserPoolsTokenProvider,\n credentialsProvider: cognitoCredentialsProvider,\n },\n });\n return;\n }\n // At this point, Auth libraryOptions would have been previously configured and no overriding\n // Auth options were given, so we should preserve the currently configured Auth libraryOptions.\n if (libraryOptions) {\n // If ssr is provided through libraryOptions, we should respect the intentional reconfiguration.\n if (libraryOptions.ssr !== undefined) {\n cognitoUserPoolsTokenProvider.setKeyValueStorage(\n // TODO: allow configure with a public interface\n libraryOptions.ssr\n ? new CookieStorage({ sameSite: 'lax' })\n : defaultStorage);\n }\n Amplify.configure(resolvedResourceConfig, {\n Auth: Amplify.libraryOptions.Auth,\n ...libraryOptions,\n });\n return;\n }\n // Finally, if there were no libraryOptions given at all, we should simply not touch the currently\n // configured libraryOptions.\n Amplify.configure(resolvedResourceConfig);\n },\n /**\n * Returns the {@link ResourcesConfig} object passed in as the `resourceConfig` parameter when calling\n * `Amplify.configure`.\n *\n * @returns An {@link ResourcesConfig} object.\n */\n getConfig() {\n return Amplify.getConfig();\n },\n};\n","'use strict';\n\nexport default function bind(fn, thisArg) {\n return function wrap() {\n return fn.apply(thisArg, arguments);\n };\n}\n","'use strict';\n\nimport bind from './helpers/bind.js';\n\n// utils is a library of generic helper functions non-specific to axios\n\nconst {toString} = Object.prototype;\nconst {getPrototypeOf} = Object;\n\nconst kindOf = (cache => thing => {\n const str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n})(Object.create(null));\n\nconst kindOfTest = (type) => {\n type = type.toLowerCase();\n return (thing) => kindOf(thing) === type\n}\n\nconst typeOfTest = type => thing => typeof thing === type;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n *\n * @returns {boolean} True if value is an Array, otherwise false\n */\nconst {isArray} = Array;\n\n/**\n * Determine if a value is undefined\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nconst isUndefined = typeOfTest('undefined');\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && isFunction(val.constructor.isBuffer) && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nconst isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n let result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a String, otherwise false\n */\nconst isString = typeOfTest('string');\n\n/**\n * Determine if a value is a Function\n *\n * @param {*} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nconst isFunction = typeOfTest('function');\n\n/**\n * Determine if a value is a Number\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Number, otherwise false\n */\nconst isNumber = typeOfTest('number');\n\n/**\n * Determine if a value is an Object\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an Object, otherwise false\n */\nconst isObject = (thing) => thing !== null && typeof thing === 'object';\n\n/**\n * Determine if a value is a Boolean\n *\n * @param {*} thing The value to test\n * @returns {boolean} True if value is a Boolean, otherwise false\n */\nconst isBoolean = thing => thing === true || thing === false;\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a plain Object, otherwise false\n */\nconst isPlainObject = (val) => {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n const prototype = getPrototypeOf(val);\n return (prototype === null || prototype === Object.prototype || Object.getPrototypeOf(prototype) === null) && !(Symbol.toStringTag in val) && !(Symbol.iterator in val);\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Date, otherwise false\n */\nconst isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nconst isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a File, otherwise false\n */\nconst isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Stream\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nconst isStream = (val) => isObject(val) && isFunction(val.pipe);\n\n/**\n * Determine if a value is a FormData\n *\n * @param {*} thing The value to test\n *\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nconst isFormData = (thing) => {\n let kind;\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) || (\n isFunction(thing.append) && (\n (kind = kindOf(thing)) === 'formdata' ||\n // detect form-data instance\n (kind === 'object' && isFunction(thing.toString) && thing.toString() === '[object FormData]')\n )\n )\n )\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nconst isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n *\n * @returns {String} The String freed of excess whitespace\n */\nconst trim = (str) => str.trim ?\n str.trim() : str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n *\n * @param {Boolean} [allOwnKeys = false]\n * @returns {any}\n */\nfunction forEach(obj, fn, {allOwnKeys = false} = {}) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n let i;\n let l;\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n const keys = allOwnKeys ? Object.getOwnPropertyNames(obj) : Object.keys(obj);\n const len = keys.length;\n let key;\n\n for (i = 0; i < len; i++) {\n key = keys[i];\n fn.call(null, obj[key], key, obj);\n }\n }\n}\n\nfunction findKey(obj, key) {\n key = key.toLowerCase();\n const keys = Object.keys(obj);\n let i = keys.length;\n let _key;\n while (i-- > 0) {\n _key = keys[i];\n if (key === _key.toLowerCase()) {\n return _key;\n }\n }\n return null;\n}\n\nconst _global = (() => {\n /*eslint no-undef:0*/\n if (typeof globalThis !== \"undefined\") return globalThis;\n return typeof self !== \"undefined\" ? self : (typeof window !== 'undefined' ? window : global)\n})();\n\nconst isContextDefined = (context) => !isUndefined(context) && context !== _global;\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n *\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n const {caseless} = isContextDefined(this) && this || {};\n const result = {};\n const assignValue = (val, key) => {\n const targetKey = caseless && findKey(result, key) || key;\n if (isPlainObject(result[targetKey]) && isPlainObject(val)) {\n result[targetKey] = merge(result[targetKey], val);\n } else if (isPlainObject(val)) {\n result[targetKey] = merge({}, val);\n } else if (isArray(val)) {\n result[targetKey] = val.slice();\n } else {\n result[targetKey] = val;\n }\n }\n\n for (let i = 0, l = arguments.length; i < l; i++) {\n arguments[i] && forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n *\n * @param {Boolean} [allOwnKeys]\n * @returns {Object} The resulting value of object a\n */\nconst extend = (a, b, thisArg, {allOwnKeys}= {}) => {\n forEach(b, (val, key) => {\n if (thisArg && isFunction(val)) {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n }, {allOwnKeys});\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n *\n * @returns {string} content value without BOM\n */\nconst stripBOM = (content) => {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n *\n * @returns {void}\n */\nconst inherits = (constructor, superConstructor, props, descriptors) => {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n Object.defineProperty(constructor, 'super', {\n value: superConstructor.prototype\n });\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function|Boolean} [filter]\n * @param {Function} [propFilter]\n *\n * @returns {Object}\n */\nconst toFlatObject = (sourceObj, destObj, filter, propFilter) => {\n let props;\n let i;\n let prop;\n const merged = {};\n\n destObj = destObj || {};\n // eslint-disable-next-line no-eq-null,eqeqeq\n if (sourceObj == null) return destObj;\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if ((!propFilter || propFilter(prop, sourceObj, destObj)) && !merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = filter !== false && getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/**\n * Determines whether a string ends with the characters of a specified string\n *\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n *\n * @returns {boolean}\n */\nconst endsWith = (str, searchString, position) => {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n const lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object or null if failed\n *\n * @param {*} [thing]\n *\n * @returns {?Array}\n */\nconst toArray = (thing) => {\n if (!thing) return null;\n if (isArray(thing)) return thing;\n let i = thing.length;\n if (!isNumber(i)) return null;\n const arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n/**\n * Checking if the Uint8Array exists and if it does, it returns a function that checks if the\n * thing passed in is an instance of Uint8Array\n *\n * @param {TypedArray}\n *\n * @returns {Array}\n */\n// eslint-disable-next-line func-names\nconst isTypedArray = (TypedArray => {\n // eslint-disable-next-line func-names\n return thing => {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && getPrototypeOf(Uint8Array));\n\n/**\n * For each entry in the object, call the function with the key and value.\n *\n * @param {Object} obj - The object to iterate over.\n * @param {Function} fn - The function to call for each entry.\n *\n * @returns {void}\n */\nconst forEachEntry = (obj, fn) => {\n const generator = obj && obj[Symbol.iterator];\n\n const iterator = generator.call(obj);\n\n let result;\n\n while ((result = iterator.next()) && !result.done) {\n const pair = result.value;\n fn.call(obj, pair[0], pair[1]);\n }\n}\n\n/**\n * It takes a regular expression and a string, and returns an array of all the matches\n *\n * @param {string} regExp - The regular expression to match against.\n * @param {string} str - The string to search.\n *\n * @returns {Array}\n */\nconst matchAll = (regExp, str) => {\n let matches;\n const arr = [];\n\n while ((matches = regExp.exec(str)) !== null) {\n arr.push(matches);\n }\n\n return arr;\n}\n\n/* Checking if the kindOfTest function returns true when passed an HTMLFormElement. */\nconst isHTMLForm = kindOfTest('HTMLFormElement');\n\nconst toCamelCase = str => {\n return str.toLowerCase().replace(/[-_\\s]([a-z\\d])(\\w*)/g,\n function replacer(m, p1, p2) {\n return p1.toUpperCase() + p2;\n }\n );\n};\n\n/* Creating a function that will check if an object has a property. */\nconst hasOwnProperty = (({hasOwnProperty}) => (obj, prop) => hasOwnProperty.call(obj, prop))(Object.prototype);\n\n/**\n * Determine if a value is a RegExp object\n *\n * @param {*} val The value to test\n *\n * @returns {boolean} True if value is a RegExp object, otherwise false\n */\nconst isRegExp = kindOfTest('RegExp');\n\nconst reduceDescriptors = (obj, reducer) => {\n const descriptors = Object.getOwnPropertyDescriptors(obj);\n const reducedDescriptors = {};\n\n forEach(descriptors, (descriptor, name) => {\n let ret;\n if ((ret = reducer(descriptor, name, obj)) !== false) {\n reducedDescriptors[name] = ret || descriptor;\n }\n });\n\n Object.defineProperties(obj, reducedDescriptors);\n}\n\n/**\n * Makes all methods read-only\n * @param {Object} obj\n */\n\nconst freezeMethods = (obj) => {\n reduceDescriptors(obj, (descriptor, name) => {\n // skip restricted props in strict mode\n if (isFunction(obj) && ['arguments', 'caller', 'callee'].indexOf(name) !== -1) {\n return false;\n }\n\n const value = obj[name];\n\n if (!isFunction(value)) return;\n\n descriptor.enumerable = false;\n\n if ('writable' in descriptor) {\n descriptor.writable = false;\n return;\n }\n\n if (!descriptor.set) {\n descriptor.set = () => {\n throw Error('Can not rewrite read-only method \\'' + name + '\\'');\n };\n }\n });\n}\n\nconst toObjectSet = (arrayOrString, delimiter) => {\n const obj = {};\n\n const define = (arr) => {\n arr.forEach(value => {\n obj[value] = true;\n });\n }\n\n isArray(arrayOrString) ? define(arrayOrString) : define(String(arrayOrString).split(delimiter));\n\n return obj;\n}\n\nconst noop = () => {}\n\nconst toFiniteNumber = (value, defaultValue) => {\n value = +value;\n return Number.isFinite(value) ? value : defaultValue;\n}\n\nconst ALPHA = 'abcdefghijklmnopqrstuvwxyz'\n\nconst DIGIT = '0123456789';\n\nconst ALPHABET = {\n DIGIT,\n ALPHA,\n ALPHA_DIGIT: ALPHA + ALPHA.toUpperCase() + DIGIT\n}\n\nconst generateString = (size = 16, alphabet = ALPHABET.ALPHA_DIGIT) => {\n let str = '';\n const {length} = alphabet;\n while (size--) {\n str += alphabet[Math.random() * length|0]\n }\n\n return str;\n}\n\n/**\n * If the thing is a FormData object, return true, otherwise return false.\n *\n * @param {unknown} thing - The thing to check.\n *\n * @returns {boolean}\n */\nfunction isSpecCompliantForm(thing) {\n return !!(thing && isFunction(thing.append) && thing[Symbol.toStringTag] === 'FormData' && thing[Symbol.iterator]);\n}\n\nconst toJSONObject = (obj) => {\n const stack = new Array(10);\n\n const visit = (source, i) => {\n\n if (isObject(source)) {\n if (stack.indexOf(source) >= 0) {\n return;\n }\n\n if(!('toJSON' in source)) {\n stack[i] = source;\n const target = isArray(source) ? [] : {};\n\n forEach(source, (value, key) => {\n const reducedValue = visit(value, i + 1);\n !isUndefined(reducedValue) && (target[key] = reducedValue);\n });\n\n stack[i] = undefined;\n\n return target;\n }\n }\n\n return source;\n }\n\n return visit(obj, 0);\n}\n\nconst isAsyncFn = kindOfTest('AsyncFunction');\n\nconst isThenable = (thing) =>\n thing && (isObject(thing) || isFunction(thing)) && isFunction(thing.then) && isFunction(thing.catch);\n\nexport default {\n isArray,\n isArrayBuffer,\n isBuffer,\n isFormData,\n isArrayBufferView,\n isString,\n isNumber,\n isBoolean,\n isObject,\n isPlainObject,\n isUndefined,\n isDate,\n isFile,\n isBlob,\n isRegExp,\n isFunction,\n isStream,\n isURLSearchParams,\n isTypedArray,\n isFileList,\n forEach,\n merge,\n extend,\n trim,\n stripBOM,\n inherits,\n toFlatObject,\n kindOf,\n kindOfTest,\n endsWith,\n toArray,\n forEachEntry,\n matchAll,\n isHTMLForm,\n hasOwnProperty,\n hasOwnProp: hasOwnProperty, // an alias to avoid ESLint no-prototype-builtins detection\n reduceDescriptors,\n freezeMethods,\n toObjectSet,\n toCamelCase,\n noop,\n toFiniteNumber,\n findKey,\n global: _global,\n isContextDefined,\n ALPHABET,\n generateString,\n isSpecCompliantForm,\n toJSONObject,\n isAsyncFn,\n isThenable\n};\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n *\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, this.constructor);\n } else {\n this.stack = (new Error()).stack;\n }\n\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: utils.toJSONObject(this.config),\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nconst prototype = AxiosError.prototype;\nconst descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED',\n 'ERR_NOT_SUPPORT',\n 'ERR_INVALID_URL'\n// eslint-disable-next-line func-names\n].forEach(code => {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = (error, code, config, request, response, customProps) => {\n const axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n }, prop => {\n return prop !== 'isAxiosError';\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.cause = error;\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nexport default AxiosError;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\n// temporary hotfix to avoid circular references until AxiosURLSearchParams is refactored\nimport PlatformFormData from '../platform/node/classes/FormData.js';\n\n/**\n * Determines if the given thing is a array or js object.\n *\n * @param {string} thing - The object or array to be visited.\n *\n * @returns {boolean}\n */\nfunction isVisitable(thing) {\n return utils.isPlainObject(thing) || utils.isArray(thing);\n}\n\n/**\n * It removes the brackets from the end of a string\n *\n * @param {string} key - The key of the parameter.\n *\n * @returns {string} the key without the brackets.\n */\nfunction removeBrackets(key) {\n return utils.endsWith(key, '[]') ? key.slice(0, -2) : key;\n}\n\n/**\n * It takes a path, a key, and a boolean, and returns a string\n *\n * @param {string} path - The path to the current key.\n * @param {string} key - The key of the current object being iterated over.\n * @param {string} dots - If true, the key will be rendered with dots instead of brackets.\n *\n * @returns {string} The path to the current key.\n */\nfunction renderKey(path, key, dots) {\n if (!path) return key;\n return path.concat(key).map(function each(token, i) {\n // eslint-disable-next-line no-param-reassign\n token = removeBrackets(token);\n return !dots && i ? '[' + token + ']' : token;\n }).join(dots ? '.' : '');\n}\n\n/**\n * If the array is an array and none of its elements are visitable, then it's a flat array.\n *\n * @param {Array} arr - The array to check\n *\n * @returns {boolean}\n */\nfunction isFlatArray(arr) {\n return utils.isArray(arr) && !arr.some(isVisitable);\n}\n\nconst predicates = utils.toFlatObject(utils, {}, null, function filter(prop) {\n return /^is[A-Z]/.test(prop);\n});\n\n/**\n * Convert a data object to FormData\n *\n * @param {Object} obj\n * @param {?Object} [formData]\n * @param {?Object} [options]\n * @param {Function} [options.visitor]\n * @param {Boolean} [options.metaTokens = true]\n * @param {Boolean} [options.dots = false]\n * @param {?Boolean} [options.indexes = false]\n *\n * @returns {Object}\n **/\n\n/**\n * It converts an object into a FormData object\n *\n * @param {Object} obj - The object to convert to form data.\n * @param {string} formData - The FormData object to append to.\n * @param {Object} options\n *\n * @returns\n */\nfunction toFormData(obj, formData, options) {\n if (!utils.isObject(obj)) {\n throw new TypeError('target must be an object');\n }\n\n // eslint-disable-next-line no-param-reassign\n formData = formData || new (PlatformFormData || FormData)();\n\n // eslint-disable-next-line no-param-reassign\n options = utils.toFlatObject(options, {\n metaTokens: true,\n dots: false,\n indexes: false\n }, false, function defined(option, source) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n return !utils.isUndefined(source[option]);\n });\n\n const metaTokens = options.metaTokens;\n // eslint-disable-next-line no-use-before-define\n const visitor = options.visitor || defaultVisitor;\n const dots = options.dots;\n const indexes = options.indexes;\n const _Blob = options.Blob || typeof Blob !== 'undefined' && Blob;\n const useBlob = _Blob && utils.isSpecCompliantForm(formData);\n\n if (!utils.isFunction(visitor)) {\n throw new TypeError('visitor must be a function');\n }\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (!useBlob && utils.isBlob(value)) {\n throw new AxiosError('Blob is not supported. Use a Buffer instead.');\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return useBlob && typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n /**\n * Default visitor.\n *\n * @param {*} value\n * @param {String|Number} key\n * @param {Array} path\n * @this {FormData}\n *\n * @returns {boolean} return true to visit the each prop of the value recursively\n */\n function defaultVisitor(value, key, path) {\n let arr = value;\n\n if (value && !path && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n key = metaTokens ? key : key.slice(0, -2);\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (\n (utils.isArray(value) && isFlatArray(value)) ||\n ((utils.isFileList(value) || utils.endsWith(key, '[]')) && (arr = utils.toArray(value))\n )) {\n // eslint-disable-next-line no-param-reassign\n key = removeBrackets(key);\n\n arr.forEach(function each(el, index) {\n !(utils.isUndefined(el) || el === null) && formData.append(\n // eslint-disable-next-line no-nested-ternary\n indexes === true ? renderKey([key], index, dots) : (indexes === null ? key : key + '[]'),\n convertValue(el)\n );\n });\n return false;\n }\n }\n\n if (isVisitable(value)) {\n return true;\n }\n\n formData.append(renderKey(path, key, dots), convertValue(value));\n\n return false;\n }\n\n const stack = [];\n\n const exposedHelpers = Object.assign(predicates, {\n defaultVisitor,\n convertValue,\n isVisitable\n });\n\n function build(value, path) {\n if (utils.isUndefined(value)) return;\n\n if (stack.indexOf(value) !== -1) {\n throw Error('Circular reference detected in ' + path.join('.'));\n }\n\n stack.push(value);\n\n utils.forEach(value, function each(el, key) {\n const result = !(utils.isUndefined(el) || el === null) && visitor.call(\n formData, el, utils.isString(key) ? key.trim() : key, path, exposedHelpers\n );\n\n if (result === true) {\n build(el, path ? path.concat(key) : [key]);\n }\n });\n\n stack.pop();\n }\n\n if (!utils.isObject(obj)) {\n throw new TypeError('data must be an object');\n }\n\n build(obj);\n\n return formData;\n}\n\nexport default toFormData;\n","'use strict';\n\nimport toFormData from './toFormData.js';\n\n/**\n * It encodes a string by replacing all characters that are not in the unreserved set with\n * their percent-encoded equivalents\n *\n * @param {string} str - The string to encode.\n *\n * @returns {string} The encoded string.\n */\nfunction encode(str) {\n const charMap = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+',\n '%00': '\\x00'\n };\n return encodeURIComponent(str).replace(/[!'()~]|%20|%00/g, function replacer(match) {\n return charMap[match];\n });\n}\n\n/**\n * It takes a params object and converts it to a FormData object\n *\n * @param {Object} params - The parameters to be converted to a FormData object.\n * @param {Object} options - The options object passed to the Axios constructor.\n *\n * @returns {void}\n */\nfunction AxiosURLSearchParams(params, options) {\n this._pairs = [];\n\n params && toFormData(params, this, options);\n}\n\nconst prototype = AxiosURLSearchParams.prototype;\n\nprototype.append = function append(name, value) {\n this._pairs.push([name, value]);\n};\n\nprototype.toString = function toString(encoder) {\n const _encode = encoder ? function(value) {\n return encoder.call(this, value, encode);\n } : encode;\n\n return this._pairs.map(function each(pair) {\n return _encode(pair[0]) + '=' + _encode(pair[1]);\n }, '').join('&');\n};\n\nexport default AxiosURLSearchParams;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosURLSearchParams from '../helpers/AxiosURLSearchParams.js';\n\n/**\n * It replaces all instances of the characters `:`, `$`, `,`, `+`, `[`, and `]` with their\n * URI encoded counterparts\n *\n * @param {string} val The value to be encoded.\n *\n * @returns {string} The encoded value.\n */\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @param {?object} options\n *\n * @returns {string} The formatted url\n */\nexport default function buildURL(url, params, options) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n \n const _encode = options && options.encode || encode;\n\n const serializeFn = options && options.serialize;\n\n let serializedParams;\n\n if (serializeFn) {\n serializedParams = serializeFn(params, options);\n } else {\n serializedParams = utils.isURLSearchParams(params) ?\n params.toString() :\n new AxiosURLSearchParams(params, options).toString(_encode);\n }\n\n if (serializedParams) {\n const hashmarkIndex = url.indexOf(\"#\");\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\nclass InterceptorManager {\n constructor() {\n this.handlers = [];\n }\n\n /**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled,\n rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n }\n\n /**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n *\n * @returns {Boolean} `true` if the interceptor was removed, `false` otherwise\n */\n eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n }\n\n /**\n * Clear all interceptors from the stack\n *\n * @returns {void}\n */\n clear() {\n if (this.handlers) {\n this.handlers = [];\n }\n }\n\n /**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n *\n * @returns {void}\n */\n forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n }\n}\n\nexport default InterceptorManager;\n","'use strict';\n\nexport default {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","import URLSearchParams from './classes/URLSearchParams.js'\nimport FormData from './classes/FormData.js'\nimport Blob from './classes/Blob.js'\n\nexport default {\n isBrowser: true,\n classes: {\n URLSearchParams,\n FormData,\n Blob\n },\n protocols: ['http', 'https', 'file', 'blob', 'url', 'data']\n};\n","'use strict';\n\nimport AxiosURLSearchParams from '../../../helpers/AxiosURLSearchParams.js';\nexport default typeof URLSearchParams !== 'undefined' ? URLSearchParams : AxiosURLSearchParams;\n","'use strict';\n\nexport default typeof FormData !== 'undefined' ? FormData : null;\n","'use strict'\n\nexport default typeof Blob !== 'undefined' ? Blob : null\n","const hasBrowserEnv = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n *\n * @returns {boolean}\n */\nconst hasStandardBrowserEnv = (\n (product) => {\n return hasBrowserEnv && ['ReactNative', 'NativeScript', 'NS'].indexOf(product) < 0\n })(typeof navigator !== 'undefined' && navigator.product);\n\n/**\n * Determine if we're running in a standard browser webWorker environment\n *\n * Although the `isStandardBrowserEnv` method indicates that\n * `allows axios to run in a web worker`, the WebWorker will still be\n * filtered out due to its judgment standard\n * `typeof window !== 'undefined' && typeof document !== 'undefined'`.\n * This leads to a problem when axios post `FormData` in webWorker\n */\nconst hasStandardBrowserWebWorkerEnv = (() => {\n return (\n typeof WorkerGlobalScope !== 'undefined' &&\n // eslint-disable-next-line no-undef\n self instanceof WorkerGlobalScope &&\n typeof self.importScripts === 'function'\n );\n})();\n\nexport {\n hasBrowserEnv,\n hasStandardBrowserWebWorkerEnv,\n hasStandardBrowserEnv\n}\n","import platform from './node/index.js';\nimport * as utils from './common/utils.js';\n\nexport default {\n ...utils,\n ...platform\n}\n","'use strict';\n\nimport utils from '../utils.js';\n\n/**\n * It takes a string like `foo[x][y][z]` and returns an array like `['foo', 'x', 'y', 'z']\n *\n * @param {string} name - The name of the property to get.\n *\n * @returns An array of strings.\n */\nfunction parsePropPath(name) {\n // foo[x][y][z]\n // foo.x.y.z\n // foo-x-y-z\n // foo x y z\n return utils.matchAll(/\\w+|\\[(\\w*)]/g, name).map(match => {\n return match[0] === '[]' ? '' : match[1] || match[0];\n });\n}\n\n/**\n * Convert an array to an object.\n *\n * @param {Array} arr - The array to convert to an object.\n *\n * @returns An object with the same keys and values as the array.\n */\nfunction arrayToObject(arr) {\n const obj = {};\n const keys = Object.keys(arr);\n let i;\n const len = keys.length;\n let key;\n for (i = 0; i < len; i++) {\n key = keys[i];\n obj[key] = arr[key];\n }\n return obj;\n}\n\n/**\n * It takes a FormData object and returns a JavaScript object\n *\n * @param {string} formData The FormData object to convert to JSON.\n *\n * @returns {Object | null} The converted object.\n */\nfunction formDataToJSON(formData) {\n function buildPath(path, value, target, index) {\n let name = path[index++];\n\n if (name === '__proto__') return true;\n\n const isNumericKey = Number.isFinite(+name);\n const isLast = index >= path.length;\n name = !name && utils.isArray(target) ? target.length : name;\n\n if (isLast) {\n if (utils.hasOwnProp(target, name)) {\n target[name] = [target[name], value];\n } else {\n target[name] = value;\n }\n\n return !isNumericKey;\n }\n\n if (!target[name] || !utils.isObject(target[name])) {\n target[name] = [];\n }\n\n const result = buildPath(path, value, target[name], index);\n\n if (result && utils.isArray(target[name])) {\n target[name] = arrayToObject(target[name]);\n }\n\n return !isNumericKey;\n }\n\n if (utils.isFormData(formData) && utils.isFunction(formData.entries)) {\n const obj = {};\n\n utils.forEachEntry(formData, (name, value) => {\n buildPath(parsePropPath(name), value, obj, 0);\n });\n\n return obj;\n }\n\n return null;\n}\n\nexport default formDataToJSON;\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosError from '../core/AxiosError.js';\nimport transitionalDefaults from './transitional.js';\nimport toFormData from '../helpers/toFormData.js';\nimport toURLEncodedForm from '../helpers/toURLEncodedForm.js';\nimport platform from '../platform/index.js';\nimport formDataToJSON from '../helpers/formDataToJSON.js';\n\n/**\n * It takes a string, tries to parse it, and if it fails, it returns the stringified version\n * of the input\n *\n * @param {any} rawValue - The value to be stringified.\n * @param {Function} parser - A function that parses a string into a JavaScript object.\n * @param {Function} encoder - A function that takes a value and returns a string.\n *\n * @returns {string} A stringified version of the rawValue.\n */\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nconst defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: ['xhr', 'http'],\n\n transformRequest: [function transformRequest(data, headers) {\n const contentType = headers.getContentType() || '';\n const hasJSONContentType = contentType.indexOf('application/json') > -1;\n const isObjectPayload = utils.isObject(data);\n\n if (isObjectPayload && utils.isHTMLForm(data)) {\n data = new FormData(data);\n }\n\n const isFormData = utils.isFormData(data);\n\n if (isFormData) {\n return hasJSONContentType ? JSON.stringify(formDataToJSON(data)) : data;\n }\n\n if (utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n headers.setContentType('application/x-www-form-urlencoded;charset=utf-8', false);\n return data.toString();\n }\n\n let isFileList;\n\n if (isObjectPayload) {\n if (contentType.indexOf('application/x-www-form-urlencoded') > -1) {\n return toURLEncodedForm(data, this.formSerializer).toString();\n }\n\n if ((isFileList = utils.isFileList(data)) || contentType.indexOf('multipart/form-data') > -1) {\n const _FormData = this.env && this.env.FormData;\n\n return toFormData(\n isFileList ? {'files[]': data} : data,\n _FormData && new _FormData(),\n this.formSerializer\n );\n }\n }\n\n if (isObjectPayload || hasJSONContentType ) {\n headers.setContentType('application/json', false);\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n const transitional = this.transitional || defaults.transitional;\n const forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n const JSONRequested = this.responseType === 'json';\n\n if (data && utils.isString(data) && ((forcedJSONParsing && !this.responseType) || JSONRequested)) {\n const silentJSONParsing = transitional && transitional.silentJSONParsing;\n const strictJSONParsing = !silentJSONParsing && JSONRequested;\n\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: platform.classes.FormData,\n Blob: platform.classes.Blob\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*',\n 'Content-Type': undefined\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch'], (method) => {\n defaults.headers[method] = {};\n});\n\nexport default defaults;\n","'use strict';\n\nimport utils from '../utils.js';\nimport toFormData from './toFormData.js';\nimport platform from '../platform/index.js';\n\nexport default function toURLEncodedForm(data, options) {\n return toFormData(data, new platform.classes.URLSearchParams(), Object.assign({\n visitor: function(value, key, path, helpers) {\n if (platform.isNode && utils.isBuffer(value)) {\n this.append(key, value.toString('base64'));\n return false;\n }\n\n return helpers.defaultVisitor.apply(this, arguments);\n }\n }, options));\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n// RawAxiosHeaders whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nconst ignoreDuplicateOf = utils.toObjectSet([\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n]);\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} rawHeaders Headers needing to be parsed\n *\n * @returns {Object} Headers parsed into an object\n */\nexport default rawHeaders => {\n const parsed = {};\n let key;\n let val;\n let i;\n\n rawHeaders && rawHeaders.split('\\n').forEach(function parser(line) {\n i = line.indexOf(':');\n key = line.substring(0, i).trim().toLowerCase();\n val = line.substring(i + 1).trim();\n\n if (!key || (parsed[key] && ignoreDuplicateOf[key])) {\n return;\n }\n\n if (key === 'set-cookie') {\n if (parsed[key]) {\n parsed[key].push(val);\n } else {\n parsed[key] = [val];\n }\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nimport utils from '../utils.js';\nimport parseHeaders from '../helpers/parseHeaders.js';\n\nconst $internals = Symbol('internals');\n\nfunction normalizeHeader(header) {\n return header && String(header).trim().toLowerCase();\n}\n\nfunction normalizeValue(value) {\n if (value === false || value == null) {\n return value;\n }\n\n return utils.isArray(value) ? value.map(normalizeValue) : String(value);\n}\n\nfunction parseTokens(str) {\n const tokens = Object.create(null);\n const tokensRE = /([^\\s,;=]+)\\s*(?:=\\s*([^,;]+))?/g;\n let match;\n\n while ((match = tokensRE.exec(str))) {\n tokens[match[1]] = match[2];\n }\n\n return tokens;\n}\n\nconst isValidHeaderName = (str) => /^[-_a-zA-Z0-9^`|~,!#$%&'*+.]+$/.test(str.trim());\n\nfunction matchHeaderValue(context, value, header, filter, isHeaderNameFilter) {\n if (utils.isFunction(filter)) {\n return filter.call(this, value, header);\n }\n\n if (isHeaderNameFilter) {\n value = header;\n }\n\n if (!utils.isString(value)) return;\n\n if (utils.isString(filter)) {\n return value.indexOf(filter) !== -1;\n }\n\n if (utils.isRegExp(filter)) {\n return filter.test(value);\n }\n}\n\nfunction formatHeader(header) {\n return header.trim()\n .toLowerCase().replace(/([a-z\\d])(\\w*)/g, (w, char, str) => {\n return char.toUpperCase() + str;\n });\n}\n\nfunction buildAccessors(obj, header) {\n const accessorName = utils.toCamelCase(' ' + header);\n\n ['get', 'set', 'has'].forEach(methodName => {\n Object.defineProperty(obj, methodName + accessorName, {\n value: function(arg1, arg2, arg3) {\n return this[methodName].call(this, header, arg1, arg2, arg3);\n },\n configurable: true\n });\n });\n}\n\nclass AxiosHeaders {\n constructor(headers) {\n headers && this.set(headers);\n }\n\n set(header, valueOrRewrite, rewrite) {\n const self = this;\n\n function setHeader(_value, _header, _rewrite) {\n const lHeader = normalizeHeader(_header);\n\n if (!lHeader) {\n throw new Error('header name must be a non-empty string');\n }\n\n const key = utils.findKey(self, lHeader);\n\n if(!key || self[key] === undefined || _rewrite === true || (_rewrite === undefined && self[key] !== false)) {\n self[key || _header] = normalizeValue(_value);\n }\n }\n\n const setHeaders = (headers, _rewrite) =>\n utils.forEach(headers, (_value, _header) => setHeader(_value, _header, _rewrite));\n\n if (utils.isPlainObject(header) || header instanceof this.constructor) {\n setHeaders(header, valueOrRewrite)\n } else if(utils.isString(header) && (header = header.trim()) && !isValidHeaderName(header)) {\n setHeaders(parseHeaders(header), valueOrRewrite);\n } else {\n header != null && setHeader(valueOrRewrite, header, rewrite);\n }\n\n return this;\n }\n\n get(header, parser) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n if (key) {\n const value = this[key];\n\n if (!parser) {\n return value;\n }\n\n if (parser === true) {\n return parseTokens(value);\n }\n\n if (utils.isFunction(parser)) {\n return parser.call(this, value, key);\n }\n\n if (utils.isRegExp(parser)) {\n return parser.exec(value);\n }\n\n throw new TypeError('parser must be boolean|regexp|function');\n }\n }\n }\n\n has(header, matcher) {\n header = normalizeHeader(header);\n\n if (header) {\n const key = utils.findKey(this, header);\n\n return !!(key && this[key] !== undefined && (!matcher || matchHeaderValue(this, this[key], key, matcher)));\n }\n\n return false;\n }\n\n delete(header, matcher) {\n const self = this;\n let deleted = false;\n\n function deleteHeader(_header) {\n _header = normalizeHeader(_header);\n\n if (_header) {\n const key = utils.findKey(self, _header);\n\n if (key && (!matcher || matchHeaderValue(self, self[key], key, matcher))) {\n delete self[key];\n\n deleted = true;\n }\n }\n }\n\n if (utils.isArray(header)) {\n header.forEach(deleteHeader);\n } else {\n deleteHeader(header);\n }\n\n return deleted;\n }\n\n clear(matcher) {\n const keys = Object.keys(this);\n let i = keys.length;\n let deleted = false;\n\n while (i--) {\n const key = keys[i];\n if(!matcher || matchHeaderValue(this, this[key], key, matcher, true)) {\n delete this[key];\n deleted = true;\n }\n }\n\n return deleted;\n }\n\n normalize(format) {\n const self = this;\n const headers = {};\n\n utils.forEach(this, (value, header) => {\n const key = utils.findKey(headers, header);\n\n if (key) {\n self[key] = normalizeValue(value);\n delete self[header];\n return;\n }\n\n const normalized = format ? formatHeader(header) : String(header).trim();\n\n if (normalized !== header) {\n delete self[header];\n }\n\n self[normalized] = normalizeValue(value);\n\n headers[normalized] = true;\n });\n\n return this;\n }\n\n concat(...targets) {\n return this.constructor.concat(this, ...targets);\n }\n\n toJSON(asStrings) {\n const obj = Object.create(null);\n\n utils.forEach(this, (value, header) => {\n value != null && value !== false && (obj[header] = asStrings && utils.isArray(value) ? value.join(', ') : value);\n });\n\n return obj;\n }\n\n [Symbol.iterator]() {\n return Object.entries(this.toJSON())[Symbol.iterator]();\n }\n\n toString() {\n return Object.entries(this.toJSON()).map(([header, value]) => header + ': ' + value).join('\\n');\n }\n\n get [Symbol.toStringTag]() {\n return 'AxiosHeaders';\n }\n\n static from(thing) {\n return thing instanceof this ? thing : new this(thing);\n }\n\n static concat(first, ...targets) {\n const computed = new this(first);\n\n targets.forEach((target) => computed.set(target));\n\n return computed;\n }\n\n static accessor(header) {\n const internals = this[$internals] = (this[$internals] = {\n accessors: {}\n });\n\n const accessors = internals.accessors;\n const prototype = this.prototype;\n\n function defineAccessor(_header) {\n const lHeader = normalizeHeader(_header);\n\n if (!accessors[lHeader]) {\n buildAccessors(prototype, _header);\n accessors[lHeader] = true;\n }\n }\n\n utils.isArray(header) ? header.forEach(defineAccessor) : defineAccessor(header);\n\n return this;\n }\n}\n\nAxiosHeaders.accessor(['Content-Type', 'Content-Length', 'Accept', 'Accept-Encoding', 'User-Agent', 'Authorization']);\n\n// reserved names hotfix\nutils.reduceDescriptors(AxiosHeaders.prototype, ({value}, key) => {\n let mapped = key[0].toUpperCase() + key.slice(1); // map `set` => `Set`\n return {\n get: () => value,\n set(headerValue) {\n this[mapped] = headerValue;\n }\n }\n});\n\nutils.freezeMethods(AxiosHeaders);\n\nexport default AxiosHeaders;\n","'use strict';\n\nimport utils from './../utils.js';\nimport defaults from '../defaults/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Array|Function} fns A single function or Array of functions\n * @param {?Object} response The response object\n *\n * @returns {*} The resulting transformed data\n */\nexport default function transformData(fns, response) {\n const config = this || defaults;\n const context = response || config;\n const headers = AxiosHeaders.from(context.headers);\n let data = context.data;\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(config, data, headers.normalize(), response ? response.status : undefined);\n });\n\n headers.normalize();\n\n return data;\n}\n","'use strict';\n\nexport default function isCancel(value) {\n return !!(value && value.__CANCEL__);\n}\n","'use strict';\n\nimport AxiosError from '../core/AxiosError.js';\nimport utils from '../utils.js';\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @param {string=} message The message.\n * @param {Object=} config The config.\n * @param {Object=} request The request.\n *\n * @returns {CanceledError} The created error.\n */\nfunction CanceledError(message, config, request) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED, config, request);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nexport default CanceledError;\n","import utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n // Standard browser envs support document.cookie\n {\n write(name, value, expires, path, domain, secure) {\n const cookie = [name + '=' + encodeURIComponent(value)];\n\n utils.isNumber(expires) && cookie.push('expires=' + new Date(expires).toGMTString());\n\n utils.isString(path) && cookie.push('path=' + path);\n\n utils.isString(domain) && cookie.push('domain=' + domain);\n\n secure === true && cookie.push('secure');\n\n document.cookie = cookie.join('; ');\n },\n\n read(name) {\n const match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n }\n\n :\n\n // Non-standard browser env (web workers, react-native) lack needed support.\n {\n write() {},\n read() {\n return null;\n },\n remove() {}\n };\n\n","'use strict';\n\nimport isAbsoluteURL from '../helpers/isAbsoluteURL.js';\nimport combineURLs from '../helpers/combineURLs.js';\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n *\n * @returns {string} The combined full path\n */\nexport default function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n}\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n *\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nexport default function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n}\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n *\n * @returns {string} The combined URL\n */\nexport default function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/?\\/$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n}\n","'use strict';\n\nimport utils from './../utils.js';\nimport platform from '../platform/index.js';\n\nexport default platform.hasStandardBrowserEnv ?\n\n// Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n const msie = /(msie|trident)/i.test(navigator.userAgent);\n const urlParsingNode = document.createElement('a');\n let originURL;\n\n /**\n * Parse a URL to discover its components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n let href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n const parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })();\n","'use strict';\n\n/**\n * Calculate data maxRate\n * @param {Number} [samplesCount= 10]\n * @param {Number} [min= 1000]\n * @returns {Function}\n */\nfunction speedometer(samplesCount, min) {\n samplesCount = samplesCount || 10;\n const bytes = new Array(samplesCount);\n const timestamps = new Array(samplesCount);\n let head = 0;\n let tail = 0;\n let firstSampleTS;\n\n min = min !== undefined ? min : 1000;\n\n return function push(chunkLength) {\n const now = Date.now();\n\n const startedAt = timestamps[tail];\n\n if (!firstSampleTS) {\n firstSampleTS = now;\n }\n\n bytes[head] = chunkLength;\n timestamps[head] = now;\n\n let i = tail;\n let bytesCount = 0;\n\n while (i !== head) {\n bytesCount += bytes[i++];\n i = i % samplesCount;\n }\n\n head = (head + 1) % samplesCount;\n\n if (head === tail) {\n tail = (tail + 1) % samplesCount;\n }\n\n if (now - firstSampleTS < min) {\n return;\n }\n\n const passed = startedAt && now - startedAt;\n\n return passed ? Math.round(bytesCount * 1000 / passed) : undefined;\n };\n}\n\nexport default speedometer;\n","'use strict';\n\nimport utils from './../utils.js';\nimport settle from './../core/settle.js';\nimport cookies from './../helpers/cookies.js';\nimport buildURL from './../helpers/buildURL.js';\nimport buildFullPath from '../core/buildFullPath.js';\nimport isURLSameOrigin from './../helpers/isURLSameOrigin.js';\nimport transitionalDefaults from '../defaults/transitional.js';\nimport AxiosError from '../core/AxiosError.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport parseProtocol from '../helpers/parseProtocol.js';\nimport platform from '../platform/index.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport speedometer from '../helpers/speedometer.js';\n\nfunction progressEventReducer(listener, isDownloadStream) {\n let bytesNotified = 0;\n const _speedometer = speedometer(50, 250);\n\n return e => {\n const loaded = e.loaded;\n const total = e.lengthComputable ? e.total : undefined;\n const progressBytes = loaded - bytesNotified;\n const rate = _speedometer(progressBytes);\n const inRange = loaded <= total;\n\n bytesNotified = loaded;\n\n const data = {\n loaded,\n total,\n progress: total ? (loaded / total) : undefined,\n bytes: progressBytes,\n rate: rate ? rate : undefined,\n estimated: rate && total && inRange ? (total - loaded) / rate : undefined,\n event: e\n };\n\n data[isDownloadStream ? 'download' : 'upload'] = true;\n\n listener(data);\n };\n}\n\nconst isXHRAdapterSupported = typeof XMLHttpRequest !== 'undefined';\n\nexport default isXHRAdapterSupported && function (config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n let requestData = config.data;\n const requestHeaders = AxiosHeaders.from(config.headers).normalize();\n let {responseType, withXSRFToken} = config;\n let onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n let contentType;\n\n if (utils.isFormData(requestData)) {\n if (platform.hasStandardBrowserEnv || platform.hasStandardBrowserWebWorkerEnv) {\n requestHeaders.setContentType(false); // Let the browser set it\n } else if ((contentType = requestHeaders.getContentType()) !== false) {\n // fix semicolon duplication issue for ReactNative FormData implementation\n const [type, ...tokens] = contentType ? contentType.split(';').map(token => token.trim()).filter(Boolean) : [];\n requestHeaders.setContentType([type || 'multipart/form-data', ...tokens].join('; '));\n }\n }\n\n let request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n const username = config.auth.username || '';\n const password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.set('Authorization', 'Basic ' + btoa(username + ':' + password));\n }\n\n const fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n const responseHeaders = AxiosHeaders.from(\n 'getAllResponseHeaders' in request && request.getAllResponseHeaders()\n );\n const responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n const response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config,\n request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n let timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n const transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if(platform.hasStandardBrowserEnv) {\n withXSRFToken && utils.isFunction(withXSRFToken) && (withXSRFToken = withXSRFToken(config));\n\n if (withXSRFToken || (withXSRFToken !== false && isURLSameOrigin(fullPath))) {\n // Add xsrf header\n const xsrfValue = config.xsrfHeaderName && config.xsrfCookieName && cookies.read(config.xsrfCookieName);\n\n if (xsrfValue) {\n requestHeaders.set(config.xsrfHeaderName, xsrfValue);\n }\n }\n }\n\n // Remove Content-Type if data is undefined\n requestData === undefined && requestHeaders.setContentType(null);\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders.toJSON(), function setRequestHeader(val, key) {\n request.setRequestHeader(key, val);\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', progressEventReducer(config.onDownloadProgress, true));\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', progressEventReducer(config.onUploadProgress));\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = cancel => {\n if (!request) {\n return;\n }\n reject(!cancel || cancel.type ? new CanceledError(null, config, request) : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n const protocol = parseProtocol(fullPath);\n\n if (protocol && platform.protocols.indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData || null);\n });\n}\n","import utils from '../utils.js';\nimport httpAdapter from './http.js';\nimport xhrAdapter from './xhr.js';\nimport AxiosError from \"../core/AxiosError.js\";\n\nconst knownAdapters = {\n http: httpAdapter,\n xhr: xhrAdapter\n}\n\nutils.forEach(knownAdapters, (fn, value) => {\n if (fn) {\n try {\n Object.defineProperty(fn, 'name', {value});\n } catch (e) {\n // eslint-disable-next-line no-empty\n }\n Object.defineProperty(fn, 'adapterName', {value});\n }\n});\n\nconst renderReason = (reason) => `- ${reason}`;\n\nconst isResolvedHandle = (adapter) => utils.isFunction(adapter) || adapter === null || adapter === false;\n\nexport default {\n getAdapter: (adapters) => {\n adapters = utils.isArray(adapters) ? adapters : [adapters];\n\n const {length} = adapters;\n let nameOrAdapter;\n let adapter;\n\n const rejectedReasons = {};\n\n for (let i = 0; i < length; i++) {\n nameOrAdapter = adapters[i];\n let id;\n\n adapter = nameOrAdapter;\n\n if (!isResolvedHandle(nameOrAdapter)) {\n adapter = knownAdapters[(id = String(nameOrAdapter)).toLowerCase()];\n\n if (adapter === undefined) {\n throw new AxiosError(`Unknown adapter '${id}'`);\n }\n }\n\n if (adapter) {\n break;\n }\n\n rejectedReasons[id || '#' + i] = adapter;\n }\n\n if (!adapter) {\n\n const reasons = Object.entries(rejectedReasons)\n .map(([id, state]) => `adapter ${id} ` +\n (state === false ? 'is not supported by the environment' : 'is not available in the build')\n );\n\n let s = length ?\n (reasons.length > 1 ? 'since :\\n' + reasons.map(renderReason).join('\\n') : ' ' + renderReason(reasons[0])) :\n 'as no adapter specified';\n\n throw new AxiosError(\n `There is no suitable adapter to dispatch the request ` + s,\n 'ERR_NOT_SUPPORT'\n );\n }\n\n return adapter;\n },\n adapters: knownAdapters\n}\n","// eslint-disable-next-line strict\nexport default null;\n","'use strict';\n\nimport AxiosError from './AxiosError.js';\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n *\n * @returns {object} The response.\n */\nexport default function settle(resolve, reject, response) {\n const validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n}\n","'use strict';\n\nexport default function parseProtocol(url) {\n const match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n}\n","'use strict';\n\nimport transformData from './transformData.js';\nimport isCancel from '../cancel/isCancel.js';\nimport defaults from '../defaults/index.js';\nimport CanceledError from '../cancel/CanceledError.js';\nimport AxiosHeaders from '../core/AxiosHeaders.js';\nimport adapters from \"../adapters/adapters.js\";\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n *\n * @param {Object} config The config that is to be used for the request\n *\n * @returns {void}\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError(null, config);\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n *\n * @returns {Promise} The Promise to be fulfilled\n */\nexport default function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n config.headers = AxiosHeaders.from(config.headers);\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.transformRequest\n );\n\n if (['post', 'put', 'patch'].indexOf(config.method) !== -1) {\n config.headers.setContentType('application/x-www-form-urlencoded', false);\n }\n\n const adapter = adapters.getAdapter(config.adapter || defaults.adapter);\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n config.transformResponse,\n response\n );\n\n response.headers = AxiosHeaders.from(response.headers);\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n config.transformResponse,\n reason.response\n );\n reason.response.headers = AxiosHeaders.from(reason.response.headers);\n }\n }\n\n return Promise.reject(reason);\n });\n}\n","'use strict';\n\nimport utils from '../utils.js';\nimport AxiosHeaders from \"./AxiosHeaders.js\";\n\nconst headersToObject = (thing) => thing instanceof AxiosHeaders ? thing.toJSON() : thing;\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n *\n * @returns {Object} New object resulting from merging config2 to config1\n */\nexport default function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n const config = {};\n\n function getMergedValue(target, source, caseless) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge.call({caseless}, target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(a, b, caseless) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(a, b, caseless);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a, caseless);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(a, b) {\n if (!utils.isUndefined(b)) {\n return getMergedValue(undefined, b);\n } else if (!utils.isUndefined(a)) {\n return getMergedValue(undefined, a);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(a, b, prop) {\n if (prop in config2) {\n return getMergedValue(a, b);\n } else if (prop in config1) {\n return getMergedValue(undefined, a);\n }\n }\n\n const mergeMap = {\n url: valueFromConfig2,\n method: valueFromConfig2,\n data: valueFromConfig2,\n baseURL: defaultToConfig2,\n transformRequest: defaultToConfig2,\n transformResponse: defaultToConfig2,\n paramsSerializer: defaultToConfig2,\n timeout: defaultToConfig2,\n timeoutMessage: defaultToConfig2,\n withCredentials: defaultToConfig2,\n withXSRFToken: defaultToConfig2,\n adapter: defaultToConfig2,\n responseType: defaultToConfig2,\n xsrfCookieName: defaultToConfig2,\n xsrfHeaderName: defaultToConfig2,\n onUploadProgress: defaultToConfig2,\n onDownloadProgress: defaultToConfig2,\n decompress: defaultToConfig2,\n maxContentLength: defaultToConfig2,\n maxBodyLength: defaultToConfig2,\n beforeRedirect: defaultToConfig2,\n transport: defaultToConfig2,\n httpAgent: defaultToConfig2,\n httpsAgent: defaultToConfig2,\n cancelToken: defaultToConfig2,\n socketPath: defaultToConfig2,\n responseEncoding: defaultToConfig2,\n validateStatus: mergeDirectKeys,\n headers: (a, b) => mergeDeepProperties(headersToObject(a), headersToObject(b), true)\n };\n\n utils.forEach(Object.keys(Object.assign({}, config1, config2)), function computeConfigValue(prop) {\n const merge = mergeMap[prop] || mergeDeepProperties;\n const configValue = merge(config1[prop], config2[prop], prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n}\n","export const VERSION = \"1.6.7\";","'use strict';\n\nimport {VERSION} from '../env/data.js';\nimport AxiosError from '../core/AxiosError.js';\n\nconst validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach((type, i) => {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nconst deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n *\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n *\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return (value, opt, opts) => {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n *\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n *\n * @returns {object}\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n const keys = Object.keys(options);\n let i = keys.length;\n while (i-- > 0) {\n const opt = keys[i];\n const validator = schema[opt];\n if (validator) {\n const value = options[opt];\n const result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nexport default {\n assertOptions,\n validators\n};\n","'use strict';\n\nimport utils from './../utils.js';\nimport buildURL from '../helpers/buildURL.js';\nimport InterceptorManager from './InterceptorManager.js';\nimport dispatchRequest from './dispatchRequest.js';\nimport mergeConfig from './mergeConfig.js';\nimport buildFullPath from './buildFullPath.js';\nimport validator from '../helpers/validator.js';\nimport AxiosHeaders from './AxiosHeaders.js';\n\nconst validators = validator.validators;\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n *\n * @return {Axios} A new instance of Axios\n */\nclass Axios {\n constructor(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n }\n\n /**\n * Dispatch a request\n *\n * @param {String|Object} configOrUrl The config specific for this request (merged with this.defaults)\n * @param {?Object} config\n *\n * @returns {Promise} The Promise to be fulfilled\n */\n async request(configOrUrl, config) {\n try {\n return await this._request(configOrUrl, config);\n } catch (err) {\n if (err instanceof Error) {\n let dummy;\n\n Error.captureStackTrace ? Error.captureStackTrace(dummy = {}) : (dummy = new Error());\n\n // slice off the Error: ... line\n const stack = dummy.stack ? dummy.stack.replace(/^.+\\n/, '') : '';\n\n if (!err.stack) {\n err.stack = stack;\n // match without the 2 top stack lines\n } else if (stack && !String(err.stack).endsWith(stack.replace(/^.+\\n.+\\n/, ''))) {\n err.stack += '\\n' + stack\n }\n }\n\n throw err;\n }\n }\n\n _request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n const {transitional, paramsSerializer, headers} = config;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n if (paramsSerializer != null) {\n if (utils.isFunction(paramsSerializer)) {\n config.paramsSerializer = {\n serialize: paramsSerializer\n }\n } else {\n validator.assertOptions(paramsSerializer, {\n encode: validators.function,\n serialize: validators.function\n }, true);\n }\n }\n\n // Set config.method\n config.method = (config.method || this.defaults.method || 'get').toLowerCase();\n\n // Flatten headers\n let contextHeaders = headers && utils.merge(\n headers.common,\n headers[config.method]\n );\n\n headers && utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n (method) => {\n delete headers[method];\n }\n );\n\n config.headers = AxiosHeaders.concat(contextHeaders, headers);\n\n // filter out skipped interceptors\n const requestInterceptorChain = [];\n let synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n const responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n let promise;\n let i = 0;\n let len;\n\n if (!synchronousRequestInterceptors) {\n const chain = [dispatchRequest.bind(this), undefined];\n chain.unshift.apply(chain, requestInterceptorChain);\n chain.push.apply(chain, responseInterceptorChain);\n len = chain.length;\n\n promise = Promise.resolve(config);\n\n while (i < len) {\n promise = promise.then(chain[i++], chain[i++]);\n }\n\n return promise;\n }\n\n len = requestInterceptorChain.length;\n\n let newConfig = config;\n\n i = 0;\n\n while (i < len) {\n const onFulfilled = requestInterceptorChain[i++];\n const onRejected = requestInterceptorChain[i++];\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected.call(this, error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest.call(this, newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n i = 0;\n len = responseInterceptorChain.length;\n\n while (i < len) {\n promise = promise.then(responseInterceptorChain[i++], responseInterceptorChain[i++]);\n }\n\n return promise;\n }\n\n getUri(config) {\n config = mergeConfig(this.defaults, config);\n const fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n }\n}\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url,\n data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nexport default Axios;\n","'use strict';\n\nimport CanceledError from './CanceledError.js';\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @param {Function} executor The executor function.\n *\n * @returns {CancelToken}\n */\nclass CancelToken {\n constructor(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n let resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n const token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(cancel => {\n if (!token._listeners) return;\n\n let i = token._listeners.length;\n\n while (i-- > 0) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = onfulfilled => {\n let _resolve;\n // eslint-disable-next-line func-names\n const promise = new Promise(resolve => {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message, config, request) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message, config, request);\n resolvePromise(token.reason);\n });\n }\n\n /**\n * Throws a `CanceledError` if cancellation has been requested.\n */\n throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n }\n\n /**\n * Subscribe to the cancel signal\n */\n\n subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n }\n\n /**\n * Unsubscribe from the cancel signal\n */\n\n unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n const index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n }\n\n /**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n static source() {\n let cancel;\n const token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token,\n cancel\n };\n }\n}\n\nexport default CancelToken;\n","const HttpStatusCode = {\n Continue: 100,\n SwitchingProtocols: 101,\n Processing: 102,\n EarlyHints: 103,\n Ok: 200,\n Created: 201,\n Accepted: 202,\n NonAuthoritativeInformation: 203,\n NoContent: 204,\n ResetContent: 205,\n PartialContent: 206,\n MultiStatus: 207,\n AlreadyReported: 208,\n ImUsed: 226,\n MultipleChoices: 300,\n MovedPermanently: 301,\n Found: 302,\n SeeOther: 303,\n NotModified: 304,\n UseProxy: 305,\n Unused: 306,\n TemporaryRedirect: 307,\n PermanentRedirect: 308,\n BadRequest: 400,\n Unauthorized: 401,\n PaymentRequired: 402,\n Forbidden: 403,\n NotFound: 404,\n MethodNotAllowed: 405,\n NotAcceptable: 406,\n ProxyAuthenticationRequired: 407,\n RequestTimeout: 408,\n Conflict: 409,\n Gone: 410,\n LengthRequired: 411,\n PreconditionFailed: 412,\n PayloadTooLarge: 413,\n UriTooLong: 414,\n UnsupportedMediaType: 415,\n RangeNotSatisfiable: 416,\n ExpectationFailed: 417,\n ImATeapot: 418,\n MisdirectedRequest: 421,\n UnprocessableEntity: 422,\n Locked: 423,\n FailedDependency: 424,\n TooEarly: 425,\n UpgradeRequired: 426,\n PreconditionRequired: 428,\n TooManyRequests: 429,\n RequestHeaderFieldsTooLarge: 431,\n UnavailableForLegalReasons: 451,\n InternalServerError: 500,\n NotImplemented: 501,\n BadGateway: 502,\n ServiceUnavailable: 503,\n GatewayTimeout: 504,\n HttpVersionNotSupported: 505,\n VariantAlsoNegotiates: 506,\n InsufficientStorage: 507,\n LoopDetected: 508,\n NotExtended: 510,\n NetworkAuthenticationRequired: 511,\n};\n\nObject.entries(HttpStatusCode).forEach(([key, value]) => {\n HttpStatusCode[value] = key;\n});\n\nexport default HttpStatusCode;\n","'use strict';\n\nimport utils from './utils.js';\nimport bind from './helpers/bind.js';\nimport Axios from './core/Axios.js';\nimport mergeConfig from './core/mergeConfig.js';\nimport defaults from './defaults/index.js';\nimport formDataToJSON from './helpers/formDataToJSON.js';\nimport CanceledError from './cancel/CanceledError.js';\nimport CancelToken from './cancel/CancelToken.js';\nimport isCancel from './cancel/isCancel.js';\nimport {VERSION} from './env/data.js';\nimport toFormData from './helpers/toFormData.js';\nimport AxiosError from './core/AxiosError.js';\nimport spread from './helpers/spread.js';\nimport isAxiosError from './helpers/isAxiosError.js';\nimport AxiosHeaders from \"./core/AxiosHeaders.js\";\nimport adapters from './adapters/adapters.js';\nimport HttpStatusCode from './helpers/HttpStatusCode.js';\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n *\n * @returns {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n const context = new Axios(defaultConfig);\n const instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context, {allOwnKeys: true});\n\n // Copy context to instance\n utils.extend(instance, context, null, {allOwnKeys: true});\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nconst axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = CanceledError;\naxios.CancelToken = CancelToken;\naxios.isCancel = isCancel;\naxios.VERSION = VERSION;\naxios.toFormData = toFormData;\n\n// Expose AxiosError class\naxios.AxiosError = AxiosError;\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = spread;\n\n// Expose isAxiosError\naxios.isAxiosError = isAxiosError;\n\n// Expose mergeConfig\naxios.mergeConfig = mergeConfig;\n\naxios.AxiosHeaders = AxiosHeaders;\n\naxios.formToJSON = thing => formDataToJSON(utils.isHTMLForm(thing) ? new FormData(thing) : thing);\n\naxios.getAdapter = adapters.getAdapter;\n\naxios.HttpStatusCode = HttpStatusCode;\n\naxios.default = axios;\n\n// this module should only have a default export\nexport default axios\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n *\n * @returns {Function}\n */\nexport default function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n}\n","'use strict';\n\nimport utils from './../utils.js';\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n *\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nexport default function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n}\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n"],"names":["BLOCK_SIZE","KEY","Uint32Array","INIT","MAX_HASHABLE_LENGTH","Math","pow","RawSha256","state","Int32Array","from","temp","buffer","Uint8Array","bufferLength","bytesHashed","finished","prototype","update","data","this","Error","position","byteLength","hashBuffer","digest","bitsHashed","bufferView","DataView","byteOffset","undecoratedLength","setUint8","i","setUint32","floor","out","state0","state1","state2","state3","state4","state5","state6","state7","u","t1_1","t2_1","t1","t2","fromUtf8","Buffer","input","TextEncoder","encode","convertToBuffer","ArrayBuffer","isView","BYTES_PER_ELEMENT","Sha256","secret","hash","reset","toHash","isEmptyData","length","error","e","digestSync","outer","inner","bufferFromSecret","bufferHash","set","exports","file","acceptedFiles","acceptedFilesArray","Array","isArray","split","fileName","name","mimeType","type","toLowerCase","baseMimeType","replace","some","validType","trim","charAt","endsWith","require","AWS","Service","apiLoader","services","CognitoIdentity","defineService","Object","defineProperty","get","model","paginators","enumerable","configurable","module","S3","waiters","STS","svc","version","hasOwnProperty","Hmac","Md5","Sha1","createHash","alg","createHmac","key","createSign","arg","viewStrings","indexOf","toString","call","hashUtils","hashCtor","encoding","cmn","q","a","b","x","s","t","ff","c","d","gg","hh","ii","sourceData","_a","buff","getUint32","h0","h1","h2","h3","h4","block","offset","shift","totalLength","write","byte","processBlock","outView","w","f","k","util","crypto","lib","url","querystring","realClock","environment","createEventStream","isBrowser","isNode","XML","Parser","process","browser","PromisesDependency","Config","inherit","constructor","options","undefined","extractCredentials","each","keys","value","getCredentials","callback","self","finish","err","credentials","credError","msg","code","message","getAsyncCredentials","getStaticCredentials","accessKeyId","secretAccessKey","credentialProvider","resolve","creds","getToken","token","tokenError","getAsyncToken","getStaticToken","tokenProvider","allowUnknownKeys","hasService","loadFromPath","path","clear","JSON","parse","readFileSync","fileSystemCreds","FileSystemCredentials","chain","CredentialProviderChain","providers","unshift","property","defaultValue","merge","region","logger","apiVersions","apiVersion","endpoint","httpOptions","timeout","maxRetries","maxRedirects","paramValidation","sslEnabled","s3ForcePathStyle","s3BucketEndpoint","s3DisableBodySigning","s3UsEast1RegionalEndpoint","s3UseArnRegion","computeChecksums","convertResponseTypes","correctClockSkew","customUserAgent","dynamoDbCrc32","systemClockOffset","signatureVersion","signatureCache","retryDelayOptions","useAccelerateEndpoint","clientSideMonitoring","endpointDiscoveryEnabled","endpointCacheSize","hostPrefixEnabled","stsRegionalEndpoints","useFipsEndpoint","useDualstackEndpoint","copy","Credentials","setPromisesDependency","dep","Promise","constructors","Request","push","ManagedUpload","addPromises","getPromisesDependency","config","validateRegionalEndpointsFlagValue","configValue","errorOptions","resolveRegionalEndpointsFlag","originalConfig","resolved","clientConfig","env","profile","getProfilesFromSharedConfig","iniLoader","AWS_PROFILE","defaultProfile","sharedConfig","VERSION","Signers","Protocol","Json","Query","Rest","RestJson","RestXml","Builder","Model","Api","Operation","Shape","Paginator","ResourceWaiter","EndpointCache","events","SequentialExecutor","memoizedProperty","hideProperties","expired","expireTime","refreshCallbacks","arguments","sessionToken","expiryWindow","needsRefresh","currentTime","date","getDate","getTime","adjustedTime","Date","refresh","coalesceRefresh","sync","load","onLoad","arrayEach","defer","addPromisesToClass","PromiseDependency","getPromise","promisifyMethod","refreshPromise","deletePromisesFromClass","ChainableTemporaryCredentials","errorCode","tokenCodeFn","params","RoleArn","RoleSessionName","SerialNumber","masterCredentials","stsConfig","service","fn","operation","getTokenCode","tokenCode","TokenCode","credentialsFrom","CognitoIdentityCredentials","localStorageKey","id","_identityId","_clientConfig","loadCachedId","IdentityId","identityId","createClients","getId","clearIdOnNotAuthorized","getCredentialsFromSTS","getCredentialsForIdentity","clearCachedId","clearCache","poolId","IdentityPoolId","loginId","LoginId","storage","cognito","loadCredentials","AccessKeyId","SecretKey","SessionToken","Expiration","cacheId","getOpenIdToken","WebIdentityToken","Token","webIdentityCredentials","webErr","sts","getStorage","Logins","actualProviders","filter","n","WebIdentityCredentials","cognitoConfig","setStorage","join","val","_","window","localStorage","defaultProviders","slice","resolveCallbacks","index","resolveNext","provider","getErr","resolvePromise","SAMLCredentials","assumeRoleWithSAML","TemporaryCredentials","loadMasterCredentials","assumeRole","getSessionToken","assumeRoleWithWebIdentity","endpointDiscoveryEnabledEnvs","getCacheKey","request","api","identifiers","operations","serviceId","marshallCustomIdentifiersHelper","result","shape","required","memberShape","members","endpointDiscoveryId","locationName","isLocationName","String","marshallCustomIdentifiers","optionalDiscoverEndpoint","operationModel","cacheKey","endpoints","endpointCache","Address","httpRequest","updateEndpoint","endpointRequest","makeRequest","endpointOperation","Identifiers","addApiVersionHeader","removeListener","EventListeners","Core","VALIDATE_PARAMETERS","RETRY_CHECK","put","CachePeriodInMinutes","send","Endpoints","requestQueue","requiredDiscoverEndpoint","done","inputShape","cacheKeyStr","getKeyString","response","retryable","remove","pendingRequests","requestContext","headers","invalidateCachedEndpoints","httpResponse","statusCode","isFalsy","discoverEndpoint","hasCustomEndpoint","client","_originalConfig","svcConfig","serviceIdentifier","Boolean","isPresigned","isEndpointDiscoveryRequired","endpointDiscoveryRequired","isEnabled","resolveEndpointDiscoveryConfig","configFile","loadFrom","isConfig","filename","sharedConfigFileEnv","sharedFileConfig","endpoint_discovery_enabled","hasRequiredEndpointDiscovery","appendToUserAgent","addNamedListener","className","invalidateCachedEndpoint","eventMessageChunker","parseEvent","body","parser","eventMessages","messages","readInt32BE","toBuffer","Int64","bytes","isBuffer","negate","fromNumber","number","remaining","abs","round","valueOf","negative","parseInt","parseMessage","parsedMessage","messageType","parseError","errorMessage","eventType","eventModel","eventPayloadMemberName","payloadShape","eventHeaderNames","eventHeaderMemberNames","toType","output","splitMessage","BOOLEAN_TAG","BYTE_TAG","SHORT_TAG","INT_TAG","LONG_TAG","BINARY_TAG","STRING_TAG","TIMESTAMP_TAG","UUID_TAG","parseHeaders","nameLength","readUInt8","readInt8","readInt16BE","binaryLength","readUInt16BE","stringLength","uuidChars","substr","parsed","PRELUDE_LENGTH","readUInt32BE","expectedPreludeChecksum","PRELUDE_MEMBER_LENGTH","crc32","expectedMessageChecksum","headersEnd","DISCOVER_ENDPOINT","getOperationAuthtype","req","authtype","getIdentityType","addNamedListeners","add","addAsync","VALIDATE_CREDENTIALS","VALIDATE_REGION","isGlobalEndpoint","dnsHostRegex","RegExp","test","BUILD_IDEMPOTENCY_TOKENS","idempotentMembers","iLen","uuid","v4","rules","validation","ParamValidator","validate","COMPUTE_CHECKSUM","isNonStreamingPayload","httpChecksumRequired","md5","COMPUTE_SHA256","haltHandlersOnError","getSignerClass","V4","computeSha256","sha","SET_CONTENT_LENGTH","payloadMember","getRequestPayloadShape","string","isStreaming","requiresLength","SET_HTTP_HOST","host","SET_TRACE_ID","traceIdHeaderName","functionName","traceId","RESTART","HttpRequest","retryCount","SIGN","identityType","addAuthorization","getSkewCorrectedDate","SignerClass","signer","getSigningName","setServiceClientId","_clientId","signedAt","VALIDATE_RESPONSE","resp","successfulResponse","ERROR","awsQueryCompatible","queryErrorCode","includes","SEND","httpResp","stream","operationName","on","onHeaders","statusMessage","emit","streaming","HttpClient","streamsApiVersion","hasEventOutput","onReadable","read","onData","onEnd","didCallback","errCode","hostname","executeSend","http","getInstance","progress","onSendProgress","onReceiveProgress","handleRequest","_abortCallback","HTTP_HEADERS","buffers","numBytes","dateHeader","serverTime","isClockSkewed","applyClockOffset","HTTP_DATA","chunk","total","loaded","HTTP_DONE","concat","FINALIZE_ERROR","retryableError","INVALIDATE_CREDENTIALS","EXPIRED_SIGNATURE","match","CLOCK_SKEWED","clockSkewError","REDIRECT","Endpoint","redirect","redirectCount","retryDelay","retryDelays","RESET_RETRY_STATE","delay","willRetry","setTimeout","CorePost","extractRequestId","ENOTFOUND_ERROR","isDNSError","errno","getSystemErrorName","port","originalError","Logger","LOG_REQUEST","line","buildMessage","delta","startTime","ansi","isTTY","status","censoredParams","filterSensitiveLog","lowerFirst","log","isSensitive","struct","subShapeName","subShape","list","member","map","buildRequest","extractData","extractError","unsetContentLength","urlParse","protocol","method","_userAgent","setUserAgent","getUserAgentHeaderName","userAgent","agentPartial","getUserAgent","pathname","search","query","queryStringParse","queryParamsToString","endpointStr","newEndpoint","HttpResponse","createUnbufferedStream","singleton","EventEmitter","XHRClient","errCallback","emitter","href","xhr","XMLHttpRequest","headersEmitted","addEventListener","readyState","HEADERS_RECEIVED","getAllResponseHeaders","statusText","DONE","finishRequest","upload","evt","open","xhrAsync","setRequestHeader","xhrWithCredentials","withCredentials","responseType","rawHeaders","substring","ab","view","responseText","JsonBuilder","translate","translateStructure","structure","isDocument","location","translateMap","translateList","translateScalar","toWireFormat","build","stringify","JsonParser","shapeMembers","isAwsQueryCompatible","warning","suppress","emitWarning","AWS_EXECUTION_ENV","AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE","Collection","metadata","endpointPrefix","signingName","globalEndpoint","jsonVersion","targetPrefix","timestampFormat","xmlNamespace","serviceAbbreviation","serviceFullName","xmlNoDefaultLists","addEndpointOperation","endpointoperation","endpointdiscovery","shapes","create","paginator","waiter","documentation","documentationUrl","memoize","factory","nameTr","iterable","requestUri","httpChecksum","requestChecksumRequired","errors","isIdempotent","hasEventStream","topLevelShape","payload","isEventStream","input_token","limit_key","more_results","output_token","result_key","forEach","obj","apply","memberName","enum","min","max","pattern","xmlName","queryName","isComposite","idempotencyToken","jsonvalue","sensitive","eventstream","event","eventpayload","eventheader","isTimestampFormatSet","endpointdiscoveryid","hostLabel","xmlAttribute","CompositeShape","flattened","StructureShape","requiredMap","firstInit","isShape","document","xmlOrder","memberNames","isEventPayload","isEventHeader","resultWrapper","prefix","uri","ListShape","oldName","MapShape","StringShape","nullLessProtocols","isJsonValue","BinaryShape","buf","base64","decode","alloc","secureBuf","fill","Base64Shape","BooleanShape","normalizedTypes","character","double","long","short","biginteger","bigdecimal","blob","types","TimestampShape","toUTCString","parseTimestamp","format","FloatShape","parseFloat","IntegerShape","refShape","filteredKeys","InlineShape","origType","context","validateMember","fail","validateStructure","paramName","validateType","paramValue","memberContext","param","validateList","validateMap","validateScalar","validateRange","mapCount","validateString","validatePayload","validateNumber","validTypes","validateEnum","validatePattern","validateUri","descriptor","acceptedTypes","foundInvalidType","isType","typeName","acceptedType","vowel","castedValue","Stream","Blob","populateHostPrefix","hasEndpointDiscover","isEndpointOperation","hostPrefix","expandHostPrefix","hostPrefixNotation","regex","prependEndpointPrefix","validateHostname","labels","hostPattern","label","target","builder","assign","__type","Code","pop","Message","writable","QueryParamSerializer","Version","Action","serialize","requestId","Errors","origRules","tmp","_XAMZRequestId","requestIdShape","generateURI","endpointPath","operationPath","queryString","queryStringSet","plus","uriEscapePath","uriEscape","parts","sort","populateMethod","httpMethod","populateURI","httpPath","populateHeaders","memberValue","r","v","header","METHODS_WITHOUT_BODY","applyContentTypeHeader","isBinary","populateBody","rootElement","toXML","upperFirst","ucfirst","isQueryName","toUpperCase","serializeStructure","serializeMember","serializeList","memberRules","suffix","serializeMap","keyName","valueName","now","performance","isFipsRegion","startsWith","isGlobalRegion","getRealRegion","regionConfig","applyConfig","configureEndpoint","derivedKeys","regionPrefix","generateRegionPrefix","item","dualstackFipsRules","fipsRules","dualstackRules","patterns","signingRegion","useBearer","getEndpointSuffix","regionRegexes","regexes","regionPattern","dnsSuffix","AcceptorStateMachine","domain","jmespath","hardErrorStates","success","complete","fsm","setupStates","transition","_haltHandlersOnError","_asm","currentState","isTerminalState","machine","Domain","domainEmitter","domainThrown","addState","active","Response","states","emitEvent","runTo","abort","removeAllListeners","addAbortedError","eachPage","makeAsync","wrappedCallback","hasNextPage","nextPage","noop","eachItem","resultKey","paginationConfig","items","continueIteration","isPageable","createReadStream","streams","PassThrough","nextTick","readable","sent","streamHeaders","HTTP_ERROR","streamHttpError","expectedLen","shouldCheckContentLength","isNaN","receivedLen","checkContentLengthAndEmit","end","httpStream","lengthAccumulator","_write","unpipe","pipe","eventName","args","eventParameters","presign","expires","Presign","sign","toGet","toUnauthenticated","_unAuthenticated","buildAsGet","addListener","promise","reject","mixin","CHECK_ACCEPTORS","_waiter","acceptors","acceptorMatched","acceptor","matcher","matchers","expected","argument","setSuccess","setError","loadWaiterConfig","strictDeepEqual","pathAll","results","numResults","ind","pathAny","listeners","wait","$waiter","maxAttempts","addListeners","numRetries","nextPageTokens","inputTokens","inputToken","cacheNextPageTokens","moreResults","exprs","outputToken","expr","sliceFn","completeInfo","fillQueue","configure","partSize","minPartSize","queueSize","leavePartsOnError","tags","bindServiceObject","validateBody","adjustTotalBytes","maxTotalParts","failed","runFill","fillBuffer","fillStream","partBuffers","cleanup","isDoneChunking","numParts","totalPartNumbers","doneParts","finishMultiPart","singlePart","Body","arraySliceFn","getSignatureVersion","__super__","totalBytes","newPartSize","ceil","partPos","totalChunkedBytes","totalUploadedBytes","activeParts","multipartReq","partBufferLength","bodyLen","nextChunk","endPos","pbuf","rest","isDoneSending","partNumber","Tagging","getTaggingHeader","putObject","_managedUpload","finishSinglePart","ContentMD5","ETag","UploadId","uploadPart","queueChunks","createMultipartUpload","kvPairStrings","Key","Value","partParams","ContentLength","PartNumber","partInfo","_lastUploadedBytes","resume","abortMultipartUpload","part","completeParams","MultipartUpload","Parts","completeMultipartUpload","Location","putObjectTagging","TagSet","httpReq","Bucket","info","_events","listener","toHead","onAsync","_isAsync","splice","eventArgs","doneCallback","count","callListeners","prevError","callNextListener","callbacks","addNamedAsyncListener","clientCount","region_utils","loadServiceClass","useDualstack","ServiceClass","initialize","validateService","endpointFromTemplate","setEndpoint","addDefaultMonitoringListeners","_clientSideMonitoring","publisher","PUBLISH_API_CALL","eventHandler","PUBLISH_API_ATTEMPT","serviceConfig","isEmpty","apiConfig","defineServiceApi","getLatestServiceClass","getLatestServiceVersion","iso8601","selectedVersion","defaultRetryCount","customizeRequests","customRequestHandler","addAllRequestListeners","attachMonitoringEmitter","makeUnauthenticatedRequest","waitFor","serviceInterface","setupRequestListeners","apiCallEvent","monitoringEvent","Type","Region","MaxRetriesExceeded","UserAgent","FinalHttpStatusCode","FinalAwsException","FinalAwsExceptionMessage","FinalSdkException","FinalSdkExceptionMessage","apiAttemptEvent","Fqdn","HttpStatusCode","AccessKey","XAmznRequestId","XAmzRequestId","XAmzId2","attemptFailEvent","AwsException","AwsExceptionMessage","SdkException","SdkExceptionMessage","attemptTimestamp","attemptStartRealTime","attemptLatency","callStartRealTime","callTimestamp","attemptCount","addToHead","API_CALL_ATTEMPT","Timestamp","AttemptLatency","API_CALL_ATTEMPT_RETRY","API_CALL","AttemptCount","latency","Latency","RequestSigner","getVersion","calculateRetryDelay","timeoutError","networkingError","expiredCredentialsError","throttledError","newServerTime","throwException","defineMethods","iterator","versions","features","_serviceMap","addVersions","identifier","Publisher","publisherConfig","configProvider","enabled","superclass","setApi","isApi","attachOn","EVENTS_BUBBLE","baseClass","getPrototypeOf","CALL_EVENTS_BUBBLE","v4Credentials","s3util","regionUtil","operationsWith200StatusCodeError","regionRedirectErrorCodes","OBJECT_LAMBDA_SERVICE","defaultApiVersion","userDefinedVersion","regionDefinedVersion","_super","_parsedArn","shouldDisableBodySigning","signerClass","setExpiresString","prependListener","validateScheme","validateBucketName","optInUsEast1RegionalEndpoint","addContentType","computeContentMd5","computeSseCustomerKeyMd5","addExpect100Continue","hoistPayloadMember","extractErrorFrom200Response","prepareSignedUrl","disableBodySigning","isArnInParam","ARN","validateS3AccessPointArn","validateArnResourceType","validateArnRegion","validateOutpostsAccessPointArn","validateOutpostsArn","validateArnAccount","validateArnService","populateUriFromAccessPointArn","validatePopulateUriFromArn","validateBucketEndpoint","correctBucketRegionFromCache","requestBucketRegion","reqRegionForNetworkingError","scheme","SSECustomerKey","CopySourceSSECustomerKey","allowFipsEndpoint","resource","bucket","slashIndex","isValidAccelerateOperation","insertPoint","regionalEndpoint","pathStyleBucketName","virtualHostedBucket","removeVirtualHostedBucketFromPath","encodedS3Key","accessPointArn","isOutpostArn","isObjectLambdaArn","outpostsSuffix","outpostId","serviceName","fipsSuffix","dualStackSuffix","useArnRegion","accessPoint","accountId","accesspointName","encodedArn","len","contentType","charsetName","willComputeChecksums","needsContentMD5","bucketName","dnsCompatibleBucketName","_requestRegionForBucket","bucketRegionCache","updateReqBucketRegion","s3Config","newConfig","Host","LocationConstraint","createBucketConfiguration","CreateBucketConfiguration","clearBucketRegionCache","extractRequestIds","cachedRegion","codes","reqOperation","reqParams","MaxKeys","regionReq","getRegionReq","listObjects","buckets","requestRegion","extendedRequestId","cfId","getSignedUrl","Expires","createPresignedPost","boundParams","finalizePost","urlFormat","fields","preparePostFields","Fields","Conditions","conditions","expiresInSeconds","signingDate","shortDate","scope","createScope","credential","field","condition","Policy","preparePostPolicy","hmac","getSigningKey","expiration","noPresignedContentLength","createBucket","copiedParams","writeGetObjectResponse","uploader","expiresstring","console","getSignedUrlPromise","inputMembers","parsedArn","exec","delimiter","accessPointPrefix","loadUseArnRegionConfig","regionFromArn","clientRegion","envName","configName","ipAddress","dots","SecretAccessKey","optInRegionalEndpoint","Bearer","expiresHeader","signedUrlBuilder","unixTimestamp","signedUrlSigner","parsedUrl","queryParams","auth","signature","serviceClientId","getServiceClientId","V2","V3","V3Https","subResources","responseHeaders","rfc822","stringToSign","canonicalizedAmzHeaders","canonicalizedResource","amzHeaders","resources","subresource","decodeURIComponent","res","SignatureVersion","SignatureMethod","AWSAccessKeyId","SecurityToken","Signature","datetime","authorization","signedHeaders","headersToSign","h","canonicalHeaders","sha256","algorithm","updateForPresigned","addHeaders","credString","credentialString","qs","isSignableHeader","lowerKey","sep","signingKey","hexEncodedHash","canonicalString","hexEncodedBodyHash","canonicalHeaderValues","values","unsignableHeaders","cachedSecret","cacheQueue","v4Identifier","shouldCache","kDate","kRegion","kService","emptyCache","finalState","bindObject","inputError","accept","acceptState","failState","engine","navigator","platform","agent","encodeURIComponent","escape","ch","charCodeAt","sortedKeys","ename","vals","encode64","decode64","size","toStream","Readable","pos","_read","object","ini","currentSection","indexOfEqualsSign","expectedArgs","toISOString","formatter","crc32Table","tbl","crc","FileReader","reader","onerror","onload","_continueReading","back","readAsArrayBuffer","toHex","iterFunction","array","idx","obj1","obj2","dupe","prop","webkitSlice","mozSlice","str","stack","time","klass","newObject","ctor","ConstructorWrapper","props","isValue","opts","cachedValue","responsePayload","fs","settings","start","ResponseMetadata","RequestId","deletePromises","methodName","isDualstackAvailable","dualstackAvailable","customBackoff","base","random","handleRequestWithRetries","cb","sendRequest","retryAfter","uuidV4","convertPayloadToString","setImmediate","profiles","profilesFromConfig","configOptInEnv","profilesFromCreds","sharedCredentialsFileEnv","profileNames","objectAssign","source","validateARN","parseARN","arn","matched","partition","buildARN","arnObject","imdsDisabledEnv","DomXmlParser","getElementByTagName","xml","tag","elements","getElementsByTagName","parentNode","parseXml","parseStructure","parseMap","xmlKey","xmlValue","tagName","child","firstElementChild","nodeName","textContent","nextElementSibling","parseList","parseUnknown","childNodes","parseScalar","getAttribute","text","isXmlAttribute","attributes","xmlChild","DOMParser","parseFromString","syntaxError","documentElement","isError","errorElement","ActiveXObject","async","loadXML","XmlNode","XmlText","XmlBuilder","addAttribute","element","addChildNode","applyNamespaces","entry","entryKey","entryValue","serializeScalar","isRoot","xmlNamespaceUri","xmlNamespacePrefix","noEmpty","children","escapeAttribute","escapeElement","removeAttribute","hasChildren","xmlText","attributeNames","attributeName","attribute","byteToHex","_default","bytesToUuid","bth","_v3","default","_v","_interopRequireDefault","_v2","_v4","__esModule","safeAdd","y","lsw","md5cmn","bitRotateLeft","num","cnt","md5ff","md5gg","md5hh","md5ii","unescape","md5ToHexEncodedArray","hex","length32","hexTab","wordsToMd5","olda","oldb","oldc","oldd","bytesToWords","length8","rng","getRandomValues","rnds8","bind","msCrypto","z","ROTL","sha1","K","H","l","N","M","j","W","T","_nodeId","_clockseq","_rng","_bytesToUuid","_lastMSecs","_lastNSecs","v1","node","clockseq","seedBytes","msecs","nsecs","dt","tl","tmh","_md","hashfunc","generateUUID","namespace","off","stringToBytes","uuidToBytes","TypeError","DNS","URL","rnds","_sha","LRU_1","maxSize","cache","LRUCache","keyString","endpointRecord","populateValue","records","Expire","identifierNames","identifierName","empty","LinkedListNode","nodeMap","sizeLimit","prependToList","headerNode","prev","next","tailNode","removeFromTail","prevNode","detachFromList","key_1","newNode","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","arr","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","maxChunkLength","len2","encodeChunk","lookup","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","__proto__","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromArrayLike","fromString","isEncoding","actual","fromObject","checked","isnan","assertSize","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","m","bidirectionalIndexOf","dir","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","foundIndex","found","hexWrite","Number","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","byteArray","latin1Write","base64Write","ucs2Write","utf16leToBytes","units","hi","lo","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","global","typedArraySupport","foo","subarray","poolSize","_augment","Symbol","species","allocUnsafeSlow","_isBuffer","compare","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","isFinite","toJSON","_arr","ret","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt16LE","readUInt32LE","readIntLE","readIntBE","readInt16LE","readInt32LE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","Infinity","leadSurrogate","base64clean","stringtrim","src","dst","GetIntrinsic","callBind","$indexOf","callBoundIntrinsic","allowMissing","intrinsic","setFunctionLength","$TypeError","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","func","applyBind","formatDistanceLocale","lessThanXSeconds","one","other","xSeconds","halfAMinute","lessThanXMinutes","xMinutes","aboutXHours","xHours","xDays","aboutXWeeks","xWeeks","aboutXMonths","xMonths","aboutXYears","xYears","overXYears","almostXYears","formatDistance","tokenValue","addSuffix","comparison","buildFormatLongFn","width","defaultWidth","formats","formatLong","full","medium","dateTime","formatRelativeLocale","lastWeek","yesterday","today","tomorrow","nextWeek","buildLocalizeFn","dirtyIndex","valuesArray","formattingValues","defaultFormattingWidth","_defaultWidth","_width","argumentCallback","buildMatchFn","matchPattern","matchPatterns","defaultMatchWidth","matchResult","matchedString","parsePatterns","defaultParseWidth","findIndex","predicate","findKey","valueCallback","formatRelative","_date","_baseDate","_options","localize","ordinalNumber","dirtyNumber","rem100","era","narrow","abbreviated","wide","quarter","month","day","dayPeriod","am","pm","midnight","noon","morning","afternoon","evening","night","buildMatchPatternFn","parseResult","parsePattern","any","weekStartsOn","firstWeekContainsDate","defaultOptions","getDefaultOptions","dateLongFormatter","timeLongFormatter","p","P","dateTimeLongFormatter","dateTimeFormat","datePattern","timePattern","getTimezoneOffsetInMilliseconds","utcDate","UTC","getFullYear","getMonth","getHours","getMinutes","getSeconds","getMilliseconds","setUTCFullYear","MILLISECONDS_IN_WEEK","getUTCISOWeek","dirtyDate","requiredArgs","toDate","diff","startOfUTCISOWeek","startOfUTCISOWeekYear","year","getUTCISOWeekYear","fourthOfJanuary","setUTCHours","getUTCFullYear","fourthOfJanuaryOfNextYear","startOfNextYear","fourthOfJanuaryOfThisYear","startOfThisYear","getUTCWeek","startOfUTCWeek","startOfUTCWeekYear","_ref","_ref2","_ref3","_options$firstWeekCon","_options$locale","_options$locale$optio","_defaultOptions$local","_defaultOptions$local2","toInteger","locale","getUTCWeekYear","firstWeek","firstWeekOfNextYear","firstWeekOfThisYear","protectedDayOfYearTokens","protectedWeekYearTokens","isProtectedDayOfYearToken","isProtectedWeekYearToken","throwProtectedError","getUTCDay","setUTCDate","getUTCDate","_options$weekStartsOn","NaN","addDays","dirtyAmount","amount","setDate","isValid","isDate","_typeof","addLeadingZeros","targetLength","signedYear","getUTCMonth","dayPeriodEnumValue","getUTCHours","getUTCMinutes","getUTCSeconds","S","numberOfDigits","milliseconds","getUTCMilliseconds","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","hours","minutes","formatTimezoneWithOptionalMinutes","formatTimezone","G","unit","lightFormatters","Y","signedWeekYear","weekYear","R","Q","L","week","I","isoWeek","D","dayOfYear","getUTCDayOfYear","timestamp","setUTCMonth","difference","E","dayOfWeek","localDayOfWeek","isoDayOfWeek","B","X","_localize","timezoneOffset","_originalDate","getTimezoneOffset","O","originalDate","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","_ref4","_options$locale2","_options$locale2$opti","_ref5","_ref6","_ref7","_options$locale3","_options$locale3$opti","_defaultOptions$local3","_defaultOptions$local4","formatStr","defaultLocale","subMilliseconds","formatterOptions","firstCharacter","longFormatter","longFormatters","cleanEscapedString","formatters","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","getYear","isAfter","dirtyDateToCompare","dateToCompare","_arrayLikeToArray","_createForOfIteratorHelper","_unsupportedIterableToArray","_n","F","o","_assertThisInitialized","ReferenceError","_inherits","setPrototypeOf","_getPrototypeOf","_isNativeReflectConstruct","Reflect","construct","_createSuper","_possibleConstructorReturn","_classCallCheck","toPropertyKey","toPrimitive","_defineProperties","_createClass","_defineProperty","Setter","_utcDate","ValueSetter","_Setter","validateValue","setValue","priority","subPriority","_this","flags","DateToSystemTimezoneSetter","_Setter2","_super2","_this2","_len","_key","timestampIsSet","convertedDate","setFullYear","setHours","run","dateString","setter","_value","EraParser","_Parser","numericPatterns","timezonePatterns","mapValue","parseFnResult","mapFn","parseNumericPattern","parseTimezonePattern","parseAnyDigitsSigned","parseNDigits","parseNDigitsSigned","dayPeriodEnumToHours","normalizeTwoDigitYear","twoDigitYear","currentYear","isCommonEra","absCurrentYear","rangeEnd","isLeapYearIndex","YearParser","isTwoDigitYear","normalizedTwoDigitYear","LocalWeekYearParser","ISOWeekYearParser","_flags","firstWeekOfYear","ExtendedYearParser","QuarterParser","StandAloneQuarterParser","MonthParser","StandAloneMonthParser","LocalWeekParser","setUTCWeek","dirtyWeek","ISOWeekParser","setUTCISOWeek","dirtyISOWeek","DAYS_IN_MONTH","DAYS_IN_MONTH_LEAP_YEAR","DateParser","isLeapYear","DayOfYearParser","setUTCDay","dirtyDay","DayParser","LocalDayParser","wholeWeekDays","StandAloneLocalDayParser","ISODayParser","setUTCISODay","AMPMParser","AMPMMidnightParser","DayPeriodParser","Hour1to12Parser","isPM","Hour0to23Parser","Hour0To11Parser","Hour1To24Parser","MinuteParser","setUTCMinutes","SecondParser","setUTCSeconds","FractionOfSecondParser","setUTCMilliseconds","ISOTimezoneWithZParser","ISOTimezoneParser","TimestampSecondsParser","TimestampMillisecondsParser","parsers","notWhitespaceRegExp","dirtyDateString","dirtyFormatString","dirtyReferenceDate","formatString","_step","subFnOptions","setters","tokens","usedTokens","_iterator","_loop","incompatibleTokens","incompatibleToken","find","usedToken","fullToken","_ret","uniquePrioritySetters","setterArray","_step2","_iterator2","addMilliseconds","argStr","warn","$SyntaxError","gopd","defineDataProperty","nonEnumerable","nonWritable","nonConfigurable","loose","desc","EvalError","SyntaxError","URIError","_maxListeners","isFunction","isObject","isUndefined","defaultMaxListeners","setMaxListeners","isNumber","er","handler","newListener","warned","trace","once","fired","g","listenerCount","evlistener","isCallable","toStr","thisArg","receiver","forEachArray","forEachString","forEachObject","concatty","bound","slicy","arrLike","boundLength","boundArgs","Function","joiner","joiny","Empty","implementation","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","$Function","getEvalledConstructor","expressionSyntax","$gOPD","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","hasProto","getProto","needsEval","TypedArray","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","decodeURI","encodeURI","eval","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Map","Proxy","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","stringToPath","first","last","quote","subString","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","hasPropertyDescriptors","hasArrayLengthDefineBug","$Object","origSymbol","hasSymbolSham","hasNativeSymbols","getOwnPropertySymbols","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","hasToStringTagShams","toStringTag","$hasOwn","isAbsolute","spliceOne","resolvePathname","to","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","valueEqual","every","aValue","bValue","addLeadingSlash","stripLeadingSlash","stripBasename","hasBasename","stripTrailingSlash","createPath","createLocation","currentLocation","parsePath","hashIndex","searchIndex","_extends","locationsAreEqual","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","isActive","notifyListeners","canUseDOM","createElement","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","createBrowserHistory","invariant","globalHistory","canUseHistory","supportsHistory","ua","needsHashChangeListener","supportsPopStateOnHashChange","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","transitionManager","setState","nextState","handlePopState","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","revertPop","fromLocation","toLocation","toIndex","allKeys","fromIndex","go","initialLocation","createHref","checkDOMListeners","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","unblock","listen","unlisten","HashChangeEvent$1","HashPathCoders","hashbang","encodePath","decodePath","noslash","slash","stripHash","getHashPath","replaceHashPath","createHashHistory","supportsGoWithoutReloadUsingHash","_props$hashType","hashType","_HashPathCoders$hashT","ignorePath","encodedPath","prevLocation","locationsAreEqual$$1","allPaths","baseTag","querySelector","pushHashPath","nextPaths","clamp","lowerBound","upperBound","createMemoryHistory","_props$initialEntries","initialEntries","_props$initialIndex","initialIndex","entries","nextIndex","nextEntries","canGo","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","for","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","inherits","superCtor","super_","TempCtor","hasToStringTag","$toString","callBound","isStandardArguments","isArguments","isLegacyArguments","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","isES6ClassFunction","fnStr","tryFunctionObject","tryFunctionToStr","isIE68","isDDA","isDocumentDotAll","all","strClass","GeneratorFunction","isFnRegex","isGeneratorFunction","generatorFunc","getGeneratorFunc","whichTypedArray","isTypedArray","second","keysSeen","key2","isFalse","trimLeft","TYPE_NUMBER","TYPE_ANY","TYPE_STRING","TYPE_ARRAY","TYPE_OBJECT","TYPE_EXPREF","TYPE_ARRAY_NUMBER","TYPE_ARRAY_STRING","TYPE_NAME_TABLE","TOK_EOF","TOK_UNQUOTEDIDENTIFIER","TOK_QUOTEDIDENTIFIER","TOK_RBRACKET","TOK_RPAREN","TOK_COMMA","TOK_COLON","TOK_RBRACE","TOK_NUMBER","TOK_CURRENT","TOK_EXPREF","TOK_PIPE","TOK_OR","TOK_AND","TOK_EQ","TOK_GT","TOK_LT","TOK_GTE","TOK_LTE","TOK_NE","TOK_FLATTEN","TOK_STAR","TOK_FILTER","TOK_DOT","TOK_NOT","TOK_LBRACE","TOK_LBRACKET","TOK_LPAREN","TOK_LITERAL","basicTokens","operatorStartToken","skipChars","isNum","Lexer","tokenize","_current","_consumeUnquotedIdentifier","_consumeNumber","_consumeLBracket","_consumeQuotedIdentifier","_consumeRawStringLiteral","literal","_consumeLiteral","_consumeOperator","maxLength","current","startingChar","literalString","_looksLikeJSON","ex","bindingPower","TreeInterpreter","runtime","Runtime","interpreter","_interpreter","functionTable","_func","_functionAbs","_signature","avg","_functionAvg","_functionCeil","contains","_functionContains","_functionEndsWith","_functionFloor","_functionLength","_functionMap","_functionMax","_functionMerge","variadic","_functionMaxBy","sum","_functionSum","_functionStartsWith","_functionMin","_functionMinBy","_functionType","_functionKeys","_functionValues","_functionSort","_functionSortBy","_functionJoin","reverse","_functionReverse","_functionToArray","_functionToString","_functionToNumber","_functionNotNull","expression","_loadTokens","ast","_lookahead","_lookaheadToken","rbp","leftToken","_advance","left","nud","currentToken","led","right","Not","_parseProjectionRHS","Star","_parseMultiselectHash","Flatten","_parseIndexExpression","_projectIfSlice","_parseMultiselectList","Expref","_match","_errorToken","tokenName","Dot","_parseDotRHS","Pipe","Or","And","Filter","_parseComparator","tokenType","_parseSliceExpression","indexExpr","comparator","lookahead","expressions","keyToken","pairs","identifierTypes","visit","collected","sliceParams","computed","computeSliceParams","stop","step","objValues","filtered","finalResults","original","merged","resolvedArgs","callFunction","refNode","jmespathType","arrayLength","stepValueNegative","capSliceRange","actualValue","functionEntry","_validateArgs","pluralized","currentSpec","actualType","typeMatched","_getTypeName","_typeMatches","typeIdentifier","argValue","subtype","searchStr","originalStr","reversedStr","reversedArray","inputArray","mapped","exprefNode","maxElement","localeCompare","minElement","listToSum","joinChar","convertedValue","sortedArray","requiredType","decorated","exprA","exprB","maxRecord","resolvedArray","keyFunction","createKeyFunction","maxNumber","minRecord","minNumber","allowedTypes","compile","_slicedToArray","sliceIterator","_d","_e","_s","_i","defineProperties","Constructor","protoProps","staticProps","utils","_interopRequireWildcard","newObj","placeholderReplaceRegex","placeholderReferenceRegex","LocalizedStrings","instance","customLanguageInterface","_opts","getInterfaceLanguage","pseudo","pseudoMultipleLanguages","logsEnabled","_interfaceLanguage","_language","setContent","_Object$keys","defaultLang","_defaultLanguage","_defaultLanguageFirstLevelKeys","validateTranslationKeys","setLanguage","_pseudoAllValues","strArr","randomPseudo","language","_this3","bestLanguage","getBestMatchingLanguage","defaultLanguage","localizedStrings","_fallbackValues","defaultStrings","strings","_this4","getLanguage","getAvailableLanguages","_this5","_availableLanguages","_this6","valuesForPlaceholders","getString","textPart","matchedKey","referenceValue","valueForPlaceholder","valueFromObjectPlaceholder","omitWarning","paths","getContent","nav","languages","userLanguage","browserLanguage","auxLang","translationKeys","reservedNames","possible","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","has","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","arrayAggregator","iteratee","accumulator","arrayFilter","resIndex","baseIndexOf","arrayIncludes","arrayIncludesWith","baseTimes","isIndex","arrayLikeKeys","inherited","isArr","isArg","isBuff","skipIndexes","arrayMap","arrayPush","arraySome","baseAssignValue","eq","assignValue","objValue","assocIndexOf","baseEach","baseAggregator","collection","copyObject","baseAssign","keysIn","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isMap","isSet","argsTag","funcTag","objectTag","cloneableTags","baseClone","bitmask","customizer","isDeep","isFlat","isFull","isFunc","stacked","subValue","objectCreate","baseCreate","proto","baseForOwn","createBaseEach","baseFindIndex","fromRight","baseFor","createBaseFor","castPath","toKey","baseGet","baseGetAllKeys","keysFunc","symbolsFunc","getRawTag","objectToString","symToStringTag","baseGetTag","baseHasIn","baseIsNaN","strictIndexOf","isObjectLike","baseIsArguments","baseIsEqualDeep","baseIsEqual","equalArrays","equalByTag","equalObjects","arrayTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","baseIsMap","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","isMasked","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","baseIsNative","baseIsSet","isLength","typedArrayTags","baseIsTypedArray","baseMatches","baseMatchesProperty","identity","baseIteratee","isPrototype","nativeKeys","baseKeys","nativeKeysIn","baseKeysIn","isProto","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","baseProperty","basePropertyDeep","baseSlice","baseSum","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","baseTrim","baseUnary","cacheHas","createSet","setToArray","baseUniq","isCommon","seen","seenIndex","cloneArrayBuffer","arrayBuffer","root","freeExports","nodeType","freeModule","cloneDataView","dataView","reFlags","cloneRegExp","regexp","lastIndex","symbolValueOf","cloneSymbol","symbol","cloneTypedArray","typedArray","isNew","newValue","getSymbols","getSymbolsIn","coreJsData","createAggregator","initializer","isArrayLike","eachFunc","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","convert","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","isKeyable","getMapData","getValue","getPrototype","overArg","nativeObjectToString","unmasked","stubArray","nativeGetSymbols","mapTag","promiseTag","setTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","Ctor","ctorString","hasPath","hasFunc","nativeCreate","reIsUint","isIterateeCall","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","memoizeCapped","freeProcess","nodeUtil","binding","transform","freeSelf","LARGE_ARRAY_SIZE","reWhitespace","nativeCeil","nativeMax","guard","cloneDeep","CLONE_DEEP_FLAG","groupBy","stubFalse","nodeIsMap","nodeIsSet","nodeIsTypedArray","resolver","memoized","Cache","toNumber","INFINITY","toFinite","remainder","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","uniq","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","propName","componentName","propFullName","getShim","isRequired","ReactPropTypes","bigint","bool","arrayOf","elementType","instanceOf","objectOf","oneOf","oneOfType","exact","checkPropTypes","PropTypes","maxKeys","kstr","vstr","stringifyPrimitive","ks","aa","ca","da","ea","fa","ha","ia","ja","ka","la","ma","acceptsBooleans","attributeNamespace","mustUseProperty","propertyName","sanitizeURL","removeEmptyString","ra","sa","ta","qa","pa","oa","setAttribute","setAttributeNS","xlinkHref","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","va","wa","ya","za","Aa","Ba","Ca","Da","Ea","Fa","Ga","Ha","Ia","Ja","Ka","La","Ma","Na","Oa","prepareStackTrace","Pa","Qa","_context","_payload","_init","Ra","Sa","Ta","Va","_valueTracker","Ua","stopTracking","Wa","Xa","activeElement","Ya","defaultChecked","_wrapperState","initialChecked","Za","initialValue","controlled","bb","db","ownerDocument","eb","fb","selected","defaultSelected","disabled","gb","dangerouslySetInnerHTML","hb","ib","jb","kb","lb","mb","nb","namespaceURI","innerHTML","firstChild","removeChild","appendChild","MSApp","execUnsafeLocalFunction","ob","lastChild","nodeValue","pb","animationIterationCount","aspectRatio","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridArea","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","fontWeight","lineClamp","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","qb","rb","sb","style","setProperty","tb","menuitem","area","br","col","embed","hr","img","keygen","link","meta","track","wbr","ub","vb","is","wb","xb","srcElement","correspondingUseElement","yb","zb","Ab","Bb","Cb","stateNode","Db","Eb","Fb","Gb","Hb","Ib","Jb","Kb","Lb","Mb","Nb","onError","Ob","Pb","Qb","Rb","Sb","Tb","Vb","alternate","return","Wb","memoizedState","dehydrated","Xb","Zb","Yb","sibling","$b","ac","unstable_scheduleCallback","bc","unstable_cancelCallback","cc","unstable_shouldYield","dc","unstable_requestPaint","unstable_now","ec","unstable_getCurrentPriorityLevel","fc","unstable_ImmediatePriority","gc","unstable_UserBlockingPriority","hc","unstable_NormalPriority","ic","unstable_LowPriority","jc","unstable_IdlePriority","kc","lc","oc","clz32","nc","pc","qc","rc","sc","tc","uc","pendingLanes","suspendedLanes","pingedLanes","entangledLanes","entanglements","vc","xc","yc","zc","Ac","eventTimes","Cc","C","Dc","Ec","Fc","Gc","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","Qc","Rc","Sc","delete","pointerId","Tc","nativeEvent","blockedOn","domEventName","eventSystemFlags","targetContainers","Vc","Wc","isDehydrated","containerInfo","Xc","Yc","dispatchEvent","Zc","$c","ad","bd","cd","ReactCurrentBatchConfig","dd","ed","fd","gd","hd","Uc","stopPropagation","jd","kd","ld","md","nd","od","keyCode","charCode","pd","qd","rd","_reactName","_targetInst","currentTarget","isDefaultPrevented","defaultPrevented","returnValue","isPropagationStopped","preventDefault","cancelBubble","persist","isPersistent","wd","xd","yd","sd","eventPhase","bubbles","cancelable","timeStamp","isTrusted","td","ud","detail","vd","Ad","screenX","screenY","clientX","clientY","pageX","pageY","ctrlKey","shiftKey","altKey","metaKey","getModifierState","zd","button","buttons","relatedTarget","fromElement","toElement","movementX","movementY","Bd","Dd","dataTransfer","Fd","Hd","animationName","elapsedTime","pseudoElement","Id","clipboardData","Jd","Ld","Md","Esc","Spacebar","Left","Up","Right","Down","Del","Win","Menu","Apps","Scroll","MozPrintableKey","Nd","Od","Alt","Control","Meta","Shift","Pd","Qd","repeat","which","Rd","Td","height","pressure","tangentialPressure","tiltX","tiltY","twist","pointerType","isPrimary","Vd","touches","targetTouches","changedTouches","Xd","Yd","deltaX","wheelDeltaX","deltaY","wheelDeltaY","wheelDelta","deltaZ","deltaMode","Zd","$d","ae","be","documentMode","ce","de","ee","fe","ge","he","ie","le","color","email","password","range","tel","me","ne","oe","pe","qe","re","se","te","ue","ve","we","xe","ye","ze","oninput","Ae","detachEvent","Be","Ce","attachEvent","De","Ee","Fe","He","Ge","Ie","Je","Ke","nextSibling","Le","compareDocumentPosition","Me","HTMLIFrameElement","contentWindow","Ne","contentEditable","Oe","focusedElem","selectionRange","selectionStart","selectionEnd","defaultView","getSelection","extend","rangeCount","anchorNode","anchorOffset","focusNode","focusOffset","createRange","setStart","removeAllRanges","addRange","setEnd","scrollLeft","top","scrollTop","focus","Pe","Qe","Re","Se","Te","Ue","Ve","We","animationend","animationiteration","animationstart","transitionend","Xe","Ye","Ze","animation","$e","af","bf","cf","df","ef","gf","hf","lf","mf","nf","Ub","of","pf","qf","rf","sf","capture","passive","J","tf","uf","parentWindow","vf","wf","na","xa","$a","ba","je","ke","char","xf","yf","zf","Af","Bf","Cf","Df","Ef","__html","Ff","Gf","clearTimeout","Hf","Jf","queueMicrotask","then","catch","If","Kf","Lf","Mf","previousSibling","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","Wf","Xf","Yf","__reactInternalMemoizedUnmaskedChildContext","__reactInternalMemoizedMaskedChildContext","Zf","$f","ag","bg","getChildContext","cg","__reactInternalMemoizedMergedChildContext","dg","eg","fg","hg","jg","kg","lg","mg","ng","og","pg","qg","rg","sg","tg","ug","vg","wg","xg","yg","zg","Ag","Bg","deletions","Cg","pendingProps","overflow","treeContext","retryLane","Dg","mode","Eg","Fg","Gg","memoizedProps","Hg","Ig","Jg","Kg","Lg","Mg","Ng","Og","Pg","Qg","Rg","_currentValue","Sg","childLanes","Tg","dependencies","firstContext","lanes","Ug","Vg","memoizedValue","Wg","Xg","Yg","interleaved","Zg","$g","ah","updateQueue","baseState","firstBaseUpdate","lastBaseUpdate","shared","pending","effects","bh","eventTime","lane","dh","eh","fh","gh","ih","jh","Component","refs","kh","nh","isMounted","_reactInternals","enqueueSetState","lh","mh","enqueueReplaceState","enqueueForceUpdate","oh","shouldComponentUpdate","isPureReactComponent","ph","updater","qh","componentWillReceiveProps","UNSAFE_componentWillReceiveProps","rh","getSnapshotBeforeUpdate","UNSAFE_componentWillMount","componentWillMount","componentDidMount","sh","ref","_owner","_stringRef","th","uh","vh","wh","xh","yh","zh","Ah","Bh","Ch","Dh","Eh","Fh","Gh","Hh","Ih","Jh","Kh","Lh","Mh","revealOrder","Nh","Oh","_workInProgressVersionPrimary","Ph","ReactCurrentDispatcher","Qh","Rh","Sh","Th","Uh","Vh","Wh","Xh","Yh","Zh","$h","ai","bi","ci","baseQueue","queue","di","ei","fi","lastRenderedReducer","hasEagerState","eagerState","lastRenderedState","dispatch","gi","ji","ki","getSnapshot","li","mi","ni","lastEffect","stores","oi","pi","qi","ri","destroy","deps","si","ti","ui","vi","wi","xi","yi","zi","Ai","Bi","Ci","Di","Ei","Fi","Gi","Hi","Ii","Ji","readContext","useCallback","useContext","useEffect","useImperativeHandle","useInsertionEffect","useLayoutEffect","useMemo","useReducer","useRef","useState","useDebugValue","useDeferredValue","useTransition","useMutableSource","useSyncExternalStore","useId","unstable_isNewReconciler","identifierPrefix","Ki","Li","Mi","Ni","Oi","Pi","Qi","Ri","componentDidCatch","Si","componentStack","Ti","pingCache","Ui","Vi","Wi","Xi","ReactCurrentOwner","Yi","Zi","$i","aj","bj","cj","dj","ej","baseLanes","cachePool","transitions","fj","gj","hj","ij","jj","UNSAFE_componentWillUpdate","componentWillUpdate","componentDidUpdate","kj","lj","pendingContext","mj","Aj","Bj","Cj","Dj","nj","oj","pj","fallback","qj","rj","sj","tj","dataset","dgst","uj","vj","_reactRetry","subtreeFlags","wj","xj","isBackwards","rendering","renderingStartTime","tail","tailMode","yj","Ej","Fj","Gj","wasMultiple","multiple","suppressHydrationWarning","onClick","onclick","createElementNS","autoFocus","createTextNode","Hj","Ij","Jj","Kj","U","Lj","V","Mj","Nj","Oj","Qj","Rj","Sj","Tj","Uj","Vj","Wj","insertBefore","_reactRootContainer","Xj","Yj","Zj","ak","onCommitFiberUnmount","componentWillUnmount","bk","ck","dk","ek","fk","isHidden","gk","hk","display","ik","jk","kk","lk","__reactInternalSnapshotBeforeUpdate","Wk","mk","nk","pk","Z","qk","rk","sk","tk","uk","vk","wk","xk","yk","zk","Ak","Bk","Ck","Dk","Ek","callbackNode","wc","expirationTimes","expiredLanes","callbackPriority","ig","Fk","Gk","Hk","Ik","Jk","Kk","Lk","Mk","Nk","Ok","Pk","finishedWork","finishedLanes","Qk","timeoutHandle","Rk","Sk","Tk","Uk","Vk","Xk","Bc","mutableReadLanes","Pj","mc","onCommitFiberRoot","onRecoverableError","onPostCommitFiberRoot","Yk","Zk","al","isReactComponent","pendingChildren","bl","mutableSourceEagerHydrationData","cl","pendingSuspenseBoundaries","el","fl","gl","hl","il","jl","zj","$k","ll","reportError","ml","_internalRoot","nl","ol","pl","ql","sl","rl","unmount","unstable_scheduleHydration","querySelectorAll","form","usingClientEntryPoint","Events","ul","findFiberByHostInstance","bundleType","rendererPackageName","vl","rendererConfig","overrideHookState","overrideHookStateDeletePath","overrideHookStateRenamePath","overrideProps","overridePropsDeletePath","overridePropsRenamePath","setErrorHandler","setSuspenseHandler","scheduleUpdate","currentDispatcherRef","findHostInstanceByFiber","kl","findHostInstancesForRefresh","scheduleRefresh","scheduleRoot","setRefreshHandler","getCurrentFiber","reconcilerVersion","__REACT_DEVTOOLS_GLOBAL_HOOK__","wl","isDisabled","supportsFiber","inject","createPortal","dl","createRoot","unstable_strictMode","findDOMNode","flushSync","hydrate","hydrateRoot","hydratedSources","_getVersion","_source","unmountComponentAtNode","unstable_batchedUpdates","unstable_renderSubtreeIntoContainer","checkDCE","_react","_getRequireWildcardCache","hasPropertyDescriptor","_classnames","ownKeys","enumerableOnly","symbols","_setPrototypeOf","DEFAULT_PLACEHOLDER_STRING","Dropdown","_Component","parseValue","placeholder","isOpen","dropdownRef","createRef","mounted","handleDocumentClick","fireChangeEvent","subClass","superClass","prevProps","handleMouseDown","onFocus","option","newState","onChange","renderOption","_classes","isSelected","classes","baseClassName","optionClass","dataAttributes","reduce","acc","dataKey","_objectSpread","getOwnPropertyDescriptors","onMouseDown","role","buildMenu","_this$props","ops","groupTitle","tabIndex","isValueSelected","_classNames","_classNames2","_classNames3","_classNames4","_classNames5","_this$props2","controlClassName","placeholderClassName","menuClassName","arrowClassName","arrowClosed","arrowOpen","disabledClass","placeHolderValue","dropdownClass","controlClass","placeholderClass","menuClass","arrowClass","menu","onTouchEnd","COMMON_MIME_TYPES","toFileWithPath","withMimeType","webkitRelativePath","FILES_TO_IGNORE","fromEvent","getDataTransferFiles","getInputFiles","isInput","files","fromList","kind","toFilePromises","noIgnoredFiles","flatten","webkitGetAsEntry","fromDataTransferItem","isDirectory","fromDirEntry","__spread","getAsFile","fwp","fromEntry","fromFileEntry","createReader","readEntries","batch","__awaiter","err_1","fullPath","_arrayWithHoles","_iterableToArrayLimit","_nonIterableRest","getInvalidTypeRejectionErr","messageSuffix","getTooLargeRejectionErr","getTooSmallRejectionErr","minSize","TOO_MANY_FILES_REJECTION","fileAccepted","isAcceptable","accepts","fileMatchSize","isDefined","isEvtWithFiles","onDocumentDragOver","composeEventHandlers","fns","_len2","_key2","_toConsumableArray","_arrayWithoutHoles","arr2","_iterableToArray","iter","_nonIterableSpread","_objectWithoutProperties","excluded","_objectWithoutPropertiesLoose","sourceKeys","sourceSymbolKeys","Dropzone","forwardRef","_useDropzone","useDropzone","React","preventDropOnDocument","noClick","noKeyboard","noDrag","noDragEventsBubbling","getFilesFromEvent","onFileDialogCancel","onDragEnter","onDragLeave","onDragOver","onDrop","onDropAccepted","onDropRejected","initialState","isFocused","isFileDialogActive","isDragActive","isDragAccept","isDragReject","draggedFiles","fileRejections","_ref2$disabled","_ref2$getFilesFromEve","_ref2$maxSize","_ref2$minSize","_ref2$multiple","_ref2$preventDropOnDo","_ref2$noClick","_ref2$noKeyboard","_ref2$noDrag","_ref2$noDragEventsBub","rootRef","inputRef","_useReducer2","reducer","openFileDialog","click","onWindowFocus","onKeyDownCb","isEqualNode","onFocusCb","onBlurCb","onClickCb","isIeOrEdge","isIe","isEdge","dragTargetsRef","onDocumentDrop","onDragEnterCb","onDragOverCb","dropEffect","_unused","onDragLeaveCb","targets","targetIdx","onDropCb","_fileAccepted2","accepted","acceptError","_fileMatchSize2","sizeMatch","sizeError","composeHandler","composeKeyboardHandler","composeDragHandler","getRootProps","_ref3$refKey","refKey","onKeyDown","onBlur","onInputElementClick","getInputProps","_ref4$refKey","autoComplete","fileCount","allFilesAccepted","_react2","_localizedStrings2","placeholderRegex","hasObject","isValidElement","Children","toArray","BrowserRouter","Router","resolveToLocation","normalizeToLocation","forwardRefShim","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","isModifiedEvent","Link","_ref2$component","__RouterContext","Consumer","forwardRefShim$1","forwardRef$1","NavLink","ariaCurrent","_ref$ariaCurrent","activeClassName","_ref$activeClassName","activeStyle","classNameProp","isActiveProp","locationProp","strict","styleProp","escapedPath","matchPath","joinClassnames","classnames","MAX_SIGNED_31_BIT_INT","commonjsGlobal","globalThis","createReactContext","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","getUniqueId","Provider","createEventEmitter","handlers","changedBits","_inheritsLoose","_proto","nextProps","oldValue","objectIs","_Component2","onUpdate","observedBits","_proto2","onlyChild","createNamedContext","createContext","historyContext","createNamedContext$1","_isMounted","_pendingLocation","staticContext","computeRootMatch","isExact","Lifecycle","onMount","onUnmount","cacheLimit","cacheCount","generatePath","compilePath","generator","pathToRegexp","pretty","Redirect","computedMatch","_ref$push","cache$1","cacheLimit$1","cacheCount$1","_options$exact","_options$strict","_options$sensitive","compilePath$1","pathCache","_compilePath","memo","Route","context$1","createURL","staticHandler","Switch","useHistory","useLocation","useParams","useRouteMatch","isarray","tokensToFunction","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","group","modifier","asterisk","partial","optional","prevText","escapeGroup","restrictBacktrack","escapeString","encodeURIComponentPretty","matches","segment","attachKeys","route","endsWithDelimiter","regexpToRegexp","groups","arrayToRegexp","stringToRegexp","forceUpdate","__self","__source","_status","_result","only","PureComponent","cloneElement","_currentValue2","_threadCount","_defaultValue","_globalName","createFactory","lazy","startTransition","unstable_act","sortIndex","expirationTime","priorityLevel","scheduling","isInputPending","MessageChannel","port2","port1","onmessage","postMessage","unstable_Profiling","unstable_continueExecution","unstable_forceFrameRate","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_runWithPriority","unstable_wrapCallback","define","hasDescriptors","gOPD","$floor","functionLengthIsConfigurable","functionLengthIsWritable","punycode","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","digitToBasic","digit","flag","adapt","numPoints","firstTime","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toASCII","toUnicode","Url","slashes","urlResolve","relative","resolveObject","urlResolveObject","isString","protocolPattern","portPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","parseQueryString","slashesDenoteHost","isNull","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","domainArray","newOut","esc","qm","rel","relPath","isSourceAbs","isRelAbs","removeAllDots","srcPath","psychotic","isNullOrUndefined","authInHost","leading","trailing","maxWait","cancelAnimationFrame","requestAnimationFrame","cancel","isPending","flush","equalityFn","isArgumentsObject","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isPromise","isArrayBufferView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","isWeakMap","isWeakSet","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","descriptors","formatRegExp","objects","deprecate","noDeprecation","deprecated","throwDeprecation","traceDeprecation","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","ctx","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","primitive","formatPrimitive","simple","visibleKeys","arrayToHash","formatError","isRegExp","braces","formatArray","formatProperty","reduceToSingleString","cur","numLinesEst","ar","pad","debuglog","pid","isNativeError","isPrimitive","months","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","promiseResolve","promiseReject","custom","callbackify","callbackified","maybeCb","rej","randomUUID","unsafeStringify","native","availableTypedArrays","typedArrays","$slice","superProto","tryAllSlices","getter","trySlices","tryAllTypedArrays","tryTypedArrays","possibleNames","classNames","appendClass","newClass","validationErrorMap","AuthValidationErrorCode","EmptyChallengeResponse","EmptyConfirmResetPasswordUsername","EmptyConfirmSignUpCode","EmptyConfirmSignUpUsername","EmptyConfirmResetPasswordConfirmationCode","EmptyConfirmResetPasswordNewPassword","EmptyResendSignUpCodeUsername","EmptyResetPasswordUsername","EmptySignInPassword","EmptySignInUsername","EmptySignUpPassword","EmptySignUpUsername","CustomAuthSignInPassword","recoverySuggestion","IncorrectMFAMethod","EmptyVerifyTOTPSetupCode","EmptyUpdatePassword","EmptyConfirmUserAttributeCode","AuthErrorStrings","AuthErrorCodes","AuthError","AmplifyError","super","USER_UNAUTHENTICATED_EXCEPTION","USER_ALREADY_AUTHENTICATED_EXCEPTION","DEVICE_METADATA_NOT_FOUND_EXCEPTION","AUTO_SIGN_IN_EXCEPTION","invalidRedirectException","invalidOriginException","OAUTH_SIGNOUT_EXCEPTION","TOKEN_REFRESH_EXCEPTION","UNEXPECTED_SIGN_IN_INTERRUPTION_EXCEPTION","assertServiceError","AmplifyErrorCode","Unknown","underlyingError","assertValidationError","assertion","initialAutoSignIn","autoSignIn","setAutoSignIn","resetAutoSignIn","confirmResetPassword","authConfig","Amplify","getConfig","Auth","Cognito","assertTokenProviderConfig","userPoolClientId","userPoolId","username","newPassword","confirmationCode","clientMetadata","UserContextData","getUserContextData","confirmForgotPassword","getRegion","userAgentValue","getAuthUserAgentValue","AuthAction","ConfirmResetPassword","Username","ConfirmationCode","Password","ClientMetadata","ClientId","confirmSignUp","confirmSignUp$1","ConfirmSignUp","ForceAliasCreation","forceAliasCreation","signUpOut","isSignUpComplete","nextStep","signUpStep","isAutoSignInStarted","isAutoSignInUserUsingConfirmSignUp","stopListener","HubInternal","setAutoSignInStarted","fetchUserAttributes","amplify","fetchAuthSession","assertAuthTokens","UserAttributes","getUser","FetchUserAttributes","AccessToken","accessToken","toAuthUserAttribute","fetchUserAttributes$1","getCurrentUser","getTokens","idToken","authUser","userId","signInDetails","getSignInDetailsFromTokens","getCurrentUser$1","resetPassword","codeDeliveryDetails","forgotPassword","ResetPassword","CodeDeliveryDetails","isPasswordReset","resetPasswordStep","deliveryMedium","DeliveryMedium","destination","Destination","AttributeName","sendUserAttributeVerificationCode","userAttributeKey","getUserAttributeVerificationCode","SendUserAttributeVerificationCode","base64Encoder","urlSafe","inputStr","bytesToString","fromCodePoint","encodedStr","getBtoa","AssociateSoftwareTokenException","ChangePasswordException","ConfirmDeviceException","ConfirmForgotPasswordException","ConfirmSignUpException","DeleteUserAttributesException","DeleteUserException","ForgetDeviceException","ForgotPasswordException","GetUserException","GetIdException","GetCredentialsForIdentityException","GetUserAttributeVerificationException","GlobalSignOutException","InitiateAuthException","ResendConfirmationException","RespondToAuthChallengeException","SetUserMFAPreferenceException","SignUpException","UpdateUserAttributesException","VerifySoftwareTokenException","VerifyUserAttributeException","UpdateDeviceStatusException","ListDevicesException","defaultState","challengeName","signInSession","signInStore","getState","createStore","signInReducer","setActiveSignInState","cleanActiveSignInState","textEncoder","BigInteger","nbi","dbits","inBrowser","appName","am2","xl","am1","am3","DB","DM","DV","FV","F1","F2","BI_RM","BI_RC","rr","vv","int2char","intAt","nbv","fromInt","nbits","Montgomery","mp","invDigit","mpl","mph","um","mt2","montConvert","dlShiftTo","divRemTo","compareTo","ZERO","subTo","revert","montRevert","copyTo","montReduce","u0","drShiftTo","mulTo","montMulTo","multiplyTo","sqrTo","montSqrTo","squareTo","bnpCopyTo","bnpFromInt","bnpFromString","bnpClamp","bnpDLShiftTo","bnpDRShiftTo","lShiftTo","bnpLShiftTo","bs","cbs","bm","ds","rShiftTo","bnpRShiftTo","bnpSubTo","bnpMultiplyTo","bnpSquareTo","bnpDivRemTo","pt","ts","ms","nsh","ys","y0","yt","d1","d2","ONE","bnpInvDigit","addTo","bnpAddTo","bnToString","km","bnNegate","bnAbs","bnCompareTo","bitLength","bnBitLength","mod","bnMod","bnEquals","bnAdd","subtract","bnSubtract","multiply","bnMultiply","divide","bnDivide","modPow","bnModPow","k1","g2","is1","r2","SHORT_TO_HEX","HEX_TO_SHORT","encodedByte","getBytesFromHex","encoded","getHexFromBytes","getHashFromData","hashedData","hashHexFromUint8","getHashFromHex","hexStr","HEX_MSB_REGEX","getPaddedHex","bigInt","isNegative","invertedNibbles","invertedNibble","WordArray","words","sigBytes","Words","getCrypto","hexStringify","wordArray","hexChars","bite","getRandomBytes","AuthenticationHelper","userPoolName","encoder","getRandomPassword","randomPassword","getSaltToHashDevices","saltToHashDevices","getVerifierDevices","verifierDevices","generateHashDevice","deviceGroupKey","combinedString","hashedString","hexRandom","getPasswordAuthenticationKey","serverBValue","salt","calculateU","usernamePassword","usernamePasswordHash","outerErr","outerResult","innerErr","innerResult","calculateS","spacer","hkdfKey","getHkdfKey","ikm","awsCryptoHash","resultFromAWSCryptoPrk","awsCryptoHashHmac","getAuthenticationHelper","generateRandomBigInteger","calculateA","MONTH_NAMES","WEEK_NAMES","getNowString","weekDay","seconds","getSignatureString","challengeParameters","dateNow","hkdf","bufUPIDaToB","bufUNaToB","bufSBaToB","urlB64ToUint8Array","SECRET_BLOCK","bufDNaToB","bufConcat","resultFromAWSCrypto","base64String","rawData","base64Decoder","outputArray","USER_ATTRIBUTES","handleUserPasswordAuthFlow","tokenOrchestrator","authParameters","USERNAME","PASSWORD","deviceMetadata","getDeviceMetadata","deviceKey","DEVICE_KEY","jsonReq","AuthFlow","AuthParameters","initiateAuth","SignIn","activeUsername","ChallengeParameters","USER_ID_FOR_SRP","setActiveSignInUsername","ChallengeName","handleDeviceSRPAuth","session","Session","handleCustomAuthFlowWithoutSRP","clientId","assertDeviceMetadata","authenticationHelper","jsonReqResponseChallenge","ChallengeResponses","SRP_A","respondedChallengeParameters","respondToAuthChallenge","handleDevicePasswordVerifier","SRP_B","SALT","challengeResponses","PASSWORD_CLAIM_SECRET_BLOCK","TIMESTAMP","PASSWORD_CLAIM_SIGNATURE","handlePasswordVerifierChallenge","getSignInResult","isSignedIn","signInStep","additionalInfo","isMFATypeEnabled","challengeParams","mfaType","MFAS_CAN_SETUP","mfaTypes","getMFATypes","parseMFATypes","SignInException","SecretCode","secretCode","associateSoftwareToken","totpSetupDetails","getTOTPSetupDetails","missingAttributes","parseAttributes","requiredAttributes","allowedMFATypes","MFAS_CAN_CHOOSE","CODE_DELIVERY_DELIVERY_MEDIUM","CODE_DELIVERY_DESTINATION","sharedSecret","getSetupUri","accountName","totpUri","AmplifyUrl","getSignInResultFromError","errorName","PasswordResetRequiredException","UserNotConfirmedException","att","getMFAType","mfa","getNewDeviceMetatada","newDeviceMetadata","DeviceKey","DeviceGroupKey","errGenHash","deviceSecretVerifierConfig","Salt","PasswordVerifier","confirmDevice","DeviceSecretVerifierConfig","retryOnResourceNotFoundException","clearDeviceMetadata","getActiveSignInUsername","cacheCognitoTokens","AuthenticationResult","decodeJWT","accessTokenIssuedAtInMillis","iat","clockDrift","refreshToken","RefreshToken","IdToken","NewDeviceMetadata","setTokens","dispatchSignedInHubEvent","Hub","AMPLIFY_SYMBOL","signInWithCustomSRPAuth","authFlowType","handledChallengeName","handledChallengeParameters","handleCustomSRPAuthFlow","CHALLENGE_NAME","signInWithSRP","clientMetaData","handleUserSRPAuthFlow","signIn","assertUserNotAuthenticated","signInWithUserPassword","retiredChallengeName","retriedChallengeParameters","signInWithCustomAuth","retriedChallengeName","retiredChallengeParameters","clearCredentials","isSameOriginAndPathName","isTheSameDomain","isHttp","isHttps","oAuthSignOutRedirect","preferPrivateSession","assertOAuthConfig","loginWith","redirectSignOut","oauth","signoutUri","getRedirectUrl","redirects","redirectUrlFromTheSameOrigin","redirectUrlFromDifferentOrigin","openAuthSession","client_id","logout_uri","handleOAuthSignOut","store","isOAuthSignIn","loadOAuthSignIn","clearOAuthData","clearTokens","completeOAuthSignOut","ConsoleLogger","signOut","hasOAuthConfig","globalSignOut","authTokens","getTokenStore","loadTokens","globalSignOut$1","SignOut","debug","clientSignOut","assertAuthTokensWithRefreshToken","isSessionRevocable","revokeToken","oAuthStore","DefaultOAuthStore","defaultStorage","setAuthConfig","origin_jti","signUp","signUpVerificationMethod","validationData","signInServiceOptions","signInInput","setUsernameUsedForAutoSignIn","clientOutput","signUp$1","SignUp","userAttributes","toAttributeType","ValidationData","UserSub","autoSignInUserConfirmed","handleCodeAutoSignIn","autoSignInWhenUserIsConfirmedWithLink","AuthTokenStorageKeys","oidcProvider","randomPasswordKey","TokenProviderErrorCode","tokenValidationErrorMap","InvalidAuthTokens","assert","createAssertionFunction","DefaultTokenStore","getKeyValueStorage","keyValueStorage","setKeyValueStorage","authKeys","getAuthKeys","accessTokenString","getItem","itString","clockDriftString","getLastAuthUser","storeTokens","lastAuthUser","setItem","getLastAuthUserKey","removeItem","createKeysForAuthStorage","getAuthStorageKeys","authKey","refreshAuthTokens","asyncFunction","inflightPromise","finally","deDupeAsyncFunction","refreshTokenString","REFRESH_TOKEN","inflightPromises","TokenOrchestrator","waitForInflightOAuth","loadOAuthInFlight","_reject","setTokenRefresher","tokenRefresher","setAuthTokenStore","tokenStore","getTokenRefresher","_err","idTokenExpired","isTokenExpired","expiresAt","exp","accessTokenExpired","refreshTokens","newTokens","handleErrors","cognitoUserPoolsTokenProvider","CognitoUserPoolsTokenProvider","authTokenStore","Name","SERVICE_NAME","cognitoUserPoolTransferHandler","composeTransferHandler","unauthenticatedHandler","disableCacheMiddlewareFactory","disableCacheMiddleware","defaultConfig","endpointResolver","customURL","userPoolEndpoint","defaultURL","getDnsSuffix","retryDecider","getRetryDecider","parseJsonError","computeDelay","jitteredBackoff","getAmplifyUserAgent","buildUserPoolSerializer","getSharedHeaders","buildHttpRpcRequest","buildUserPoolDeserializer","parseJsonBody","handleEmptyResponseDeserializer","composeServiceApi","getRegionFromIdentityPoolId","identityPoolId","V5_HOSTED_UI_KEY","clearOAuthInflightData","inflightOAuth","oauthPKCE","oauthState","oauthSignIn","loadOAuthState","storeOAuthState","loadPKCE","storePKCE","pkce","authConfigParam","storeOAuthInFlight","inflight","isLegacyHostedUISignIn","storeOAuthSignIn","OAuthStorageKeys","MAX_AUTOSIGNIN_POLLING_MS","stopHubListener","autoSignInWithCode","timeOutId","debounce","fun","timer","debouncedAutoSignInWithLink","handleAutoSignInWithLink","autoSignInPollingIntervalId","setInterval","clearInterval","signInOutput","debouncedAutoSignWithCodeOrUserConfirmed","handleAutoSignInWithCodeOrUserConfirmed","usernameUsedForAutoSignIn","autoSignInStarted","UserConfirmed","assertIdTokenInAuthTokens","oAuthTokenRefreshException","tokenRefreshException","isAuthenticatedWithImplicitOauthFlow","isAuthenticated","isAuthenticatedWithRefreshToken","amazonCognitoAdvancedSecurityData","AmazonCognitoAdvancedSecurityData","advancedSecurityData","getData","EncodedData","customUserAgentDetails","category","Category","HubClass","protectedChannels","_remove","channel","holder","ampSymbol","capsule","patternInfo","_toListeners","listenerName","NO_HUBCALLBACK_PROVIDED_EXCEPTION","LogType","LOG_LEVELS","VERBOSE","DEBUG","INFO","WARN","NONE","level","_pluggables","_padding","_ts","_config","_log","loggerLevelName","LOG_LEVEL","BIND_ALL_LOG_LEVELS","plugin","logEvent","pushLogs","verbose","addPluggable","pluggable","getCategoryName","AWS_CLOUDWATCH_CATEGORY","listPluggables","globalExists","windowExists","documentExists","processExists","keyPrefixMatch","detectionMap","Framework","Expo","detectionMethod","expoDetect","expo","ReactNative","reactNativeDetect","product","NextJs","nextWebDetect","Nuxt","nuxtWebDetect","__NUXT__","$nuxt","Angular","angularWebDetect","angularVersionSetInDocument","angularContentSetInWindow","reactWebDetect","elementKeyPrefixedWithReact","VueJs","vueWebDetect","Svelte","svelteWebDetect","WebUnknown","webDetect","NextJsSSR","nextSSRDetect","NuxtSSR","nuxtSSRDetect","__NUXT_PATHS__","ReactSSR","reactSSRDetect","VueJsSSR","vueSSRDetect","AngularSSR","angularSSRDetect","npm_lifecycle_script","SvelteSSR","svelteSSRDetect","frameworkCache","frameworkChangeObservers","resetTriggered","detectFramework","detect","detectionEntry","ServerSideUnknown","fcn","resetTimeout","observeFrameworkChanges","framework","customUserAgentState","BASE_USER_AGENT","PlatformBuilder","isReactNative","getAmplifyUserAgentObject","customState","getCustomUserAgent","additionalDetails","agentKey","agentValue","AnalyticsAction","ApiAction","DataStoreAction","GeoAction","InAppMessagingAction","InteractionsAction","PredictionsAction","PubSubAction","PushNotificationAction","StorageAction","defaultPartition","outputs","regionRegex","regions","partitionsInfo","partitions","cancellableSleep","timeoutMs","abortSignal","aborted","timeoutId","sleepPromiseResolveFn","sleepPromise","cancelSleep","addOrIncrementMetadataAttempts","nextHandlerOutput","attempts","$metadata","withMemoization","payloadAccessor","cached","shouldSendBody","withCrossDomainCredentials","fetch","signal","json","userAgentMiddlewareFactory","userAgentHeader","userAgentMiddleware","headerName","retryMiddlewareFactory","retryMiddleware","attemptsCount","handleTerminalErrorOrResponse","transferHandler","serializer","deserializer","resolvedConfig","coreHandler","middleware","composedHandler","composeHandlerRequest","resolvedMiddleware","CLOCK_SKEW_ERROR_CODES","errorParser","parsedError","isConnectionError","isThrottlingError","isClockSkewError","isServerSideError","THROTTLING_ERROR_CODES","TIMEOUT_ERROR_CODES","DEFAULT_MAX_DELAY_MS","attempt","delayFunction","maxDelayMs","jitteredBackoff$1","rawValue","cleanValue","sanitizeErrorCode","parseMetadata","isMetadataBearer","httpStatusCode","errorMap","AssertionError","additionalContext","authTypeMapping","API_KEY","AWS_IAM","AMAZON_COGNITO_USER_POOLS","OPENID_CONNECT","AWS_LAMBDA","LAMBDA","parseAWSExports","aws_appsync_apiKey","aws_appsync_authenticationType","aws_appsync_graphqlEndpoint","aws_appsync_region","aws_bots_config","aws_cognito_identity_pool_id","aws_cognito_sign_up_verification_method","aws_cognito_mfa_configuration","aws_cognito_mfa_types","aws_cognito_password_protection_settings","aws_cognito_verification_mechanisms","aws_cognito_signup_attributes","aws_cognito_social_providers","aws_cognito_username_attributes","aws_mandatory_sign_in","aws_mobile_analytics_app_id","aws_mobile_analytics_app_region","aws_user_files_s3_bucket","aws_user_files_s3_bucket_region","aws_user_files_s3_dangerously_connect_to_http_endpoint_for_testing","aws_user_pools_id","aws_user_pools_web_client_id","geo","predictions","aws_cloud_logic_custom","Notifications","modelIntrospection","amplifyConfig","Analytics","Pinpoint","appId","InAppMessaging","Push","AWSPinpoint","PushNotification","Interactions","LexV1","fromEntries","bot","defaultAuthMode","API","GraphQL","apiKey","mfaConfig","totpEnabled","smsEnabled","passwordFormatConfig","minLength","passwordPolicyMinLength","requireLowercase","passwordPolicyCharacters","requireUppercase","requireNumbers","requireSpecialCharacters","loginWithEmailEnabled","loginWithPhoneEnabled","allowGuestAccess","passwordFormat","phone","hasSocialProviderConfig","getOAuthConfig","parseSocialProviders","Storage","dangerouslyConnectToHttpEndpointForTesting","amazon_location_service","Geo","LocationService","searchIndices","search_indices","REST","VoiceId","voiceId","speechGenerator","defaults","Predictions","redirectStr","redirectSignIn","scopes","updatedProvider","deepFreeze","propNames","freeze","ADD_OAUTH_LISTENER","AmplifyClass","oAuthListener","resourcesConfig","libraryOptions","AuthClass","resolvedResourceConfig","notifyOAuthListener","authResourcesConfig","authOptions","credentialsAndIdentityId","userSub","credentialsProvider","getCredentialsAndIdentityId","authenticated","clearCredentialsAndIdentityId","AuthConfigurationErrorCode","authConfigurationErrorMap","AuthTokenConfigException","AuthUserPoolAndIdentityPoolException","AuthUserPoolException","InvalidIdentityPoolIdException","OAuthNotConfigureException","assertionValid","assertIdentityPoolIdConfig","tokenParts","jsonStr","fetchAuthSession$1","PlatformNotSupportedError","PlatformNotSupported","KeyValueStorage","InMemoryStorage","DefaultStorage","SessionStorage","sessionStorage","getAtob","btoa","atob","init","converter","defaultAttributes","stringifiedAttributes","cookie","cookies","jar","withAttributes","withConverter","CookieStorage","sameSite","secure","JsCookie","promises","IdentityIdStorageKeys","cognitoIdentityTransferHandler","deserializeCredentials","getCredentialsForIdentitySerializer","getIdSerializer","formLoginsMap","issuer","iss","generateIdentityId","logins","idResult","CREDENTIALS_TTL","cognitoCredentialsProvider","CognitoAWSCredentialsAndIdentityIdProvider","identityIdStore","_nextCredentialsRefresh","_identityIdStore","_credentialsAndIdentityId","clearIdentityId","getCredentialsOptions","tokenHasChanged","hasTokenChanged","cognitoIdentityIdProvider","loadIdentityId","generatedIdentityId","storeIdentityId","credsForOIDCTokens","getGuestCredentials","isPastTTL","isAuthenticatedCreds","clientResult","identityIdRes","associatedIdToken","DefaultIdentityIdStore","_authKeys","_primaryIdentityId","storedIdentityId","DefaultAmplify","resourceConfig","ssr","wrap","kindOf","thing","kindOfTest","typeOfTest","isPlainObject","isFile","isBlob","isFileList","isURLSearchParams","allOwnKeys","_global","isContextDefined","isHTMLForm","reduceDescriptors","reducedDescriptors","ALPHA","DIGIT","ALPHABET","ALPHA_DIGIT","isAsyncFn","isFormData","FormData","append","isStream","caseless","targetKey","stripBOM","content","superConstructor","toFlatObject","sourceObj","destObj","propFilter","searchString","forEachEntry","pair","matchAll","regExp","hasOwnProp","freezeMethods","toObjectSet","arrayOrString","toCamelCase","replacer","p1","p2","toFiniteNumber","generateString","alphabet","isSpecCompliantForm","toJSONObject","reducedValue","isThenable","AxiosError","captureStackTrace","description","lineNumber","columnNumber","customProps","axiosError","cause","isVisitable","removeBrackets","renderKey","predicates","toFormData","formData","metaTokens","indexes","defined","visitor","defaultVisitor","useBlob","convertValue","isFlatArray","exposedHelpers","charMap","AxiosURLSearchParams","_pairs","_encode","buildURL","serializeFn","serializedParams","hashmarkIndex","InterceptorManager","use","fulfilled","rejected","synchronous","runWhen","eject","forEachHandler","silentJSONParsing","forcedJSONParsing","clarifyTimeoutError","URLSearchParams","protocols","hasBrowserEnv","hasStandardBrowserEnv","hasStandardBrowserWebWorkerEnv","WorkerGlobalScope","importScripts","formDataToJSON","buildPath","isNumericKey","isLast","arrayToObject","parsePropPath","transitional","transitionalDefaults","adapter","transformRequest","getContentType","hasJSONContentType","isObjectPayload","setContentType","toURLEncodedForm","helpers","formSerializer","_FormData","stringifySafely","transformResponse","JSONRequested","strictJSONParsing","ERR_BAD_RESPONSE","xsrfCookieName","xsrfHeaderName","maxContentLength","maxBodyLength","validateStatus","common","ignoreDuplicateOf","$internals","normalizeHeader","normalizeValue","matchHeaderValue","isHeaderNameFilter","AxiosHeaders","valueOrRewrite","rewrite","setHeader","_header","_rewrite","lHeader","setHeaders","parseTokens","tokensRE","deleted","deleteHeader","normalize","normalized","formatHeader","asStrings","accessor","accessors","defineAccessor","buildAccessors","accessorName","arg1","arg2","arg3","headerValue","transformData","isCancel","__CANCEL__","CanceledError","ERR_CANCELED","toGMTString","buildFullPath","baseURL","requestedURL","isAbsoluteURL","combineURLs","relativeURL","standardBrowserEnv","msie","urlParsingNode","originURL","resolveURL","isURLSameOrigin","requestURL","speedometer","samplesCount","timestamps","firstSampleTS","head","chunkLength","startedAt","bytesCount","passed","progressEventReducer","isDownloadStream","bytesNotified","_speedometer","lengthComputable","progressBytes","rate","estimated","knownAdapters","dispatchXhrRequest","requestData","requestHeaders","onCanceled","withXSRFToken","cancelToken","unsubscribe","onloadend","settle","ERR_BAD_REQUEST","_resolve","paramsSerializer","onreadystatechange","handleLoad","responseURL","onabort","handleAbort","ECONNABORTED","handleError","ERR_NETWORK","ontimeout","handleTimeout","timeoutErrorMessage","ETIMEDOUT","xsrfValue","onDownloadProgress","onUploadProgress","subscribe","parseProtocol","renderReason","isResolvedHandle","adapters","nameOrAdapter","rejectedReasons","reasons","throwIfCancellationRequested","throwIfRequested","dispatchRequest","onAdapterResolution","onAdapterRejection","headersToObject","mergeConfig","config1","config2","getMergedValue","mergeDeepProperties","valueFromConfig2","defaultToConfig2","mergeDirectKeys","mergeMap","timeoutMessage","decompress","beforeRedirect","transport","httpAgent","httpsAgent","socketPath","responseEncoding","computeConfigValue","validators","validator","deprecatedWarnings","formatMessage","opt","ERR_DEPRECATED","assertOptions","schema","allowUnknown","ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","Axios","instanceConfig","interceptors","configOrUrl","_request","dummy","boolean","function","contextHeaders","requestInterceptorChain","synchronousRequestInterceptors","unshiftRequestInterceptors","interceptor","responseInterceptorChain","pushResponseInterceptors","onFulfilled","onRejected","getUri","forEachMethodNoData","forEachMethodWithData","generateHTTPMethod","isForm","CancelToken","executor","promiseExecutor","_listeners","onfulfilled","Continue","SwitchingProtocols","Processing","EarlyHints","Created","Accepted","NonAuthoritativeInformation","NoContent","ResetContent","PartialContent","MultiStatus","AlreadyReported","ImUsed","MultipleChoices","MovedPermanently","Found","SeeOther","NotModified","UseProxy","Unused","TemporaryRedirect","PermanentRedirect","BadRequest","Unauthorized","PaymentRequired","Forbidden","NotFound","MethodNotAllowed","NotAcceptable","ProxyAuthenticationRequired","RequestTimeout","Conflict","Gone","LengthRequired","PreconditionFailed","PayloadTooLarge","UriTooLong","UnsupportedMediaType","RangeNotSatisfiable","ExpectationFailed","ImATeapot","MisdirectedRequest","UnprocessableEntity","Locked","FailedDependency","TooEarly","UpgradeRequired","PreconditionRequired","TooManyRequests","RequestHeaderFieldsTooLarge","UnavailableForLegalReasons","InternalServerError","NotImplemented","BadGateway","ServiceUnavailable","GatewayTimeout","HttpVersionNotSupported","VariantAlsoNegotiates","InsufficientStorage","LoopDetected","NotExtended","NetworkAuthenticationRequired","axios","createInstance","Cancel","spread","isAxiosError","formToJSON","getAdapter","clsx","isProduction","provided","_arguments","adopt","__generator","trys","Iterator","verb","op","__read","SuppressedError"],"sourceRoot":""}