{"version":3,"file":"static/chunks/pages/_app-ae9ffcaa85e931fd.js","mappings":"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","sources":["webpack://_N_E/./node_modules/@binance-chain/bsc-connector/dist/bsc-connector.cjs.production.min.js","webpack://_N_E/./node_modules/@binance-chain/bsc-connector/dist/index.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/address.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/anonymous.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/array.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/boolean.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/bytes.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/fixed-bytes.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/null.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/number.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/string.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/tuple.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/abi-coder.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/coders/abstract-coder.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/fragments.js","webpack://_N_E/./node_modules/@ethersproject/abi/lib.esm/interface.js","webpack://_N_E/./node_modules/@ethersproject/abstract-provider/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/abstract-provider/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/abstract-signer/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/abstract-signer/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/address/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/address/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/base64/lib.esm/base64.js","webpack://_N_E/./node_modules/@ethersproject/basex/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/bignumber/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/bignumber/lib.esm/bignumber.js","webpack://_N_E/./node_modules/@ethersproject/bignumber/lib.esm/fixednumber.js","webpack://_N_E/./node_modules/@ethersproject/bignumber/node_modules/bn.js/lib/bn.js","webpack://_N_E/./node_modules/@ethersproject/bytes/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/bytes/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/constants/lib.esm/addresses.js","webpack://_N_E/./node_modules/@ethersproject/constants/lib.esm/bignumbers.js","webpack://_N_E/./node_modules/@ethersproject/constants/lib.esm/hashes.js","webpack://_N_E/./node_modules/@ethersproject/contracts/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/contracts/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/hash/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/hash/lib.esm/id.js","webpack://_N_E/./node_modules/@ethersproject/hash/lib.esm/ens-normalize/decoder.js","webpack://_N_E/./node_modules/@ethersproject/hash/lib.esm/ens-normalize/lib.js","webpack://_N_E/./node_modules/@ethersproject/hash/lib.esm/ens-normalize/include.js","webpack://_N_E/./node_modules/@ethersproject/hash/lib.esm/namehash.js","webpack://_N_E/./node_modules/@ethersproject/hash/lib.esm/typed-data.js","webpack://_N_E/./node_modules/@ethersproject/keccak256/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/logger/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/logger/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/networks/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/networks/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/properties/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/properties/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/base-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/formatter.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/ws.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/websocket-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/alchemy-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/ankr-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/cloudflare-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/etherscan-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/fallback-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/ipc-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/infura-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/json-rpc-batch-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/nodesmith-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/pocket-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/json-rpc-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/url-json-rpc-provider.js","webpack://_N_E/./node_modules/@ethersproject/providers/lib.esm/web3-provider.js","webpack://_N_E/./node_modules/@ethersproject/random/lib.esm/shuffle.js","webpack://_N_E/./node_modules/@ethersproject/rlp/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/rlp/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/sha2/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/sha2/lib.esm/sha2.js","webpack://_N_E/./node_modules/@ethersproject/sha2/lib.esm/types.js","webpack://_N_E/./node_modules/@ethersproject/signing-key/lib.esm/elliptic.js","webpack://_N_E/./node_modules/@ethersproject/signing-key/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/signing-key/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/signing-key/node_modules/bn.js/lib/bn.js","webpack://_N_E/./node_modules/@ethersproject/solidity/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/solidity/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/strings/lib.esm/bytes32.js","webpack://_N_E/./node_modules/@ethersproject/strings/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/strings/lib.esm/utf8.js","webpack://_N_E/./node_modules/@ethersproject/transactions/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/transactions/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/units/lib.esm/_version.js","webpack://_N_E/./node_modules/@ethersproject/units/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/web/lib.esm/geturl.js","webpack://_N_E/./node_modules/@ethersproject/web/lib.esm/index.js","webpack://_N_E/./node_modules/@ethersproject/web/lib.esm/_version.js","webpack://_N_E/./node_modules/immer/dist/immer.esm.mjs","webpack://_N_E/./node_modules/redux-thunk/es/index.js","webpack://_N_E/./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js","webpack://_N_E/./node_modules/@sentry/browser/esm/stack-parsers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://_N_E/./node_modules/@sentry/browser/esm/flags.js","webpack://_N_E/./node_modules/@sentry/browser/esm/helpers.js","webpack://_N_E/./node_modules/@sentry/utils/esm/enums.js","webpack://_N_E/./node_modules/@sentry/utils/esm/severity.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack://_N_E/./node_modules/@sentry/core/esm/integration.js","webpack://_N_E/./node_modules/@sentry/core/esm/baseclient.js","webpack://_N_E/./node_modules/@sentry/utils/esm/envelope.js","webpack://_N_E/./node_modules/@sentry/core/esm/request.js","webpack://_N_E/./node_modules/@sentry/core/esm/transports/noop.js","webpack://_N_E/./node_modules/@sentry/core/esm/basebackend.js","webpack://_N_E/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://_N_E/./node_modules/@sentry/utils/esm/ratelimit.js","webpack://_N_E/./node_modules/@sentry/utils/esm/status.js","webpack://_N_E/./node_modules/@sentry/core/esm/transports/base.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/utils.js","webpack://_N_E/./node_modules/@sentry/utils/esm/async.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/base.js","webpack://_N_E/./node_modules/@sentry/utils/esm/clientreport.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://_N_E/./node_modules/@sentry/browser/esm/backend.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/new-fetch.js","webpack://_N_E/./node_modules/@sentry/browser/esm/transports/new-xhr.js","webpack://_N_E/./node_modules/@sentry/browser/esm/client.js","webpack://_N_E/./node_modules/@sentry/browser/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/esm/sdk.js","webpack://_N_E/./node_modules/@sentry/core/esm/api.js","webpack://_N_E/./node_modules/@sentry/core/esm/flags.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://_N_E/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://_N_E/./node_modules/@sentry/core/esm/version.js","webpack://_N_E/./node_modules/@sentry/hub/esm/flags.js","webpack://_N_E/./node_modules/@sentry/hub/esm/session.js","webpack://_N_E/./node_modules/@sentry/hub/esm/hub.js","webpack://_N_E/./node_modules/@sentry/hub/esm/scope.js","webpack://_N_E/./node_modules/@sentry/minimal/esm/index.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/constants.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/flags.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/hubextensions.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/span.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/transaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/idletransaction.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/utils.js","webpack://_N_E/./node_modules/@sentry/types/esm/severity.js","webpack://_N_E/./node_modules/@sentry/utils/esm/browser.js","webpack://_N_E/./node_modules/@sentry/utils/esm/dsn.js","webpack://_N_E/./node_modules/@sentry/utils/esm/polyfill.js","webpack://_N_E/./node_modules/@sentry/utils/esm/error.js","webpack://_N_E/./node_modules/@sentry/utils/esm/flags.js","webpack://_N_E/./node_modules/@sentry/utils/esm/global.js","webpack://_N_E/./node_modules/@sentry/utils/esm/instrument.js","webpack://_N_E/./node_modules/@sentry/utils/esm/is.js","webpack://_N_E/./node_modules/@sentry/utils/esm/logger.js","webpack://_N_E/./node_modules/@sentry/utils/esm/misc.js","webpack://_N_E/./node_modules/@sentry/utils/esm/node.js","webpack://_N_E/./node_modules/@sentry/utils/esm/env.js","webpack://_N_E/./node_modules/@sentry/utils/esm/normalize.js","webpack://_N_E/./node_modules/@sentry/utils/esm/memo.js","webpack://_N_E/./node_modules/@sentry/utils/esm/object.js","webpack://_N_E/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://_N_E/./node_modules/@sentry/utils/esm/string.js","webpack://_N_E/./node_modules/@sentry/utils/esm/supports.js","webpack://_N_E/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://_N_E/./node_modules/@sentry/utils/esm/time.js","webpack://_N_E/./node_modules/@sentry/webpack-plugin/src/sentry-webpack.module.js","webpack://_N_E/./node_modules/@stablelib/binary/lib/binary.js","webpack://_N_E/./node_modules/@stablelib/chacha/lib/chacha.js","webpack://_N_E/./node_modules/@stablelib/chacha20poly1305/lib/chacha20poly1305.js","webpack://_N_E/./node_modules/@stablelib/constant-time/lib/constant-time.js","webpack://_N_E/./node_modules/@stablelib/hash/lib/hash.js","webpack://_N_E/./node_modules/@stablelib/hkdf/lib/hkdf.js","webpack://_N_E/./node_modules/@stablelib/hmac/lib/hmac.js","webpack://_N_E/./node_modules/@stablelib/int/lib/int.js","webpack://_N_E/./node_modules/@stablelib/poly1305/lib/poly1305.js","webpack://_N_E/./node_modules/@stablelib/random/lib/random.js","webpack://_N_E/./node_modules/@stablelib/random/lib/source/browser.js","webpack://_N_E/./node_modules/@stablelib/random/lib/source/node.js","webpack://_N_E/./node_modules/@stablelib/random/lib/source/system.js","webpack://_N_E/./node_modules/@stablelib/sha256/lib/sha256.js","webpack://_N_E/./node_modules/@stablelib/wipe/lib/wipe.js","webpack://_N_E/./node_modules/@stablelib/x25519/lib/x25519.js","webpack://_N_E/./node_modules/@swc/helpers/lib/_define_property.js","webpack://_N_E/./node_modules/@uniswap/token-lists/dist/token-lists.esm.js","webpack://_N_E/./node_modules/@wagmi/connectors/node_modules/query-string/index.js","webpack://_N_E/./node_modules/@walletconnect/relay-api/dist/index.es.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/constants/index.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/constants/misc.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/constants/time.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/index.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/types/index.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/types/watch.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/utils/convert.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/utils/delay.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/utils/index.js","webpack://_N_E/./node_modules/@walletconnect/time/dist/cjs/watch.js","webpack://_N_E/./node_modules/@walletconnect/window-getters/dist/cjs/index.js","webpack://_N_E/./node_modules/@walletconnect/window-metadata/dist/cjs/index.js","webpack://_N_E/./node_modules/@web3-react/abstract-connector/dist/abstract-connector.esm.js","webpack://_N_E/./node_modules/@web3-react/types/dist/types.esm.js","webpack://_N_E/./node_modules/@web3modal/common/node_modules/dayjs/dayjs.min.js","webpack://_N_E/./node_modules/@web3modal/common/node_modules/dayjs/plugin/relativeTime.js","webpack://_N_E/./node_modules/@web3modal/common/node_modules/dayjs/plugin/updateLocale.js","webpack://_N_E/./node_modules/base64-js/index.js","webpack://_N_E/./node_modules/bech32/index.js","webpack://_N_E/./node_modules/big.js/big.js","webpack://_N_E/./node_modules/buffer/index.js","webpack://_N_E/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://_N_E/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://_N_E/./node_modules/date-fns/esm/toDate/index.js","webpack://_N_E/./node_modules/decimal.js-light/decimal.js","webpack://_N_E/./node_modules/decode-uri-component/index.js","webpack://_N_E/./node_modules/dijkstrajs/dijkstra.js","webpack://_N_E/./node_modules/encode-utf8/index.js","webpack://_N_E/./node_modules/eventemitter3/index.js","webpack://_N_E/./node_modules/events/events.js","webpack://_N_E/./node_modules/extract-files/public/ReactNativeFile.js","webpack://_N_E/./node_modules/extract-files/public/extractFiles.js","webpack://_N_E/./node_modules/extract-files/public/index.js","webpack://_N_E/./node_modules/extract-files/public/isExtractableFile.js","webpack://_N_E/./node_modules/filter-obj/index.js","webpack://_N_E/./node_modules/form-data/lib/browser.js","webpack://_N_E/./node_modules/graphql-request/dist/createRequestBody.js","webpack://_N_E/./node_modules/graphql-request/dist/defaultJsonSerializer.js","webpack://_N_E/./node_modules/graphql-request/dist/graphql-ws.js","webpack://_N_E/./node_modules/graphql-request/dist/index.js","webpack://_N_E/./node_modules/graphql-request/dist/parseArgs.js","webpack://_N_E/./node_modules/graphql-request/dist/types.js","webpack://_N_E/./node_modules/hash.js/lib/hash.js","webpack://_N_E/./node_modules/hash.js/lib/hash/common.js","webpack://_N_E/./node_modules/hash.js/lib/hash/hmac.js","webpack://_N_E/./node_modules/hash.js/lib/hash/ripemd.js","webpack://_N_E/./node_modules/hash.js/lib/hash/sha.js","webpack://_N_E/./node_modules/hash.js/lib/hash/sha/1.js","webpack://_N_E/./node_modules/hash.js/lib/hash/sha/224.js","webpack://_N_E/./node_modules/hash.js/lib/hash/sha/256.js","webpack://_N_E/./node_modules/hash.js/lib/hash/sha/384.js","webpack://_N_E/./node_modules/hash.js/lib/hash/sha/512.js","webpack://_N_E/./node_modules/hash.js/lib/hash/sha/common.js","webpack://_N_E/./node_modules/hash.js/lib/hash/utils.js","webpack://_N_E/./node_modules/hey-listen/dist/hey-listen.es.js","webpack://_N_E/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://_N_E/./node_modules/ieee754/index.js","webpack://_N_E/./node_modules/inherits/inherits_browser.js","webpack://_N_E/./node_modules/js-sha3/src/sha3.js","webpack://_N_E/./node_modules/jsbi/dist/jsbi-umd.js","webpack://_N_E/./node_modules/local-storage/local-storage.js","webpack://_N_E/./node_modules/local-storage/parse.js","webpack://_N_E/./node_modules/local-storage/stub.js","webpack://_N_E/./node_modules/local-storage/tracking.js","webpack://_N_E/./node_modules/localforage/dist/localforage.js","webpack://_N_E/./node_modules/lodash/_DataView.js","webpack://_N_E/./node_modules/lodash/_Hash.js","webpack://_N_E/./node_modules/lodash/_ListCache.js","webpack://_N_E/./node_modules/lodash/_Map.js","webpack://_N_E/./node_modules/lodash/_MapCache.js","webpack://_N_E/./node_modules/lodash/_Promise.js","webpack://_N_E/./node_modules/lodash/_Set.js","webpack://_N_E/./node_modules/lodash/_SetCache.js","webpack://_N_E/./node_modules/lodash/_Stack.js","webpack://_N_E/./node_modules/lodash/_Symbol.js","webpack://_N_E/./node_modules/lodash/_Uint8Array.js","webpack://_N_E/./node_modules/lodash/_WeakMap.js","webpack://_N_E/./node_modules/lodash/_arrayAggregator.js","webpack://_N_E/./node_modules/lodash/_arrayFilter.js","webpack://_N_E/./node_modules/lodash/_arrayIncludes.js","webpack://_N_E/./node_modules/lodash/_arrayIncludesWith.js","webpack://_N_E/./node_modules/lodash/_arrayLikeKeys.js","webpack://_N_E/./node_modules/lodash/_arrayMap.js","webpack://_N_E/./node_modules/lodash/_arrayPush.js","webpack://_N_E/./node_modules/lodash/_arrayReduce.js","webpack://_N_E/./node_modules/lodash/_arraySome.js","webpack://_N_E/./node_modules/lodash/_asciiWords.js","webpack://_N_E/./node_modules/lodash/_assocIndexOf.js","webpack://_N_E/./node_modules/lodash/_baseAggregator.js","webpack://_N_E/./node_modules/lodash/_baseAssignValue.js","webpack://_N_E/./node_modules/lodash/_baseEach.js","webpack://_N_E/./node_modules/lodash/_baseFindIndex.js","webpack://_N_E/./node_modules/lodash/_baseFlatten.js","webpack://_N_E/./node_modules/lodash/_baseFor.js","webpack://_N_E/./node_modules/lodash/_baseForOwn.js","webpack://_N_E/./node_modules/lodash/_baseGet.js","webpack://_N_E/./node_modules/lodash/_baseGetAllKeys.js","webpack://_N_E/./node_modules/lodash/_baseGetTag.js","webpack://_N_E/./node_modules/lodash/_baseHasIn.js","webpack://_N_E/./node_modules/lodash/_baseIndexOf.js","webpack://_N_E/./node_modules/lodash/_baseIsArguments.js","webpack://_N_E/./node_modules/lodash/_baseIsEqual.js","webpack://_N_E/./node_modules/lodash/_baseIsEqualDeep.js","webpack://_N_E/./node_modules/lodash/_baseIsMatch.js","webpack://_N_E/./node_modules/lodash/_baseIsNaN.js","webpack://_N_E/./node_modules/lodash/_baseIsNative.js","webpack://_N_E/./node_modules/lodash/_baseIsTypedArray.js","webpack://_N_E/./node_modules/lodash/_baseIteratee.js","webpack://_N_E/./node_modules/lodash/_baseKeys.js","webpack://_N_E/./node_modules/lodash/_baseMap.js","webpack://_N_E/./node_modules/lodash/_baseMatches.js","webpack://_N_E/./node_modules/lodash/_baseMatchesProperty.js","webpack://_N_E/./node_modules/lodash/_baseOrderBy.js","webpack://_N_E/./node_modules/lodash/_baseProperty.js","webpack://_N_E/./node_modules/lodash/_basePropertyDeep.js","webpack://_N_E/./node_modules/lodash/_basePropertyOf.js","webpack://_N_E/./node_modules/lodash/_baseRange.js","webpack://_N_E/./node_modules/lodash/_baseSlice.js","webpack://_N_E/./node_modules/lodash/_baseSortBy.js","webpack://_N_E/./node_modules/lodash/_baseTimes.js","webpack://_N_E/./node_modules/lodash/_baseToString.js","webpack://_N_E/./node_modules/lodash/_baseTrim.js","webpack://_N_E/./node_modules/lodash/_baseUnary.js","webpack://_N_E/./node_modules/lodash/_baseUniq.js","webpack://_N_E/./node_modules/lodash/_cacheHas.js","webpack://_N_E/./node_modules/lodash/_castPath.js","webpack://_N_E/./node_modules/lodash/_compareAscending.js","webpack://_N_E/./node_modules/lodash/_compareMultiple.js","webpack://_N_E/./node_modules/lodash/_coreJsData.js","webpack://_N_E/./node_modules/lodash/_createAggregator.js","webpack://_N_E/./node_modules/lodash/_createBaseEach.js","webpack://_N_E/./node_modules/lodash/_createBaseFor.js","webpack://_N_E/./node_modules/lodash/_createCompounder.js","webpack://_N_E/./node_modules/lodash/_createRange.js","webpack://_N_E/./node_modules/lodash/_createSet.js","webpack://_N_E/./node_modules/lodash/_deburrLetter.js","webpack://_N_E/./node_modules/lodash/_defineProperty.js","webpack://_N_E/./node_modules/lodash/_equalArrays.js","webpack://_N_E/./node_modules/lodash/_equalByTag.js","webpack://_N_E/./node_modules/lodash/_equalObjects.js","webpack://_N_E/./node_modules/lodash/_freeGlobal.js","webpack://_N_E/./node_modules/lodash/_getAllKeys.js","webpack://_N_E/./node_modules/lodash/_getMapData.js","webpack://_N_E/./node_modules/lodash/_getMatchData.js","webpack://_N_E/./node_modules/lodash/_getNative.js","webpack://_N_E/./node_modules/lodash/_getRawTag.js","webpack://_N_E/./node_modules/lodash/_getSymbols.js","webpack://_N_E/./node_modules/lodash/_getTag.js","webpack://_N_E/./node_modules/lodash/_getValue.js","webpack://_N_E/./node_modules/lodash/_hasPath.js","webpack://_N_E/./node_modules/lodash/_hasUnicodeWord.js","webpack://_N_E/./node_modules/lodash/_hashClear.js","webpack://_N_E/./node_modules/lodash/_hashDelete.js","webpack://_N_E/./node_modules/lodash/_hashGet.js","webpack://_N_E/./node_modules/lodash/_hashHas.js","webpack://_N_E/./node_modules/lodash/_hashSet.js","webpack://_N_E/./node_modules/lodash/_isFlattenable.js","webpack://_N_E/./node_modules/lodash/_isIndex.js","webpack://_N_E/./node_modules/lodash/_isIterateeCall.js","webpack://_N_E/./node_modules/lodash/_isKey.js","webpack://_N_E/./node_modules/lodash/_isKeyable.js","webpack://_N_E/./node_modules/lodash/_isMasked.js","webpack://_N_E/./node_modules/lodash/_isPrototype.js","webpack://_N_E/./node_modules/lodash/_isStrictComparable.js","webpack://_N_E/./node_modules/lodash/_listCacheClear.js","webpack://_N_E/./node_modules/lodash/_listCacheDelete.js","webpack://_N_E/./node_modules/lodash/_listCacheGet.js","webpack://_N_E/./node_modules/lodash/_listCacheHas.js","webpack://_N_E/./node_modules/lodash/_listCacheSet.js","webpack://_N_E/./node_modules/lodash/_mapCacheClear.js","webpack://_N_E/./node_modules/lodash/_mapCacheDelete.js","webpack://_N_E/./node_modules/lodash/_mapCacheGet.js","webpack://_N_E/./node_modules/lodash/_mapCacheHas.js","webpack://_N_E/./node_modules/lodash/_mapCacheSet.js","webpack://_N_E/./node_modules/lodash/_mapToArray.js","webpack://_N_E/./node_modules/lodash/_matchesStrictComparable.js","webpack://_N_E/./node_modules/lodash/_memoizeCapped.js","webpack://_N_E/./node_modules/lodash/_nativeCreate.js","webpack://_N_E/./node_modules/lodash/_nativeKeys.js","webpack://_N_E/./node_modules/lodash/_nodeUtil.js","webpack://_N_E/./node_modules/lodash/_objectToString.js","webpack://_N_E/./node_modules/lodash/_overArg.js","webpack://_N_E/./node_modules/lodash/_root.js","webpack://_N_E/./node_modules/lodash/_setCacheAdd.js","webpack://_N_E/./node_modules/lodash/_setCacheHas.js","webpack://_N_E/./node_modules/lodash/_setToArray.js","webpack://_N_E/./node_modules/lodash/_stackClear.js","webpack://_N_E/./node_modules/lodash/_stackDelete.js","webpack://_N_E/./node_modules/lodash/_stackGet.js","webpack://_N_E/./node_modules/lodash/_stackHas.js","webpack://_N_E/./node_modules/lodash/_stackSet.js","webpack://_N_E/./node_modules/lodash/_strictIndexOf.js","webpack://_N_E/./node_modules/lodash/_stringToPath.js","webpack://_N_E/./node_modules/lodash/_toKey.js","webpack://_N_E/./node_modules/lodash/_toSource.js","webpack://_N_E/./node_modules/lodash/_trimmedEndIndex.js","webpack://_N_E/./node_modules/lodash/_unicodeWords.js","webpack://_N_E/./node_modules/lodash/chunk.js","webpack://_N_E/./node_modules/lodash/debounce.js","webpack://_N_E/./node_modules/lodash/deburr.js","webpack://_N_E/./node_modules/lodash/eq.js","webpack://_N_E/./node_modules/lodash/flatMap.js","webpack://_N_E/./node_modules/lodash/fromPairs.js","webpack://_N_E/./node_modules/lodash/get.js","webpack://_N_E/./node_modules/lodash/groupBy.js","webpack://_N_E/./node_modules/lodash/hasIn.js","webpack://_N_E/./node_modules/lodash/identity.js","webpack://_N_E/./node_modules/lodash/isArguments.js","webpack://_N_E/./node_modules/lodash/isArray.js","webpack://_N_E/./node_modules/lodash/isArrayLike.js","webpack://_N_E/./node_modules/lodash/isBuffer.js","webpack://_N_E/./node_modules/lodash/isEmpty.js","webpack://_N_E/./node_modules/lodash/isFunction.js","webpack://_N_E/./node_modules/lodash/isLength.js","webpack://_N_E/./node_modules/lodash/isObject.js","webpack://_N_E/./node_modules/lodash/isObjectLike.js","webpack://_N_E/./node_modules/lodash/isSymbol.js","webpack://_N_E/./node_modules/lodash/isTypedArray.js","webpack://_N_E/./node_modules/lodash/kebabCase.js","webpack://_N_E/./node_modules/lodash/keys.js","webpack://_N_E/./node_modules/lodash/map.js","webpack://_N_E/./node_modules/lodash/memoize.js","webpack://_N_E/./node_modules/lodash/noop.js","webpack://_N_E/./node_modules/lodash/now.js","webpack://_N_E/./node_modules/lodash/orderBy.js","webpack://_N_E/./node_modules/lodash/property.js","webpack://_N_E/./node_modules/lodash/range.js","webpack://_N_E/./node_modules/lodash/stubArray.js","webpack://_N_E/./node_modules/lodash/stubFalse.js","webpack://_N_E/./node_modules/lodash/throttle.js","webpack://_N_E/./node_modules/lodash/toFinite.js","webpack://_N_E/./node_modules/lodash/toInteger.js","webpack://_N_E/./node_modules/lodash/toNumber.js","webpack://_N_E/./node_modules/lodash/toString.js","webpack://_N_E/./node_modules/lodash/uniq.js","webpack://_N_E/./node_modules/lodash/uniqBy.js","webpack://_N_E/./node_modules/lodash/words.js","webpack://_N_E/./node_modules/minimalistic-assert/index.js","webpack://_N_E/./node_modules/next-themes/dist/index.module.js","webpack://_N_E/","webpack://_N_E/./packages/swap-sdk/src/constants.ts","webpack://_N_E/./packages/swap-sdk/src/errors.ts","webpack://_N_E/./packages/swap-sdk/src/utils.ts","webpack://_N_E/./packages/swap-sdk/src/entities/currency.ts","webpack://_N_E/./packages/swap-sdk/src/entities/token.ts","webpack://_N_E/./node_modules/@swc/helpers/src/_get.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_super_prop_base.mjs","webpack://_N_E/./packages/swap-sdk/src/entities/fractions/fraction.ts","webpack://_N_E/./packages/swap-sdk/src/entities/fractions/currencyAmount.ts","webpack://_N_E/./packages/swap-sdk/src/entities/fractions/tokenAmount.ts","webpack://_N_E/./packages/swap-sdk/src/entities/fractions/price.ts","webpack://_N_E/./packages/swap-sdk/src/entities/pair.ts","webpack://_N_E/./packages/swap-sdk/src/entities/route.ts","webpack://_N_E/./packages/swap-sdk/src/entities/fractions/percent.ts","webpack://_N_E/./packages/swap-sdk/src/entities/trade.ts","webpack://_N_E/./packages/swap-sdk/src/router.ts","webpack://_N_E/./packages/swap-sdk/src/fetcher.ts","webpack://_N_E/./packages/uikit/src/ResetCSS.tsx","webpack://_N_E/./packages/uikit/src/components/Alert/Alert.tsx","webpack://_N_E/./packages/uikit/src/components/Alert/theme.ts","webpack://_N_E/./packages/uikit/src/components/Alert/types.ts","webpack://_N_E/./packages/uikit/src/components/BottomDrawer/styles.ts","webpack://_N_E/./node_modules/popmotion/dist/es/utils/is-point.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/is-point-3d.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/distance.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/PanSession.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-calc.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/constraints.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/each-axis.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/VisualElementDragControls.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/models.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/drag.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-pan-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/use-drag.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-border-radius.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-box-shadow.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/MeasureLayout.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/layout/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/animation/mix-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/copy.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-remove.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/shared/stack.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/compare-by-depth.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/flat-tree.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/create-projection-node.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/animate.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/DocumentProjectionNode.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/HTMLProjectionNode.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion.mjs","webpack://_N_E/./packages/uikit/src/components/Box/Box.tsx","webpack://_N_E/./packages/uikit/src/components/Box/Flex.tsx","webpack://_N_E/./packages/uikit/src/components/Button/theme.ts","webpack://_N_E/./packages/uikit/src/components/Button/StyledButton.tsx","webpack://_N_E/./packages/uikit/src/components/Button/Button.tsx","webpack://_N_E/./packages/uikit/src/components/Button/IconButton.tsx","webpack://_N_E/./packages/uikit/src/components/Button/types.ts","webpack://_N_E/./packages/uikit/src/components/CakePrice/CakePrice.tsx","webpack://_N_E/./packages/uikit/src/components/Card/theme.ts","webpack://_N_E/./packages/uikit/src/components/Checkbox/types.ts","webpack://_N_E/./packages/uikit/src/components/Checkbox/Checkbox.tsx","webpack://_N_E/./packages/uikit/src/components/DropdownMenu/types.ts","webpack://_N_E/./packages/uikit/src/components/Heading/Heading.tsx","webpack://_N_E/./packages/uikit/src/components/Heading/types.ts","webpack://_N_E/./packages/uikit/src/components/Image/Image.tsx","webpack://_N_E/./packages/uikit/src/components/Image/Placeholder.tsx","webpack://_N_E/./packages/uikit/src/components/Image/Wrapper.tsx","webpack://_N_E/./packages/uikit/src/components/Image/options.ts","webpack://_N_E/./packages/uikit/src/components/Input/Input.tsx","webpack://_N_E/./packages/uikit/src/components/Input/types.ts","webpack://_N_E/./packages/uikit/src/components/Link/Link.tsx","webpack://_N_E/./packages/uikit/src/components/MenuItem/styles.tsx","webpack://_N_E/./packages/uikit/src/components/MenuItem/MenuItem.tsx","webpack://_N_E/./packages/uikit/src/components/Message/theme.ts","webpack://_N_E/./packages/uikit/src/components/Message/Message.tsx","webpack://_N_E/./packages/uikit/src/components/NotificationDot/NotificationDot.tsx","webpack://_N_E/./packages/uikit/src/components/Overlay/Overlay.tsx","webpack://_N_E/./packages/uikit/src/components/PancakeToggle/theme.ts","webpack://_N_E/./packages/uikit/src/components/Radio/theme.ts","webpack://_N_E/./packages/uikit/src/components/Skeleton/types.ts","webpack://_N_E/./packages/uikit/src/components/Skeleton/Skeleton.tsx","webpack://_N_E/./packages/uikit/src/components/SubMenuItems/styles.tsx","webpack://_N_E/./packages/uikit/src/components/SubMenuItems/SubMenuItems.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/ArrowBack.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Block.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/CheckmarkCircle.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/CheckmarkCircleFill.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/ChevronDown.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/ChevronLeft.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/ChevronRight.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Close.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Cog.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Copy.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Earn.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/EarnFill.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Error.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/FacebookIcon.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Help.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Info.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Logo.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/LogoRound.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/LogoWithText.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Logout.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Moon.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/More.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/OpenNew.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Refresh.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Sun.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Swap.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/SwapFill.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Telegram.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Trophy.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/TrophyFill.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Twitter.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/WalletFilled.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Icons/Warning.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/Svg.tsx","webpack://_N_E/./packages/uikit/src/components/Text/Text.tsx","webpack://_N_E/./packages/uikit/src/components/ThemeSwitcher/ThemeSwitcher.tsx","webpack://_N_E/./packages/uikit/src/components/Toggle/types.ts","webpack://_N_E/./packages/uikit/src/components/Toggle/StyledToggle.tsx","webpack://_N_E/./packages/uikit/src/components/Toggle/Toggle.tsx","webpack://_N_E/./packages/uikit/src/components/Toggle/theme.ts","webpack://_N_E/./packages/uikit/src/components/Tooltip/theme.ts","webpack://_N_E/./packages/uikit/src/contexts/MatchBreakpoints/Provider.tsx","webpack://_N_E/./packages/uikit/src/contexts/MatchBreakpoints/useMatchBreakpointsContext.ts","webpack://_N_E/./packages/uikit/src/hooks/useIsomorphicEffect.ts","webpack://_N_E/./packages/uikit/src/hooks/useMatchBreakpoints.ts","webpack://_N_E/./packages/uikit/src/hooks/useOnClickOutside.ts","webpack://_N_E/./packages/uikit/src/hooks/useTooltip/StyledTooltip.tsx","webpack://_N_E/./packages/uikit/src/hooks/useTooltip/useTooltip.tsx","webpack://_N_E/./packages/uikit/src/theme/base.ts","webpack://_N_E/./packages/uikit/src/theme/colors.ts","webpack://_N_E/./packages/uikit/src/theme/dark.ts","webpack://_N_E/./packages/uikit/src/theme/light.ts","webpack://_N_E/./packages/uikit/src/util/animationToolkit.ts","webpack://_N_E/./packages/uikit/src/util/externalLinkProps.ts","webpack://_N_E/./packages/uikit/src/util/getPortalRoot.ts","webpack://_N_E/./packages/uikit/src/util/getThemeValue.ts","webpack://_N_E/./packages/uikit/src/util/isTouchDevice.ts","webpack://_N_E/./packages/uikit/src/components/Svg/styles.tsx","webpack://_N_E/./packages/uikit/src/components/Svg/AnimatedIconComponent.tsx","webpack://_N_E/./packages/uikit/src/components/BottomNavItem/styles.tsx","webpack://_N_E/./packages/uikit/src/components/BottomNavItem/BottomNavItem.tsx","webpack://_N_E/./packages/uikit/src/components/BottomNav/styles.tsx","webpack://_N_E/./packages/uikit/src/components/DropdownMenu/styles.tsx","webpack://_N_E/./packages/uikit/src/components/DropdownMenu/DropdownMenu.tsx","webpack://_N_E/./packages/uikit/src/components/BottomNav/BottomNav.tsx","webpack://_N_E/./packages/uikit/src/components/MenuItems/MenuItems.tsx","webpack://_N_E/./packages/uikit/src/widgets/Menu/Menu.tsx","webpack://_N_E/./packages/uikit/src/widgets/Menu/components/Logo.tsx","webpack://_N_E/./packages/uikit/src/widgets/Menu/components/UserMenu/types.ts","webpack://_N_E/./packages/uikit/src/widgets/Menu/components/UserMenu/MenuIcon.tsx","webpack://_N_E/./packages/uikit/src/widgets/Menu/components/UserMenu/index.tsx","webpack://_N_E/./packages/uikit/src/widgets/Menu/components/UserMenu/styles.tsx","webpack://_N_E/./packages/uikit/src/widgets/Menu/config.ts","webpack://_N_E/./packages/uikit/src/widgets/Menu/context.ts","webpack://_N_E/./packages/uikit/src/widgets/Menu/theme.ts","webpack://_N_E/./packages/uikit/src/widgets/Modal/Modal.tsx","webpack://_N_E/./packages/uikit/src/widgets/Modal/ModalContext.tsx","webpack://_N_E/./packages/uikit/src/widgets/Modal/styles.tsx","webpack://_N_E/./packages/uikit/src/widgets/Modal/theme.ts","webpack://_N_E/./packages/uikit/src/widgets/Modal/useModal.ts","webpack://_N_E/./packages/uikit/src/widgets/WalletModal/types.ts","webpack://_N_E/./node_modules/next/dist/client/get-domain-locale.js","webpack://_N_E/./node_modules/next/dist/client/image.js","webpack://_N_E/./node_modules/next/dist/client/link.js","webpack://_N_E/./node_modules/next/dist/client/use-intersection.js","webpack://_N_E/./node_modules/next/dist/shared/lib/app-router-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/dynamic.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable-context.js","webpack://_N_E/./node_modules/next/dist/shared/lib/loadable.js","webpack://_N_E/./node_modules/@sentry/browser/esm/index.js","webpack://_N_E/./node_modules/@sentry/utils/esm/tracing.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/backgroundtab.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/metrics.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/request.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/router.js","webpack://_N_E/./node_modules/@sentry/tracing/esm/browser/browsertracing.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/performance/client.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/userIntegrations.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/index.client.js","webpack://_N_E/./sentry.client.config.js","webpack://_N_E/./node_modules/@sentry/nextjs/esm/utils/metadata.js","webpack://_N_E/./node_modules/@sentry/react/esm/sdk.js","webpack://_N_E/./src/components/ConnectWalletButton.tsx","webpack://_N_E/./src/components/Layout/Container.tsx","webpack://_N_E/./src/config/constants/meta.ts","webpack://_N_E/./src/components/Layout/Page.tsx","webpack://_N_E/./src/components/Logo/Logo.tsx","webpack://_N_E/./src/components/Menu/GlobalSettings/TransactionSettings.tsx","webpack://_N_E/./src/components/Menu/GlobalSettings/ExpertModal.tsx","webpack://_N_E/./src/components/Menu/GlobalSettings/GasSettings.tsx","webpack://_N_E/./src/components/Menu/GlobalSettings/SettingsModal.tsx","webpack://_N_E/./src/components/Menu/GlobalSettings/index.tsx","webpack://_N_E/./src/components/Menu/GlobalSettings/types.ts","webpack://_N_E/./src/components/NextLink.tsx","webpack://_N_E/./src/components/QuestionHelper/index.tsx","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://_N_E/./node_modules/react-transition-group/esm/TransitionGroupContext.js","webpack://_N_E/./node_modules/react-transition-group/esm/utils/ChildMapping.js","webpack://_N_E/./node_modules/react-transition-group/esm/TransitionGroup.js","webpack://_N_E/./node_modules/dom-helpers/esm/removeClass.js","webpack://_N_E/./node_modules/react-transition-group/esm/config.js","webpack://_N_E/./node_modules/react-transition-group/esm/utils/reflow.js","webpack://_N_E/./node_modules/react-transition-group/esm/Transition.js","webpack://_N_E/./node_modules/react-transition-group/esm/CSSTransition.js","webpack://_N_E/./node_modules/dom-helpers/esm/addClass.js","webpack://_N_E/./node_modules/dom-helpers/esm/hasClass.js","webpack://_N_E/./src/components/Toast/Toast.tsx","webpack://_N_E/./src/components/Toast/types.ts","webpack://_N_E/./src/components/Toast/ToastContainer.tsx","webpack://_N_E/./src/components/Toast/DescriptionWithTx.tsx","webpack://_N_E/./src/components/Trans.tsx","webpack://_N_E/./src/config/abi/erc20.ts","webpack://_N_E/./src/config/constants/endpoints.ts","webpack://_N_E/./src/config/constants/exchange.ts","webpack://_N_E/./src/config/constants/index.ts","webpack://_N_E/./src/config/constants/testnetfarms.ts","webpack://_N_E/./src/config/constants/ifo.ts","webpack://_N_E/./src/config/constants/lists.ts","webpack://_N_E/./src/config/constants/pools.tsx","webpack://_N_E/./src/config/constants/tokens.ts","webpack://_N_E/./src/config/constants/types.ts","webpack://_N_E/./src/config/index.ts","webpack://_N_E/./src/config/localization/languages.ts","webpack://_N_E/./src/contexts/Localization/helpers.ts","webpack://_N_E/./src/contexts/Localization/Provider.tsx","webpack://_N_E/./src/contexts/Localization/useTranslation.ts","webpack://_N_E/./src/contexts/ToastsContext/Provider.tsx","webpack://_N_E/./src/contexts/ToastsContext/Listener.tsx","webpack://_N_E/./src/hooks/Tokens.ts","webpack://_N_E/./src/hooks/useBUSDPrice.ts","webpack://_N_E/./src/hooks/useContract.ts","webpack://_N_E/./src/hooks/useDebounce.ts","webpack://_N_E/./src/hooks/useEthersProvider.ts","webpack://_N_E/./src/hooks/useFetchListCallback.ts","webpack://_N_E/./src/hooks/useLastUpdated.ts","webpack://_N_E/./src/hooks/usePairs.ts","webpack://_N_E/./src/hooks/usePreviousValue.ts","webpack://_N_E/./src/hooks/useSWRContract.ts","webpack://_N_E/./src/hooks/useTheme.ts","webpack://_N_E/./src/hooks/useToast.ts","webpack://_N_E/./src/components/GlobalCheckClaimStatus/index.tsx","webpack://_N_E/./src/components/SubgraphHealthIndicator/FixedSubgraphHealthIndicator.tsx","webpack://_N_E/./src/hooks/useSentryUser.ts","webpack://_N_E/./src/hooks/useUserAgent.ts","webpack://_N_E/./src/hooks/useThemeCookie.ts","webpack://_N_E/./node_modules/redux-persist/es/integration/react.js","webpack://_N_E/./src/state/block/hooks.ts","webpack://_N_E/./src/utils/isUndefinedOrNull.ts","webpack://_N_E/./src/hooks/useIsWindowVisible.ts","webpack://_N_E/./src/state/lists/updater.ts","webpack://_N_E/./src/hooks/useInterval.ts","webpack://_N_E/./src/state/multicall/retry.ts","webpack://_N_E/./src/state/multicall/updater.tsx","webpack://_N_E/./src/state/multicall/chunkArray.ts","webpack://_N_E/./src/state/transactions/updater.tsx","webpack://_N_E/./src/index.tsx","webpack://_N_E/./node_modules/@sentry/react/esm/flags.js","webpack://_N_E/./node_modules/@sentry/react/esm/errorboundary.js","webpack://_N_E/./src/components/NetworkSwitcher.tsx","webpack://_N_E/./src/components/PhishingWarningBanner/index.tsx","webpack://_N_E/./src/components/Menu/UserMenu/index.tsx","webpack://_N_E/./src/hooks/useActiveIfoWithBlocks.ts","webpack://_N_E/./src/config/constants/trading-competition/phases.ts","webpack://_N_E/./src/components/Menu/hooks/useMenuItemsStatus.ts","webpack://_N_E/./src/components/Menu/hooks/useCompetitionStatus.ts","webpack://_N_E/./src/views/Ifos/hooks/helpers.ts","webpack://_N_E/./src/components/Menu/config/config.ts","webpack://_N_E/./src/components/Menu/utils.ts","webpack://_N_E/./src/components/Menu/index.tsx","webpack://_N_E/./src/components/Menu/hooks/useMenuItems.ts","webpack://_N_E/./src/components/Menu/config/footerConfig.ts","webpack://_N_E/./node_modules/@web3-react/core/dist/core.esm.js","webpack://_N_E/./node_modules/@web3-react/injected-connector/dist/injected-connector.esm.js","webpack://_N_E/./node_modules/@web3-react/walletconnect-connector/dist/walletconnect-connector.esm.js","webpack://_N_E/./src/utils/web3React.ts","webpack://_N_E/./src/Providers.tsx","webpack://_N_E/./src/style/Global.tsx","webpack://_N_E/./src/pages/_app.tsx","webpack://_N_E/./src/components/ErrorBoundary/ErrorBoundary.tsx","webpack://_N_E/./src/state/burn/actions.ts","webpack://_N_E/./node_modules/redux-persist/es/constants.js","webpack://_N_E/./node_modules/redux-persist/es/stateReconciler/autoMergeLevel1.js","webpack://_N_E/./node_modules/redux-persist/es/createPersistoid.js","webpack://_N_E/./node_modules/redux-persist/es/getStoredState.js","webpack://_N_E/./node_modules/redux-persist/es/purgeStoredState.js","webpack://_N_E/./node_modules/redux-persist/es/persistReducer.js","webpack://_N_E/./node_modules/redux-persist/es/persistStore.js","webpack://_N_E/./src/utils/IndexedDBStorage.ts","webpack://_N_E/./src/state/lists/reducer.ts","webpack://_N_E/./src/state/nftMarket/types.ts","webpack://_N_E/./src/state/burn/reducer.ts","webpack://_N_E/./src/state/global/actions.ts","webpack://_N_E/./src/state/info/actions.ts","webpack://_N_E/./src/state/info/index.ts","webpack://_N_E/./src/state/mint/reducer.ts","webpack://_N_E/./src/state/multicall/reducer.ts","webpack://_N_E/./src/views/Nft/market/constants.ts","webpack://_N_E/./src/config/constants/nftsCollections/delist.ts","webpack://_N_E/./src/state/nftMarket/queries.ts","webpack://_N_E/./src/state/nftMarket/helpers.ts","webpack://_N_E/./src/state/swap/reducer.ts","webpack://_N_E/./src/state/nftMarket/reducer.ts","webpack://_N_E/./src/state/pools/fetchPools.ts","webpack://_N_E/./src/state/pools/fetchPoolsUser.ts","webpack://_N_E/./src/state/pools/fetchVaultPublic.ts","webpack://_N_E/./src/state/pools/fetchUserIfo.ts","webpack://_N_E/./src/views/Pools/helpers.tsx","webpack://_N_E/./src/state/pools/fetchVaultUser.ts","webpack://_N_E/./src/state/pools/index.ts","webpack://_N_E/./src/utils/localStorageOrders.ts","webpack://_N_E/./src/state/transactions/reducer.ts","webpack://_N_E/./src/state/user/reducer.ts","webpack://_N_E/./src/state/limitOrders/types.ts","webpack://_N_E/./src/state/limitOrders/reducer.ts","webpack://_N_E/./src/state/limitOrders/actions.ts","webpack://_N_E/./src/state/index.ts","webpack://_N_E/./node_modules/redux-persist/es/createMigrate.js","webpack://_N_E/./src/state/lists/actions.ts","webpack://_N_E/./src/state/lists/hooks.ts","webpack://_N_E/./src/state/mint/actions.ts","webpack://_N_E/./src/state/multicall/actions.ts","webpack://_N_E/./src/state/multicall/hooks.ts","webpack://_N_E/./src/state/swap/actions.ts","webpack://_N_E/./src/state/swap/useSwapActionHandlers.ts","webpack://_N_E/./src/state/transactions/actions.ts","webpack://_N_E/./src/state/types.ts","webpack://_N_E/./src/state/user/actions.ts","webpack://_N_E/./src/state/user/hooks/helpers.ts","webpack://_N_E/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://_N_E/./node_modules/date-fns/esm/startOfDay/index.js","webpack://_N_E/./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://_N_E/./node_modules/date-fns/esm/differenceInDays/index.js","webpack://_N_E/./src/state/user/hooks/index.tsx","webpack://_N_E/./src/state/user/hooks/useUserAddedTokens.ts","webpack://_N_E/./src/config/constants/contracts.ts","webpack://_N_E/./src/utils/addressHelpers.ts","webpack://_N_E/./src/utils/bigNumber.ts","webpack://_N_E/./src/utils/contractHelpers.ts","webpack://_N_E/./src/utils/copyText.ts","webpack://_N_E/./src/utils/formatBalance.ts","webpack://_N_E/./src/utils/getFullDecimalMultiplier.ts","webpack://_N_E/./src/utils/index.ts","webpack://_N_E/./src/utils/multicall.ts","webpack://_N_E/./src/utils/prices.ts","webpack://_N_E/./src/utils/providers.ts","webpack://_N_E/./src/utils/serializeTokens.ts","webpack://_N_E/./src/utils/truncateHash.ts","webpack://_N_E/./src/utils/wagmi.ts","webpack://_N_E/./src/utils/wallet.ts","webpack://_N_E/./src/config/constants/rpc.ts","webpack://_N_E/./src/utils/wrappedCurrency.ts","webpack://_N_E/./node_modules/next/dist/compiled/querystring-es3/index.js","webpack://_N_E/./node_modules/next/dynamic.js","webpack://_N_E/./node_modules/next/head.js","webpack://_N_E/./node_modules/next/image.js","webpack://_N_E/./node_modules/next/link.js","webpack://_N_E/./node_modules/next/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://_N_E/./node_modules/next/node_modules/use-sync-external-store/shim/index.js","webpack://_N_E/./node_modules/next/router.js","webpack://_N_E/./node_modules/process/browser.js","webpack://_N_E/./node_modules/proxy-compare/dist/index.modern.js","webpack://_N_E/./node_modules/qrcode/lib/browser.js","webpack://_N_E/./node_modules/qrcode/lib/can-promise.js","webpack://_N_E/./node_modules/qrcode/lib/core/alignment-pattern.js","webpack://_N_E/./node_modules/qrcode/lib/core/alphanumeric-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/bit-buffer.js","webpack://_N_E/./node_modules/qrcode/lib/core/bit-matrix.js","webpack://_N_E/./node_modules/qrcode/lib/core/byte-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/error-correction-code.js","webpack://_N_E/./node_modules/qrcode/lib/core/error-correction-level.js","webpack://_N_E/./node_modules/qrcode/lib/core/finder-pattern.js","webpack://_N_E/./node_modules/qrcode/lib/core/format-info.js","webpack://_N_E/./node_modules/qrcode/lib/core/galois-field.js","webpack://_N_E/./node_modules/qrcode/lib/core/kanji-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/mask-pattern.js","webpack://_N_E/./node_modules/qrcode/lib/core/mode.js","webpack://_N_E/./node_modules/qrcode/lib/core/numeric-data.js","webpack://_N_E/./node_modules/qrcode/lib/core/polynomial.js","webpack://_N_E/./node_modules/qrcode/lib/core/qrcode.js","webpack://_N_E/./node_modules/qrcode/lib/core/reed-solomon-encoder.js","webpack://_N_E/./node_modules/qrcode/lib/core/regex.js","webpack://_N_E/./node_modules/qrcode/lib/core/segments.js","webpack://_N_E/./node_modules/qrcode/lib/core/utils.js","webpack://_N_E/./node_modules/qrcode/lib/core/version-check.js","webpack://_N_E/./node_modules/qrcode/lib/core/version.js","webpack://_N_E/./node_modules/qrcode/lib/renderer/canvas.js","webpack://_N_E/./node_modules/qrcode/lib/renderer/svg-tag.js","webpack://_N_E/./node_modules/qrcode/lib/renderer/utils.js","webpack://_N_E/./node_modules/react-fast-compare/index.js","webpack://_N_E/./node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/react-is/index.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/math.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/userAgent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://_N_E/./node_modules/@popperjs/core/lib/enums.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://_N_E/./node_modules/@popperjs/core/lib/createPopper.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/within.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://_N_E/./node_modules/@popperjs/core/lib/popper.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://_N_E/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://_N_E/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://_N_E/./node_modules/react-popper/lib/esm/utils.js","webpack://_N_E/./node_modules/react-popper/lib/esm/usePopper.js","webpack://_N_E/./node_modules/react-redux/es/utils/batch.js","webpack://_N_E/./node_modules/react-redux/es/components/Context.js","webpack://_N_E/./node_modules/react-redux/es/hooks/useReduxContext.js","webpack://_N_E/./node_modules/react-redux/es/hooks/useSelector.js","webpack://_N_E/./node_modules/react-redux/es/utils/useSyncExternalStore.js","webpack://_N_E/./node_modules/react-redux/es/utils/Subscription.js","webpack://_N_E/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://_N_E/./node_modules/react-redux/es/components/connect.js","webpack://_N_E/./node_modules/react-redux/es/components/Provider.js","webpack://_N_E/./node_modules/react-redux/es/hooks/useStore.js","webpack://_N_E/./node_modules/react-redux/es/hooks/useDispatch.js","webpack://_N_E/./node_modules/react-redux/es/index.js","webpack://_N_E/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://_N_E/./node_modules/react-redux/node_modules/react-is/index.js","webpack://_N_E/./node_modules/react-redux/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://_N_E/./node_modules/react-redux/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","webpack://_N_E/./node_modules/react-redux/node_modules/use-sync-external-store/shim/index.js","webpack://_N_E/./node_modules/react-redux/node_modules/use-sync-external-store/shim/with-selector.js","webpack://_N_E/./node_modules/redux-persist/lib/storage/createWebStorage.js","webpack://_N_E/./node_modules/redux-persist/lib/storage/getStorage.js","webpack://_N_E/./node_modules/redux-persist/lib/storage/index.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://_N_E/./node_modules/redux/es/redux.js","webpack://_N_E/./node_modules/reselect/es/defaultMemoize.js","webpack://_N_E/./node_modules/reselect/es/index.js","webpack://_N_E/./node_modules/shallowequal/index.js","webpack://_N_E/./node_modules/split-on-first/index.js","webpack://_N_E/./node_modules/strict-uri-encode/index.js","webpack://_N_E/./node_modules/@emotion/stylis/dist/stylis.browser.esm.js","webpack://_N_E/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://_N_E/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://_N_E/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://_N_E/./node_modules/styled-components/dist/styled-components.browser.esm.js","webpack://_N_E/./node_modules/@styled-system/core/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/layout/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/color/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/typography/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/flexbox/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/grid/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/border/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/background/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/position/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/space/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/shadow/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/css/dist/index.esm.js","webpack://_N_E/./node_modules/@styled-system/variant/dist/index.esm.js","webpack://_N_E/./node_modules/styled-system/dist/index.esm.js","webpack://_N_E/./node_modules/tiny-warning/dist/tiny-warning.esm.js","webpack://_N_E/./node_modules/toformat/toFormat.js","webpack://_N_E/./node_modules/tslib/tslib.es6.js","webpack://_N_E/./node_modules/wagmi/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","webpack://_N_E/./node_modules/wagmi/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","webpack://_N_E/./node_modules/wagmi/node_modules/use-sync-external-store/shim/index.js","webpack://_N_E/./node_modules/wagmi/node_modules/use-sync-external-store/shim/with-selector.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://_N_E/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://_N_E/./node_modules/@swc/helpers/src/_array_like_to_array.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_assert_this_initialized.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_async_to_generator.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_class_call_check.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_create_class.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_possible_constructor_return.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_create_super.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_is_native_reflect_construct.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_define_property.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_get_prototype_of.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_inherits.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_instanceof.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_iterable_to_array.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_object_spread.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_object_spread_props.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_object_without_properties.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_object_without_properties_loose.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_set_prototype_of.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_sliced_to_array.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_array_with_holes.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_non_iterable_rest.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_tagged_template_literal.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_to_consumable_array.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_array_without_holes.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_non_iterable_spread.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_type_of.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_unsupported_iterable_to_array.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_construct.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_wrap_native_super.mjs","webpack://_N_E/./node_modules/@swc/helpers/src/_is_native_function.mjs","webpack://_N_E/./node_modules/@wagmi/chains/dist/index.mjs","webpack://_N_E/./node_modules/@wagmi/connectors/dist/chunk-OQILYQDO.js","webpack://_N_E/./node_modules/@wagmi/connectors/dist/chunk-QRUHVNWK.js","webpack://_N_E/./node_modules/viem/_esm/utils/chain/defineChain.js","webpack://_N_E/./node_modules/viem/_esm/chains/definitions/mainnet.js","webpack://_N_E/./node_modules/viem/_esm/chains/definitions/goerli.js","webpack://_N_E/./node_modules/@wagmi/connectors/dist/chunk-QYMCVNHT.js","webpack://_N_E/./node_modules/@wagmi/connectors/dist/chunk-ZCAPXGBX.js","webpack://_N_E/./node_modules/@wagmi/core/dist/chunk-MQXBDTVK.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/errors.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/encodedLabelToLabelhash.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/namehash.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/labelhash.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/packetToBytes.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/encodeLabelhash.js","webpack://_N_E/./node_modules/viem/_esm/utils/errors/getContractError.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/readContract.js","webpack://_N_E/./node_modules/viem/_esm/errors/ens.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/avatar/utils.js","webpack://_N_E/./node_modules/viem/_esm/utils/ens/avatar/parseAvatarRecord.js","webpack://_N_E/./node_modules/viem/_esm/actions/ens/getEnsText.js","webpack://_N_E/./node_modules/viem/_esm/utils/filters/createFilterRequestScope.js","webpack://_N_E/./node_modules/viem/_esm/errors/log.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/encodeEventTopics.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/createContractEventFilter.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/createEventFilter.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/createPendingTransactionFilter.js","webpack://_N_E/./node_modules/viem/_esm/utils/promise/withCache.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getBlockNumber.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/decodeEventLog.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/log.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getLogs.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getContractEvents.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getFeeHistory.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/feeHistory.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getFilterChanges.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getProof.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/proof.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getTransaction.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/transactionReceipt.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getTransactionReceipt.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/uninstallFilter.js","webpack://_N_E/./node_modules/@noble/curves/esm/abstract/utils.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/verifyHash.js","webpack://_N_E/./node_modules/viem/_esm/constants/contracts.js","webpack://_N_E/./node_modules/viem/_esm/utils/data/isBytesEqual.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/verifyMessage.js","webpack://_N_E/./node_modules/viem/_esm/utils/signature/hashMessage.js","webpack://_N_E/./node_modules/viem/_esm/utils/signature/hashTypedData.js","webpack://_N_E/./node_modules/viem/_esm/utils/observe.js","webpack://_N_E/./node_modules/viem/_esm/utils/poll.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/watchBlockNumber.js","webpack://_N_E/./node_modules/viem/_esm/clients/decorators/public.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/createBlockFilter.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/estimateContractGas.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getBalance.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getBlockTransactionCount.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getBytecode.js","webpack://_N_E/./node_modules/viem/_esm/actions/ens/getEnsAddress.js","webpack://_N_E/./node_modules/viem/_esm/actions/ens/getEnsAvatar.js","webpack://_N_E/./node_modules/viem/_esm/actions/ens/getEnsName.js","webpack://_N_E/./node_modules/viem/_esm/actions/ens/getEnsResolver.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getFilterLogs.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getStorageAt.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getTransactionConfirmations.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/multicall.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/simulateContract.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/verifyTypedData.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/waitForTransactionReceipt.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/watchBlocks.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/watchContractEvent.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/watchEvent.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/watchPendingTransactions.js","webpack://_N_E/./node_modules/viem/_esm/clients/createPublicClient.js","webpack://_N_E/./node_modules/viem/_esm/clients/transports/fallback.js","webpack://_N_E/./node_modules/viem/_esm/errors/transport.js","webpack://_N_E/./node_modules/isows/_esm/native.js","webpack://_N_E/./node_modules/isows/_esm/utils.js","webpack://_N_E/./node_modules/viem/_esm/utils/promise/withTimeout.js","webpack://_N_E/./node_modules/viem/_esm/utils/rpc.js","webpack://_N_E/./node_modules/zustand/esm/middleware.mjs","webpack://_N_E/./node_modules/zustand/esm/vanilla.mjs","webpack://_N_E/./node_modules/zustand/esm/shallow.mjs","webpack://_N_E/./node_modules/@adraffy/ens-normalize/dist/index.mjs","webpack://_N_E/./node_modules/viem/_esm/utils/ens/normalize.js","webpack://_N_E/./node_modules/@wagmi/core/dist/chunk-LAFZBYO7.js","webpack://_N_E/./node_modules/viem/_esm/clients/transports/http.js","webpack://_N_E/./node_modules/viem/_esm/clients/transports/webSocket.js","webpack://_N_E/./node_modules/@web3modal/common/dist/esm/src/utils/DateUtil.js","webpack://_N_E/./node_modules/valtio/esm/vanilla.mjs","webpack://_N_E/./node_modules/valtio/esm/vanilla/utils.mjs","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/utils/ConstantsUtil.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/utils/CoreHelperUtil.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/AccountController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/utils/FetchUtil.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/utils/StorageUtil.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/AssetController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/OptionsController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/ConnectorController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/PublicStateController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/NetworkController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/ApiController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/EventsController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/RouterController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/ModalController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/BlockchainApiController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/SnackController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/TransactionsController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/ConnectionController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/SIWEController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/controllers/ThemeController.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/utils/AssetUtil.js","webpack://_N_E/./node_modules/@web3modal/core/dist/esm/src/utils/RouterUtil.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-modal/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-modal/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/utils/ThemeUtil.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/utils/WebComponentsUtil.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-card/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-card/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-icon/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/all-wallets.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/app-store.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/apple.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-bottom.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-left.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-right.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/arrow-top.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/browser.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/checkmark.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-bottom.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-left.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-right.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/chevron-top.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/chrome-store.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/clock.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/close.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/coinPlaceholder.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/compass.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/copy.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/cursor.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/desktop.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/disconnect.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/discord.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/etherscan.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/extension.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/external-link.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/facebook.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/filters.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/github.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/google.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/help-circle.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/info-circle.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/mail.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/mobile.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/network-placeholder.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/nftPlaceholder.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/off.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/play-store.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/qr-code.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/refresh.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/search.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapHorizontal.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapHorizontalBold.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/swapVertical.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/telegram.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/twitch.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/twitter.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/twitterIcon.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/verify.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/verify-filled.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/wallet-placeholder.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/wallet.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/walletconnect.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/warning-circle.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-icon/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/alpha.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-image/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-image/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-hexagon/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-hexagon/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-spinner/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-spinner/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-thumbnail/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-loading-thumbnail/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-shimmer/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-shimmer/index.js","webpack://_N_E/./node_modules/lit/node_modules/lit-html/directives/class-map.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-text/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-text/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/browser.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/dao.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/defi.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/defiAlt.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/eth.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/layers.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/lock.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/login.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/network.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/nft.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/noun.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/profile.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/visual/system.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-visual/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/components/wui-visual/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/utils/UiHelperUtil.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/layout/wui-flex/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/layout/wui-flex/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-avatar/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-avatar/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-box/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-box/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-account-button/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-account-button/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-wallet-image/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-wallet-image/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-all-wallets-image/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-all-wallets-image/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-button/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-button/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/network.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select-loader/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select-loader/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/assets/svg/networkLg.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-image/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-image/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-card-select/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-chip/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-chip/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-connect-button/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-connect-button/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-cta-button/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-cta-button/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-text/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-text/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-email-input/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-email-input/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-link/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-icon-link/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-element/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-element/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-numeric/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-input-numeric/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-link/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-link/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-item/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-item/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/utils/TypeUtil.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-visual/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-visual/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item-loader/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-transaction-list-item-loader/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-tag/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-tag/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo-select/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-logo-select/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-button/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-network-button/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-otp/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-otp/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/utils/QrCode.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-qr-code/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-qr-code/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-search-bar/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-search-bar/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-snackbar/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-snackbar/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-tabs/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-tabs/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-tooltip/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-tooltip/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-visual-thumbnail/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-visual-thumbnail/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-notice-card/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-notice-card/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-accordion/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-accordion/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-content/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-content/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet-transaction/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/composites/wui-list-wallet-transaction/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/layout/wui-grid/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/layout/wui-grid/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/layout/wui-separator/styles.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/layout/wui-separator/index.js","webpack://_N_E/./node_modules/@web3modal/ui/dist/esm/src/utils/TransactionUtil.js","webpack://_N_E/./node_modules/@web3modal/scaffold-react/dist/esm/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-account-button/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-button/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-button/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-connect-button/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-network-button/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-network-button/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-router/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/modal/w3m-router/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-account-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-account-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-all-wallets-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connect-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/utils/w3m-connecting-widget/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/utils/w3m-connecting-widget/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connecting-external-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connecting-siwe-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-connecting-wc-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-downloads-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-get-wallet-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-network-switch-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-network-switch-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-networks-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-networks-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-transactions-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-transactions-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-what-is-a-network-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-what-is-a-wallet-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-email-verify-otp-view/styles.js","webpack://_N_E/./node_modules/@web3modal/wallet/dist/esm/src/W3mFrameConstants.js","webpack://_N_E/./node_modules/zod/lib/index.mjs","webpack://_N_E/./node_modules/@web3modal/wallet/dist/esm/src/W3mFrameSchema.js","webpack://_N_E/./node_modules/@web3modal/wallet/dist/esm/src/W3mFrameStorage.js","webpack://_N_E/./node_modules/@web3modal/wallet/dist/esm/src/W3mFrameHelpers.js","webpack://_N_E/./node_modules/@web3modal/wallet/dist/esm/src/W3mFrame.js","webpack://_N_E/./node_modules/@web3modal/wallet/dist/esm/src/W3mFrameProvider.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-email-verify-otp-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-email-verify-device-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-email-verify-device-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-approve-transaction-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-approve-transaction-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-upgrade-wallet-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-wallet-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-wallet-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-wallet-waiting-view/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/views/w3m-update-email-wallet-waiting-view/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-list/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/utils/markWalletsAsInstalled.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-list/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-search/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-all-wallets-search/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-header/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-browser/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-desktop/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-mobile/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-qrcode/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-qrcode/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-siwe/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-siwe/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-unsupported/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-connecting-wc-web/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-header/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-header/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-help-widget/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-legal-footer/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-legal-footer/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-mobile-download-links/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-mobile-download-links/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-snackbar/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-snackbar/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-email-login-widget/styles.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/partials/w3m-email-login-widget/index.js","webpack://_N_E/./node_modules/@web3modal/scaffold/dist/esm/src/client.js","webpack://_N_E/./node_modules/@web3modal/scaffold-utils/dist/esm/src/ConstantsUtil.js","webpack://_N_E/./node_modules/@web3modal/scaffold-utils/dist/esm/src/PresetsUtil.js","webpack://_N_E/./node_modules/@web3modal/scaffold-utils/dist/esm/src/HelpersUtil.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/src/utils/helpers.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/src/client.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/src/utils/constants.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/src/connectors/EIP6963Connector.js","webpack://_N_E/./node_modules/@web3modal/polyfills/dist/esm/index.js","webpack://_N_E/./node_modules/@wagmi/connectors/dist/coinbaseWallet.js","webpack://_N_E/./node_modules/@wagmi/connectors/node_modules/@walletconnect/utils/dist/index.es.js","webpack://_N_E/./node_modules/@wagmi/connectors/dist/walletConnect.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/src/connectors/EmailConnector.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/src/utils/provider.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/src/utils/defaultWagmiReactConfig.js","webpack://_N_E/./node_modules/@wagmi/core/dist/providers/public.js","webpack://_N_E/./node_modules/@web3modal/wagmi/dist/esm/exports/react.js","webpack://_N_E/./node_modules/bignumber.js/bignumber.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animation-controls.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-keyframes-target.mjs","webpack://_N_E/./node_modules/popmotion/node_modules/tslib/tslib.es6.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/find-spring.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/spring.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/hsla-to-rgba.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix-color.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix-complex.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/interpolate.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/keyframes.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/detect-animation-from-options.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/generators/decay.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/utils/elapsed.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/index.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/easing/cubic-bezier.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/easing.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/is-animatable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/default-transitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-instant-transition-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/animation/utils/transitions.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/animations/inertia.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-force-update.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/AnimatePresence/use-presence.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/components/LazyMotion/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/LazyContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionConfigContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/PresenceContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/SwitchLayoutGroupContext.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/event-info.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/use-dom-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/use-pointer-event.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/events/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/drag/utils/lock.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/utils/event-type.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/animations.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/definitions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-hover-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/utils/is-node-or-child.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/warn-once.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/viewport/observers.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/viewport/use-viewport.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/gestures.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-tap-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/gestures/use-focus-gesture.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/is-forced-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/make-renderless-component.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/geometry/delta-apply.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/styles/scale-correction.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/has-transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/utils/measure.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/lifecycles.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/unit-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/parse-dom-variant.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/create-visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/features-animation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion-minimal.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/use-features.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-reduced-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-element.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/create.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/context/MotionContext/utils.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/projection/node/id.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/VisualElementHandler.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/features/use-projection.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-motion-ref.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/motion-proxy.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/camel-to-dash.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/create-render-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/use-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/valid-prop.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/filter-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/create-render-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/use-props.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/use-render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/motion/utils/use-visual-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/config-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/config-motion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/create-config.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/css-variables-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-css-variable.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/lowercase-elements.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/utils/is-svg-component.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/animatable-none.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/defaults.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/dimensions.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-auto.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/type-int.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/number.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/test.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/get-as-type.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/build-styles.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/scrape-motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/html/utils/transform.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/transform-origin.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/path.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/build-attrs.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/camel-case-attrs.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/render.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/svg/utils/scrape-motion-values.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/shallow-compare.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/animation.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/animation-state.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-zero-value-string.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/dom/value-types/find.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/setters.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-numerical-string.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/types.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/render/utils/variants.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/array.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-browser.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/is-ref-object.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/process.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/resolve-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/subscription-manager.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/time-conversion.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-constant.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-id.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-isomorphic-effect.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/index.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/is-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/dist/es/value/utils/resolve-motion-value.mjs","webpack://_N_E/./node_modules/framer-motion/node_modules/tslib/tslib.es6.mjs","webpack://_N_E/./node_modules/framesync/dist/es/on-next-frame.mjs","webpack://_N_E/./node_modules/framesync/dist/es/index.mjs","webpack://_N_E/./node_modules/framesync/dist/es/create-render-step.mjs","webpack://_N_E/./node_modules/graphql/jsutils/devAssert.mjs","webpack://_N_E/./node_modules/graphql/jsutils/inspect.mjs","webpack://_N_E/./node_modules/graphql/language/ast.mjs","webpack://_N_E/./node_modules/graphql/language/blockString.mjs","webpack://_N_E/./node_modules/graphql/language/characterClasses.mjs","webpack://_N_E/./node_modules/graphql/language/kinds.mjs","webpack://_N_E/./node_modules/graphql/jsutils/invariant.mjs","webpack://_N_E/./node_modules/graphql/language/location.mjs","webpack://_N_E/./node_modules/graphql/language/printLocation.mjs","webpack://_N_E/./node_modules/graphql/error/GraphQLError.mjs","webpack://_N_E/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://_N_E/./node_modules/graphql/error/syntaxError.mjs","webpack://_N_E/./node_modules/graphql/language/directiveLocation.mjs","webpack://_N_E/./node_modules/graphql/language/tokenKind.mjs","webpack://_N_E/./node_modules/graphql/language/lexer.mjs","webpack://_N_E/./node_modules/graphql/jsutils/instanceOf.mjs","webpack://_N_E/./node_modules/graphql/language/source.mjs","webpack://_N_E/./node_modules/graphql/language/parser.mjs","webpack://_N_E/./node_modules/graphql/language/printString.mjs","webpack://_N_E/./node_modules/graphql/language/visitor.mjs","webpack://_N_E/./node_modules/graphql/language/printer.mjs","webpack://_N_E/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://_N_E/./node_modules/lit/node_modules/@lit/reactive-element/decorators/property.js","webpack://_N_E/./node_modules/lit/node_modules/@lit/reactive-element/decorators/state.js","webpack://_N_E/./node_modules/lit/node_modules/lit-html/directives/if-defined.js","webpack://_N_E/./node_modules/lit/node_modules/lit-html/directive-helpers.js","webpack://_N_E/./node_modules/lit/node_modules/lit-html/async-directive.js","webpack://_N_E/./node_modules/lit/node_modules/lit-html/directives/ref.js","webpack://_N_E/./node_modules/lit-element/node_modules/@lit/reactive-element/css-tag.js","webpack://_N_E/./node_modules/lit-element/node_modules/@lit/reactive-element/reactive-element.js","webpack://_N_E/./node_modules/lit-element/node_modules/lit-html/lit-html.js","webpack://_N_E/./node_modules/lit-element/lit-element.js","webpack://_N_E/./node_modules/lit/node_modules/@lit/reactive-element/css-tag.js","webpack://_N_E/./node_modules/lit/node_modules/@lit/reactive-element/reactive-element.js","webpack://_N_E/./node_modules/lit/node_modules/lit-html/directive.js","webpack://_N_E/./node_modules/lit/node_modules/lit-html/lit-html.js","webpack://_N_E/./node_modules/popmotion/dist/es/easing/utils.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/easing/index.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/clamp.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/inc.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/mix.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/pipe.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/progress.mjs","webpack://_N_E/./node_modules/popmotion/dist/es/utils/velocity-per-second.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/hex.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/hsla.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/index.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/rgba.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/color/utils.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/complex/filter.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/complex/index.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/numbers/index.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/numbers/units.mjs","webpack://_N_E/./node_modules/style-value-types/dist/es/utils.mjs","webpack://_N_E/./node_modules/swr/dist/index.mjs","webpack://_N_E/./node_modules/swr/immutable/dist/index.mjs","webpack://_N_E/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://_N_E/./node_modules/uint8arrays/esm/src/alloc.js","webpack://_N_E/./node_modules/uint8arrays/esm/src/concat.js","webpack://_N_E/./node_modules/uint8arrays/esm/src/from-string.js","webpack://_N_E/./node_modules/uint8arrays/esm/src/to-string.js","webpack://_N_E/./node_modules/uint8arrays/esm/src/util/as-uint8array.js","webpack://_N_E/./node_modules/multiformats/esm/vendor/base-x.js","webpack://_N_E/./node_modules/multiformats/esm/src/bytes.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/identity.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base2.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base8.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base10.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base16.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base32.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base36.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base58.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base64.js","webpack://_N_E/./node_modules/multiformats/esm/src/bases/base256emoji.js","webpack://_N_E/./node_modules/multiformats/esm/vendor/varint.js","webpack://_N_E/./node_modules/multiformats/esm/src/varint.js","webpack://_N_E/./node_modules/multiformats/esm/src/hashes/digest.js","webpack://_N_E/./node_modules/multiformats/esm/src/hashes/hasher.js","webpack://_N_E/./node_modules/multiformats/esm/src/hashes/sha2-browser.js","webpack://_N_E/./node_modules/multiformats/esm/src/hashes/identity.js","webpack://_N_E/./node_modules/multiformats/esm/src/codecs/raw.js","webpack://_N_E/./node_modules/multiformats/esm/src/codecs/json.js","webpack://_N_E/./node_modules/multiformats/esm/src/cid.js","webpack://_N_E/./node_modules/multiformats/esm/src/basics.js","webpack://_N_E/./node_modules/uint8arrays/esm/src/util/bases.js","webpack://_N_E/./node_modules/viem/_esm/accounts/utils/parseAccount.js","webpack://_N_E/./node_modules/viem/_esm/constants/contract.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/call.js","webpack://_N_E/./node_modules/viem/_esm/utils/errors/getCallError.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/estimateFeesPerGas.js","webpack://_N_E/./node_modules/viem/_esm/errors/estimateGas.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/estimateGas.js","webpack://_N_E/./node_modules/viem/_esm/utils/errors/getEstimateGasError.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/estimateMaxPriorityFeePerGas.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getBlock.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getChainId.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getGasPrice.js","webpack://_N_E/./node_modules/viem/_esm/actions/public/getTransactionCount.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/prepareTransactionRequest.js","webpack://_N_E/./node_modules/viem/_esm/utils/transaction/getTransactionType.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/sendRawTransaction.js","webpack://_N_E/./node_modules/viem/_esm/utils/uid.js","webpack://_N_E/./node_modules/viem/_esm/clients/createClient.js","webpack://_N_E/./node_modules/viem/_esm/utils/chain/assertCurrentChain.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/sendTransaction.js","webpack://_N_E/./node_modules/viem/_esm/utils/errors/getTransactionError.js","webpack://_N_E/./node_modules/viem/_esm/clients/decorators/wallet.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/addChain.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/deployContract.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/getAddresses.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/getPermissions.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/requestAddresses.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/requestPermissions.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/signMessage.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/signTransaction.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/signTypedData.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/switchChain.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/watchAsset.js","webpack://_N_E/./node_modules/viem/_esm/actions/wallet/writeContract.js","webpack://_N_E/./node_modules/viem/_esm/clients/createWalletClient.js","webpack://_N_E/./node_modules/viem/_esm/clients/transports/createTransport.js","webpack://_N_E/./node_modules/viem/_esm/clients/transports/custom.js","webpack://_N_E/./node_modules/viem/_esm/constants/abis.js","webpack://_N_E/./node_modules/viem/_esm/constants/solidity.js","webpack://_N_E/./node_modules/viem/_esm/constants/unit.js","webpack://_N_E/./node_modules/viem/_esm/errors/abi.js","webpack://_N_E/./node_modules/viem/_esm/errors/account.js","webpack://_N_E/./node_modules/viem/_esm/errors/address.js","webpack://_N_E/./node_modules/viem/_esm/errors/base.js","webpack://_N_E/./node_modules/viem/_esm/errors/block.js","webpack://_N_E/./node_modules/viem/_esm/errors/chain.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/formatAbiItemWithArgs.js","webpack://_N_E/./node_modules/viem/_esm/errors/contract.js","webpack://_N_E/./node_modules/viem/_esm/errors/data.js","webpack://_N_E/./node_modules/viem/_esm/errors/encoding.js","webpack://_N_E/./node_modules/viem/_esm/errors/fee.js","webpack://_N_E/./node_modules/viem/_esm/errors/node.js","webpack://_N_E/./node_modules/viem/_esm/errors/request.js","webpack://_N_E/./node_modules/viem/_esm/errors/rpc.js","webpack://_N_E/./node_modules/viem/_esm/errors/transaction.js","webpack://_N_E/./node_modules/viem/_esm/errors/version.js","webpack://_N_E/./node_modules/viem/_esm/errors/utils.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/decodeAbiParameters.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/decodeErrorResult.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/decodeFunctionResult.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/encodeAbiParameters.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/encodeDeployData.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/encodeFunctionData.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/formatAbiItem.js","webpack://_N_E/./node_modules/viem/_esm/utils/abi/getAbiItem.js","webpack://_N_E/./node_modules/viem/_esm/utils/address/getAddress.js","webpack://_N_E/./node_modules/viem/_esm/utils/address/isAddress.js","webpack://_N_E/./node_modules/viem/_esm/utils/buildRequest.js","webpack://_N_E/./node_modules/viem/_esm/utils/chain/getChainContractAddress.js","webpack://_N_E/./node_modules/viem/_esm/utils/data/concat.js","webpack://_N_E/./node_modules/viem/_esm/utils/data/isHex.js","webpack://_N_E/./node_modules/viem/_esm/utils/data/pad.js","webpack://_N_E/./node_modules/viem/_esm/utils/data/size.js","webpack://_N_E/./node_modules/viem/_esm/utils/data/slice.js","webpack://_N_E/./node_modules/viem/_esm/utils/data/trim.js","webpack://_N_E/./node_modules/viem/_esm/utils/encoding/fromHex.js","webpack://_N_E/./node_modules/viem/_esm/utils/encoding/toBytes.js","webpack://_N_E/./node_modules/viem/_esm/utils/encoding/toHex.js","webpack://_N_E/./node_modules/viem/_esm/utils/errors/getNodeError.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/block.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/extract.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/transaction.js","webpack://_N_E/./node_modules/viem/_esm/utils/formatters/transactionRequest.js","webpack://_N_E/./node_modules/viem/_esm/utils/getAction.js","webpack://_N_E/./node_modules/viem/_esm/utils/hash/getEventSelector.js","webpack://_N_E/./node_modules/viem/_esm/utils/hash/getEventSignature.js","webpack://_N_E/./node_modules/viem/_esm/utils/hash/getFunctionSelector.js","webpack://_N_E/./node_modules/viem/node_modules/abitype/dist/esm/regex.js","webpack://_N_E/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/formatAbiParameter.js","webpack://_N_E/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/formatAbiParameters.js","webpack://_N_E/./node_modules/viem/_esm/utils/hash/getFunctionSignature.js","webpack://_N_E/./node_modules/viem/_esm/utils/hash/normalizeSignature.js","webpack://_N_E/./node_modules/viem/node_modules/abitype/dist/esm/human-readable/formatAbiItem.js","webpack://_N_E/./node_modules/@noble/hashes/esm/_assert.js","webpack://_N_E/./node_modules/@noble/hashes/esm/_u64.js","webpack://_N_E/./node_modules/@noble/hashes/esm/utils.js","webpack://_N_E/./node_modules/@noble/hashes/esm/sha3.js","webpack://_N_E/./node_modules/viem/_esm/utils/hash/keccak256.js","webpack://_N_E/./node_modules/viem/_esm/utils/promise/createBatchScheduler.js","webpack://_N_E/./node_modules/viem/_esm/utils/promise/withRetry.js","webpack://_N_E/./node_modules/viem/_esm/utils/stringify.js","webpack://_N_E/./node_modules/viem/_esm/utils/transaction/assertRequest.js","webpack://_N_E/./node_modules/viem/_esm/utils/regex.js","webpack://_N_E/./node_modules/viem/_esm/utils/typedData.js","webpack://_N_E/./node_modules/viem/_esm/utils/unit/formatEther.js","webpack://_N_E/./node_modules/viem/_esm/utils/unit/formatGwei.js","webpack://_N_E/./node_modules/viem/_esm/utils/unit/formatUnits.js","webpack://_N_E/./node_modules/viem/_esm/utils/wait.js","webpack://_N_E/./node_modules/@tanstack/query-sync-storage-persister/build/lib/index.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/utils.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/logger.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/notifyManager.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/subscribable.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/focusManager.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/onlineManager.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/retryer.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/removable.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/query.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/queryCache.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/mutation.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/mutationCache.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/infiniteQueryBehavior.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/queryClient.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/hydration.mjs","webpack://_N_E/./node_modules/@tanstack/query-persist-client-core/build/lib/persist.mjs","webpack://_N_E/./node_modules/@tanstack/react-query/build/lib/QueryClientProvider.mjs","webpack://_N_E/./node_modules/@tanstack/react-query/build/lib/isRestoring.mjs","webpack://_N_E/./node_modules/@tanstack/react-query/build/lib/QueryErrorResetBoundary.mjs","webpack://_N_E/./node_modules/@tanstack/query-core/build/lib/queryObserver.mjs","webpack://_N_E/./node_modules/wagmi/dist/index.js"],"sourcesContent":["\"use strict\";Object.defineProperty(exports,\"__esModule\",{value:!0});var t=require(\"@web3-react/abstract-connector\");function n(t,n,e,r,o,i,a){try{var c=t[i](a),u=c.value}catch(t){return void e(t)}c.done?n(u):Promise.resolve(u).then(r,o)}function e(t){return function(){var e=this,r=arguments;return new Promise((function(o,i){var a=t.apply(e,r);function c(t){n(a,o,i,c,u,\"next\",t)}function u(t){n(a,o,i,c,u,\"throw\",t)}c(void 0)}))}}function r(){return(r=Object.assign||function(t){for(var n=1;n=0;--o){var i=this.tryEntries[o],a=i.completion;if(\"root\"===i.tryLoc)return r(\"end\");if(i.tryLoc<=this.prev){var c=e.call(i,\"catchLoc\"),u=e.call(i,\"finallyLoc\");if(c&&u){if(this.prev=0;--r){var o=this.tryEntries[r];if(o.tryLoc<=this.prev&&e.call(o,\"finallyLoc\")&&this.prev=0;--n){var e=this.tryEntries[n];if(e.finallyLoc===t)return this.complete(e.completion,e.afterLoc),x(e),s}},catch:function(t){for(var n=this.tryEntries.length-1;n>=0;--n){var e=this.tryEntries[n];if(e.tryLoc===t){var r=e.completion;if(\"throw\"===r.type){var o=r.arg;x(e)}return o}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,n,e){return this.delegate={iterator:_(t),resultName:n,nextLoc:e},\"next\"===this.method&&(this.arg=void 0),s}},t}(t.exports);try{regeneratorRuntime=n}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(n)}}(f={exports:{}}),f.exports);function d(t){return t.hasOwnProperty(\"result\")?t.result:t}var p=function(t){function n(){var n;return(n=t.call(this)||this).name=n.constructor.name,n.message=\"No BSC provider was found on window.BinanceChain.\",n}return o(n,t),n}(h(Error)),w=function(t){function n(){var n;return(n=t.call(this)||this).name=n.constructor.name,n.message=\"The user rejected the request.\",n}return o(n,t),n}(h(Error));exports.BscConnector=function(t){function n(n){var e;return(e=t.call(this,n)||this).handleNetworkChanged=e.handleNetworkChanged.bind(s(e)),e.handleChainChanged=e.handleChainChanged.bind(s(e)),e.handleAccountsChanged=e.handleAccountsChanged.bind(s(e)),e.handleClose=e.handleClose.bind(s(e)),e}o(n,t);var i=n.prototype;return i.handleChainChanged=function(t){this.emitUpdate({chainId:t,provider:window.BinanceChain})},i.handleAccountsChanged=function(t){0===t.length?this.emitDeactivate():this.emitUpdate({account:t[0]})},i.handleClose=function(t,n){this.emitDeactivate()},i.handleNetworkChanged=function(t){this.emitUpdate({chainId:t,provider:window.BinanceChain})},i.activate=function(){var t=e(l.mark((function t(){var n;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(window.BinanceChain){t.next=2;break}throw new p;case 2:return window.BinanceChain.on&&(window.BinanceChain.on(\"chainChanged\",this.handleChainChanged),window.BinanceChain.on(\"accountsChanged\",this.handleAccountsChanged),window.BinanceChain.on(\"close\",this.handleClose),window.BinanceChain.on(\"networkChanged\",this.handleNetworkChanged)),window.BinanceChain.isMetaMask&&(window.BinanceChain.autoRefreshOnNetworkChange=!1),t.prev=4,t.next=7,window.BinanceChain.send(\"eth_requestAccounts\").then((function(t){return d(t)[0]}));case 7:n=t.sent,t.next=15;break;case 10:if(t.prev=10,t.t0=t.catch(4),4001!==t.t0.code){t.next=14;break}throw new w;case 14:case 15:if(n){t.next=19;break}return t.next=18,window.BinanceChain.enable().then((function(t){return t&&d(t)[0]}));case 18:n=t.sent;case 19:return t.abrupt(\"return\",r({provider:window.BinanceChain},n?{account:n}:{}));case 20:case\"end\":return t.stop()}}),t,this,[[4,10]])})));return function(){return t.apply(this,arguments)}}(),i.getProvider=function(){var t=e(l.mark((function t(){return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.abrupt(\"return\",window.BinanceChain);case 1:case\"end\":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}(),i.getChainId=function(){var t=e(l.mark((function t(){var n;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(window.BinanceChain){t.next=2;break}throw new p;case 2:return t.prev=2,t.next=5,window.BinanceChain.send(\"eth_chainId\").then(d);case 5:n=t.sent,t.next=11;break;case 8:t.prev=8,t.t0=t.catch(2);case 11:if(n){t.next=21;break}return t.prev=12,t.next=15,window.BinanceChain.send(\"net_version\").then(d);case 15:n=t.sent,t.next=21;break;case 18:t.prev=18,t.t1=t.catch(12);case 21:if(!n)try{n=d(window.BinanceChain.send({method:\"net_version\"}))}catch(t){}return n||(n=window.BinanceChain.isDapper?d(window.BinanceChain.cachedResults.net_version):window.BinanceChain.chainId||window.BinanceChain.netVersion||window.BinanceChain.networkVersion||window.BinanceChain._chainId),t.abrupt(\"return\",n);case 24:case\"end\":return t.stop()}}),t,null,[[2,8],[12,18]])})));return function(){return t.apply(this,arguments)}}(),i.getAccount=function(){var t=e(l.mark((function t(){var n;return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(window.BinanceChain){t.next=2;break}throw new p;case 2:return t.prev=2,t.next=5,window.BinanceChain.send(\"eth_accounts\").then((function(t){return d(t)[0]}));case 5:n=t.sent,t.next=11;break;case 8:t.prev=8,t.t0=t.catch(2);case 11:if(n){t.next=21;break}return t.prev=12,t.next=15,window.BinanceChain.enable().then((function(t){return d(t)[0]}));case 15:n=t.sent,t.next=21;break;case 18:t.prev=18,t.t1=t.catch(12);case 21:return n||(n=d(window.BinanceChain.send({method:\"eth_accounts\"}))[0]),t.abrupt(\"return\",n);case 23:case\"end\":return t.stop()}}),t,null,[[2,8],[12,18]])})));return function(){return t.apply(this,arguments)}}(),i.deactivate=function(){window.BinanceChain&&window.BinanceChain.removeListener&&(window.BinanceChain.removeListener(\"chainChanged\",this.handleChainChanged),window.BinanceChain.removeListener(\"accountsChanged\",this.handleAccountsChanged),window.BinanceChain.removeListener(\"close\",this.handleClose),window.BinanceChain.removeListener(\"networkChanged\",this.handleNetworkChanged))},i.isAuthorized=function(){var t=e(l.mark((function t(){return l.wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(window.BinanceChain){t.next=2;break}return t.abrupt(\"return\",!1);case 2:return t.prev=2,t.next=5,window.BinanceChain.send(\"eth_accounts\").then((function(t){return d(t).length>0}));case 5:return t.abrupt(\"return\",t.sent);case 8:return t.prev=8,t.t0=t.catch(2),t.abrupt(\"return\",!1);case 11:case\"end\":return t.stop()}}),t,null,[[2,8]])})));return function(){return t.apply(this,arguments)}}(),n}(t.AbstractConnector),exports.NoBscProviderError=p,exports.UserRejectedRequestError=w;\n//# sourceMappingURL=bsc-connector.cjs.production.min.js.map\n","\n'use strict'\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./bsc-connector.cjs.production.min.js')\n} else {\n module.exports = require('./bsc-connector.cjs.development.js')\n}\n","export const version = \"abi/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { hexZeroPad } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class AddressCoder extends Coder {\n constructor(localName) {\n super(\"address\", \"address\", localName, false);\n }\n defaultValue() {\n return \"0x0000000000000000000000000000000000000000\";\n }\n encode(writer, value) {\n try {\n value = getAddress(value);\n }\n catch (error) {\n this._throwError(error.message, value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n return getAddress(hexZeroPad(reader.readValue().toHexString(), 20));\n }\n}\n//# sourceMappingURL=address.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\n// Clones the functionality of an existing Coder, but without a localName\nexport class AnonymousCoder extends Coder {\n constructor(coder) {\n super(coder.name, coder.type, undefined, coder.dynamic);\n this.coder = coder;\n }\n defaultValue() {\n return this.coder.defaultValue();\n }\n encode(writer, value) {\n return this.coder.encode(writer, value);\n }\n decode(reader) {\n return this.coder.decode(reader);\n }\n}\n//# sourceMappingURL=anonymous.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nimport { Coder, Writer } from \"./abstract-coder\";\nimport { AnonymousCoder } from \"./anonymous\";\nexport function pack(writer, coders, values) {\n let arrayValues = null;\n if (Array.isArray(values)) {\n arrayValues = values;\n }\n else if (values && typeof (values) === \"object\") {\n let unique = {};\n arrayValues = coders.map((coder) => {\n const name = coder.localName;\n if (!name) {\n logger.throwError(\"cannot encode object for signature with missing names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n if (unique[name]) {\n logger.throwError(\"cannot encode object for signature with duplicate names\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"values\",\n coder: coder,\n value: values\n });\n }\n unique[name] = true;\n return values[name];\n });\n }\n else {\n logger.throwArgumentError(\"invalid tuple value\", \"tuple\", values);\n }\n if (coders.length !== arrayValues.length) {\n logger.throwArgumentError(\"types/value length mismatch\", \"tuple\", values);\n }\n let staticWriter = new Writer(writer.wordSize);\n let dynamicWriter = new Writer(writer.wordSize);\n let updateFuncs = [];\n coders.forEach((coder, index) => {\n let value = arrayValues[index];\n if (coder.dynamic) {\n // Get current dynamic offset (for the future pointer)\n let dynamicOffset = dynamicWriter.length;\n // Encode the dynamic value into the dynamicWriter\n coder.encode(dynamicWriter, value);\n // Prepare to populate the correct offset once we are done\n let updateFunc = staticWriter.writeUpdatableValue();\n updateFuncs.push((baseOffset) => {\n updateFunc(baseOffset + dynamicOffset);\n });\n }\n else {\n coder.encode(staticWriter, value);\n }\n });\n // Backfill all the dynamic offsets, now that we know the static length\n updateFuncs.forEach((func) => { func(staticWriter.length); });\n let length = writer.appendWriter(staticWriter);\n length += writer.appendWriter(dynamicWriter);\n return length;\n}\nexport function unpack(reader, coders) {\n let values = [];\n // A reader anchored to this base\n let baseReader = reader.subReader(0);\n coders.forEach((coder) => {\n let value = null;\n if (coder.dynamic) {\n let offset = reader.readValue();\n let offsetReader = baseReader.subReader(offset.toNumber());\n try {\n value = coder.decode(offsetReader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n else {\n try {\n value = coder.decode(reader);\n }\n catch (error) {\n // Cannot recover from this\n if (error.code === Logger.errors.BUFFER_OVERRUN) {\n throw error;\n }\n value = error;\n value.baseType = coder.name;\n value.name = coder.localName;\n value.type = coder.type;\n }\n }\n if (value != undefined) {\n values.push(value);\n }\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add any named parameters (i.e. tuples)\n coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n const value = values[index];\n if (value instanceof Error) {\n Object.defineProperty(values, name, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n else {\n values[name] = value;\n }\n });\n for (let i = 0; i < values.length; i++) {\n const value = values[i];\n if (value instanceof Error) {\n Object.defineProperty(values, i, {\n enumerable: true,\n get: () => { throw value; }\n });\n }\n }\n return Object.freeze(values);\n}\nexport class ArrayCoder extends Coder {\n constructor(coder, length, localName) {\n const type = (coder.type + \"[\" + (length >= 0 ? length : \"\") + \"]\");\n const dynamic = (length === -1 || coder.dynamic);\n super(\"array\", type, localName, dynamic);\n this.coder = coder;\n this.length = length;\n }\n defaultValue() {\n // Verifies the child coder is valid (even if the array is dynamic or 0-length)\n const defaultChild = this.coder.defaultValue();\n const result = [];\n for (let i = 0; i < this.length; i++) {\n result.push(defaultChild);\n }\n return result;\n }\n encode(writer, value) {\n if (!Array.isArray(value)) {\n this._throwError(\"expected array value\", value);\n }\n let count = this.length;\n if (count === -1) {\n count = value.length;\n writer.writeValue(value.length);\n }\n logger.checkArgumentCount(value.length, count, \"coder array\" + (this.localName ? (\" \" + this.localName) : \"\"));\n let coders = [];\n for (let i = 0; i < value.length; i++) {\n coders.push(this.coder);\n }\n return pack(writer, coders, value);\n }\n decode(reader) {\n let count = this.length;\n if (count === -1) {\n count = reader.readValue().toNumber();\n // Check that there is *roughly* enough data to ensure\n // stray random data is not being read as a length. Each\n // slot requires at least 32 bytes for their value (or 32\n // bytes as a link to the data). This could use a much\n // tighter bound, but we are erroring on the side of safety.\n if (count * 32 > reader._data.length) {\n logger.throwError(\"insufficient data length\", Logger.errors.BUFFER_OVERRUN, {\n length: reader._data.length,\n count: count\n });\n }\n }\n let coders = [];\n for (let i = 0; i < count; i++) {\n coders.push(new AnonymousCoder(this.coder));\n }\n return reader.coerce(this.name, unpack(reader, coders));\n }\n}\n//# sourceMappingURL=array.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class BooleanCoder extends Coder {\n constructor(localName) {\n super(\"bool\", \"bool\", localName, false);\n }\n defaultValue() {\n return false;\n }\n encode(writer, value) {\n return writer.writeValue(value ? 1 : 0);\n }\n decode(reader) {\n return reader.coerce(this.type, !reader.readValue().isZero());\n }\n}\n//# sourceMappingURL=boolean.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\nexport class DynamicBytesCoder extends Coder {\n constructor(type, localName) {\n super(type, type, localName, true);\n }\n defaultValue() {\n return \"0x\";\n }\n encode(writer, value) {\n value = arrayify(value);\n let length = writer.writeValue(value.length);\n length += writer.writeBytes(value);\n return length;\n }\n decode(reader) {\n return reader.readBytes(reader.readValue().toNumber(), true);\n }\n}\nexport class BytesCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"bytes\", localName);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(super.decode(reader)));\n }\n}\n//# sourceMappingURL=bytes.js.map","\"use strict\";\nimport { arrayify, hexlify } from \"@ethersproject/bytes\";\nimport { Coder } from \"./abstract-coder\";\n// @TODO: Merge this with bytes\nexport class FixedBytesCoder extends Coder {\n constructor(size, localName) {\n let name = \"bytes\" + String(size);\n super(name, name, localName, false);\n this.size = size;\n }\n defaultValue() {\n return (\"0x0000000000000000000000000000000000000000000000000000000000000000\").substring(0, 2 + this.size * 2);\n }\n encode(writer, value) {\n let data = arrayify(value);\n if (data.length !== this.size) {\n this._throwError(\"incorrect data length\", value);\n }\n return writer.writeBytes(data);\n }\n decode(reader) {\n return reader.coerce(this.name, hexlify(reader.readBytes(this.size)));\n }\n}\n//# sourceMappingURL=fixed-bytes.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nexport class NullCoder extends Coder {\n constructor(localName) {\n super(\"null\", \"\", localName, false);\n }\n defaultValue() {\n return null;\n }\n encode(writer, value) {\n if (value != null) {\n this._throwError(\"not null\", value);\n }\n return writer.writeBytes([]);\n }\n decode(reader) {\n reader.readBytes(0);\n return reader.coerce(this.name, null);\n }\n}\n//# sourceMappingURL=null.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { MaxUint256, NegativeOne, One, Zero } from \"@ethersproject/constants\";\nimport { Coder } from \"./abstract-coder\";\nexport class NumberCoder extends Coder {\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n this.size = size;\n this.signed = signed;\n }\n defaultValue() {\n return 0;\n }\n encode(writer, value) {\n let v = BigNumber.from(value);\n // Check bounds are safe for encoding\n let maxUintValue = MaxUint256.mask(writer.wordSize * 8);\n if (this.signed) {\n let bounds = maxUintValue.mask(this.size * 8 - 1);\n if (v.gt(bounds) || v.lt(bounds.add(One).mul(NegativeOne))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n }\n else if (v.lt(Zero) || v.gt(maxUintValue.mask(this.size * 8))) {\n this._throwError(\"value out-of-bounds\", value);\n }\n v = v.toTwos(this.size * 8).mask(this.size * 8);\n if (this.signed) {\n v = v.fromTwos(this.size * 8).toTwos(8 * writer.wordSize);\n }\n return writer.writeValue(v);\n }\n decode(reader) {\n let value = reader.readValue().mask(this.size * 8);\n if (this.signed) {\n value = value.fromTwos(this.size * 8);\n }\n return reader.coerce(this.name, value);\n }\n}\n//# sourceMappingURL=number.js.map","\"use strict\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { DynamicBytesCoder } from \"./bytes\";\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, value) {\n return super.encode(writer, toUtf8Bytes(value));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map","\"use strict\";\nimport { Coder } from \"./abstract-coder\";\nimport { pack, unpack } from \"./array\";\nexport class TupleCoder extends Coder {\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n this.coders = coders;\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, value) {\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return reader.coerce(this.name, unpack(reader, this.coders));\n }\n}\n//# sourceMappingURL=tuple.js.map","\"use strict\";\n// See: https://github.com/ethereum/wiki/wiki/Ethereum-Contract-ABI\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Reader, Writer } from \"./coders/abstract-coder\";\nimport { AddressCoder } from \"./coders/address\";\nimport { ArrayCoder } from \"./coders/array\";\nimport { BooleanCoder } from \"./coders/boolean\";\nimport { BytesCoder } from \"./coders/bytes\";\nimport { FixedBytesCoder } from \"./coders/fixed-bytes\";\nimport { NullCoder } from \"./coders/null\";\nimport { NumberCoder } from \"./coders/number\";\nimport { StringCoder } from \"./coders/string\";\nimport { TupleCoder } from \"./coders/tuple\";\nimport { ParamType } from \"./fragments\";\nconst paramTypeBytes = new RegExp(/^bytes([0-9]*)$/);\nconst paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/);\nexport class AbiCoder {\n constructor(coerceFunc) {\n defineReadOnly(this, \"coerceFunc\", coerceFunc || null);\n }\n _getCoder(param) {\n switch (param.baseType) {\n case \"address\":\n return new AddressCoder(param.name);\n case \"bool\":\n return new BooleanCoder(param.name);\n case \"string\":\n return new StringCoder(param.name);\n case \"bytes\":\n return new BytesCoder(param.name);\n case \"array\":\n return new ArrayCoder(this._getCoder(param.arrayChildren), param.arrayLength, param.name);\n case \"tuple\":\n return new TupleCoder((param.components || []).map((component) => {\n return this._getCoder(component);\n }), param.name);\n case \"\":\n return new NullCoder(param.name);\n }\n // u?int[0-9]*\n let match = param.type.match(paramTypeNumber);\n if (match) {\n let size = parseInt(match[2] || \"256\");\n if (size === 0 || size > 256 || (size % 8) !== 0) {\n logger.throwArgumentError(\"invalid \" + match[1] + \" bit length\", \"param\", param);\n }\n return new NumberCoder(size / 8, (match[1] === \"int\"), param.name);\n }\n // bytes[0-9]+\n match = param.type.match(paramTypeBytes);\n if (match) {\n let size = parseInt(match[1]);\n if (size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes length\", \"param\", param);\n }\n return new FixedBytesCoder(size, param.name);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", param.type);\n }\n _getWordSize() { return 32; }\n _getReader(data, allowLoose) {\n return new Reader(data, this._getWordSize(), this.coerceFunc, allowLoose);\n }\n _getWriter() {\n return new Writer(this._getWordSize());\n }\n getDefaultValue(types) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.defaultValue();\n }\n encode(types, values) {\n if (types.length !== values.length) {\n logger.throwError(\"types/values length mismatch\", Logger.errors.INVALID_ARGUMENT, {\n count: { types: types.length, values: values.length },\n value: { types: types, values: values }\n });\n }\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = (new TupleCoder(coders, \"_\"));\n const writer = this._getWriter();\n coder.encode(writer, values);\n return writer.data;\n }\n decode(types, data, loose) {\n const coders = types.map((type) => this._getCoder(ParamType.from(type)));\n const coder = new TupleCoder(coders, \"_\");\n return coder.decode(this._getReader(arrayify(data), loose));\n }\n}\nexport const defaultAbiCoder = new AbiCoder();\n//# sourceMappingURL=abi-coder.js.map","\"use strict\";\nimport { arrayify, concat, hexConcat, hexlify } from \"@ethersproject/bytes\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"../_version\";\nconst logger = new Logger(version);\nexport function checkResultErrors(result) {\n // Find the first error (if any)\n const errors = [];\n const checkErrors = function (path, object) {\n if (!Array.isArray(object)) {\n return;\n }\n for (let key in object) {\n const childPath = path.slice();\n childPath.push(key);\n try {\n checkErrors(childPath, object[key]);\n }\n catch (error) {\n errors.push({ path: childPath, error: error });\n }\n }\n };\n checkErrors([], result);\n return errors;\n}\nexport class Coder {\n constructor(name, type, localName, dynamic) {\n // @TODO: defineReadOnly these\n this.name = name;\n this.type = type;\n this.localName = localName;\n this.dynamic = dynamic;\n }\n _throwError(message, value) {\n logger.throwArgumentError(message, this.localName, value);\n }\n}\nexport class Writer {\n constructor(wordSize) {\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n this._data = [];\n this._dataLength = 0;\n this._padding = new Uint8Array(wordSize);\n }\n get data() {\n return hexConcat(this._data);\n }\n get length() { return this._dataLength; }\n _writeData(data) {\n this._data.push(data);\n this._dataLength += data.length;\n return data.length;\n }\n appendWriter(writer) {\n return this._writeData(concat(writer._data));\n }\n // Arrayish items; padded on the right to wordSize\n writeBytes(value) {\n let bytes = arrayify(value);\n const paddingOffset = bytes.length % this.wordSize;\n if (paddingOffset) {\n bytes = concat([bytes, this._padding.slice(paddingOffset)]);\n }\n return this._writeData(bytes);\n }\n _getValue(value) {\n let bytes = arrayify(BigNumber.from(value));\n if (bytes.length > this.wordSize) {\n logger.throwError(\"value out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this.wordSize,\n offset: bytes.length\n });\n }\n if (bytes.length % this.wordSize) {\n bytes = concat([this._padding.slice(bytes.length % this.wordSize), bytes]);\n }\n return bytes;\n }\n // BigNumberish items; padded on the left to wordSize\n writeValue(value) {\n return this._writeData(this._getValue(value));\n }\n writeUpdatableValue() {\n const offset = this._data.length;\n this._data.push(this._padding);\n this._dataLength += this.wordSize;\n return (value) => {\n this._data[offset] = this._getValue(value);\n };\n }\n}\nexport class Reader {\n constructor(data, wordSize, coerceFunc, allowLoose) {\n defineReadOnly(this, \"_data\", arrayify(data));\n defineReadOnly(this, \"wordSize\", wordSize || 32);\n defineReadOnly(this, \"_coerceFunc\", coerceFunc);\n defineReadOnly(this, \"allowLoose\", allowLoose);\n this._offset = 0;\n }\n get data() { return hexlify(this._data); }\n get consumed() { return this._offset; }\n // The default Coerce function\n static coerce(name, value) {\n let match = name.match(\"^u?int([0-9]+)$\");\n if (match && parseInt(match[1]) <= 48) {\n value = value.toNumber();\n }\n return value;\n }\n coerce(name, value) {\n if (this._coerceFunc) {\n return this._coerceFunc(name, value);\n }\n return Reader.coerce(name, value);\n }\n _peekBytes(offset, length, loose) {\n let alignedLength = Math.ceil(length / this.wordSize) * this.wordSize;\n if (this._offset + alignedLength > this._data.length) {\n if (this.allowLoose && loose && this._offset + length <= this._data.length) {\n alignedLength = length;\n }\n else {\n logger.throwError(\"data out-of-bounds\", Logger.errors.BUFFER_OVERRUN, {\n length: this._data.length,\n offset: this._offset + alignedLength\n });\n }\n }\n return this._data.slice(this._offset, this._offset + alignedLength);\n }\n subReader(offset) {\n return new Reader(this._data.slice(this._offset + offset), this.wordSize, this._coerceFunc, this.allowLoose);\n }\n readBytes(length, loose) {\n let bytes = this._peekBytes(0, length, !!loose);\n this._offset += bytes.length;\n // @TODO: Make sure the length..end bytes are all 0?\n return bytes.slice(0, length);\n }\n readValue() {\n return BigNumber.from(this.readBytes(this.wordSize));\n }\n}\n//# sourceMappingURL=abstract-coder.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nconst _constructorGuard = {};\nlet ModifiersBytes = { calldata: true, memory: true, storage: true };\nlet ModifiersNest = { calldata: true, memory: true };\nfunction checkModifier(type, name) {\n if (type === \"bytes\" || type === \"string\") {\n if (ModifiersBytes[name]) {\n return true;\n }\n }\n else if (type === \"address\") {\n if (name === \"payable\") {\n return true;\n }\n }\n else if (type.indexOf(\"[\") >= 0 || type === \"tuple\") {\n if (ModifiersNest[name]) {\n return true;\n }\n }\n if (ModifiersBytes[name] || name === \"payable\") {\n logger.throwArgumentError(\"invalid modifier\", \"name\", name);\n }\n return false;\n}\n// @TODO: Make sure that children of an indexed tuple are marked with a null indexed\nfunction parseParamType(param, allowIndexed) {\n let originalParam = param;\n function throwError(i) {\n logger.throwArgumentError(`unexpected character at position ${i}`, \"param\", param);\n }\n param = param.replace(/\\s/g, \" \");\n function newNode(parent) {\n let node = { type: \"\", name: \"\", parent: parent, state: { allowType: true } };\n if (allowIndexed) {\n node.indexed = false;\n }\n return node;\n }\n let parent = { type: \"\", name: \"\", state: { allowType: true } };\n let node = parent;\n for (let i = 0; i < param.length; i++) {\n let c = param[i];\n switch (c) {\n case \"(\":\n if (node.state.allowType && node.type === \"\") {\n node.type = \"tuple\";\n }\n else if (!node.state.allowParams) {\n throwError(i);\n }\n node.state.allowType = false;\n node.type = verifyType(node.type);\n node.components = [newNode(node)];\n node = node.components[0];\n break;\n case \")\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let child = node;\n node = node.parent;\n if (!node) {\n throwError(i);\n }\n delete child.parent;\n node.state.allowParams = false;\n node.state.allowName = true;\n node.state.allowArray = true;\n break;\n case \",\":\n delete node.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n node.type = verifyType(node.type);\n let sibling = newNode(node.parent);\n //{ type: \"\", name: \"\", parent: node.parent, state: { allowType: true } };\n node.parent.components.push(sibling);\n delete node.parent;\n node = sibling;\n break;\n // Hit a space...\n case \" \":\n // If reading type, the type is done and may read a param or name\n if (node.state.allowType) {\n if (node.type !== \"\") {\n node.type = verifyType(node.type);\n delete node.state.allowType;\n node.state.allowName = true;\n node.state.allowParams = true;\n }\n }\n // If reading name, the name is done\n if (node.state.allowName) {\n if (node.name !== \"\") {\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(i);\n }\n if (node.indexed) {\n throwError(i);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n else {\n node.state.allowName = false;\n }\n }\n }\n break;\n case \"[\":\n if (!node.state.allowArray) {\n throwError(i);\n }\n node.type += c;\n node.state.allowArray = false;\n node.state.allowName = false;\n node.state.readArray = true;\n break;\n case \"]\":\n if (!node.state.readArray) {\n throwError(i);\n }\n node.type += c;\n node.state.readArray = false;\n node.state.allowArray = true;\n node.state.allowName = true;\n break;\n default:\n if (node.state.allowType) {\n node.type += c;\n node.state.allowParams = true;\n node.state.allowArray = true;\n }\n else if (node.state.allowName) {\n node.name += c;\n delete node.state.allowArray;\n }\n else if (node.state.readArray) {\n node.type += c;\n }\n else {\n throwError(i);\n }\n }\n }\n if (node.parent) {\n logger.throwArgumentError(\"unexpected eof\", \"param\", param);\n }\n delete parent.state;\n if (node.name === \"indexed\") {\n if (!allowIndexed) {\n throwError(originalParam.length - 7);\n }\n if (node.indexed) {\n throwError(originalParam.length - 7);\n }\n node.indexed = true;\n node.name = \"\";\n }\n else if (checkModifier(node.type, node.name)) {\n node.name = \"\";\n }\n parent.type = verifyType(parent.type);\n return parent;\n}\nfunction populate(object, params) {\n for (let key in params) {\n defineReadOnly(object, key, params[key]);\n }\n}\nexport const FormatTypes = Object.freeze({\n // Bare formatting, as is needed for computing a sighash of an event or function\n sighash: \"sighash\",\n // Human-Readable with Minimal spacing and without names (compact human-readable)\n minimal: \"minimal\",\n // Human-Readable with nice spacing, including all names\n full: \"full\",\n // JSON-format a la Solidity\n json: \"json\"\n});\nconst paramTypeArray = new RegExp(/^(.*)\\[([0-9]*)\\]$/);\nexport class ParamType {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use fromString\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new ParamType()\"\n });\n }\n populate(this, params);\n let match = this.type.match(paramTypeArray);\n if (match) {\n populate(this, {\n arrayLength: parseInt(match[2] || \"-1\"),\n arrayChildren: ParamType.fromObject({\n type: match[1],\n components: this.components\n }),\n baseType: \"array\"\n });\n }\n else {\n populate(this, {\n arrayLength: null,\n arrayChildren: null,\n baseType: ((this.components != null) ? \"tuple\" : this.type)\n });\n }\n this._isParamType = true;\n Object.freeze(this);\n }\n // Format the parameter fragment\n // - sighash: \"(uint256,address)\"\n // - minimal: \"tuple(uint256,address) indexed\"\n // - full: \"tuple(uint256 foo, address bar) indexed baz\"\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n let result = {\n type: ((this.baseType === \"tuple\") ? \"tuple\" : this.type),\n name: (this.name || undefined)\n };\n if (typeof (this.indexed) === \"boolean\") {\n result.indexed = this.indexed;\n }\n if (this.components) {\n result.components = this.components.map((comp) => JSON.parse(comp.format(format)));\n }\n return JSON.stringify(result);\n }\n let result = \"\";\n // Array\n if (this.baseType === \"array\") {\n result += this.arrayChildren.format(format);\n result += \"[\" + (this.arrayLength < 0 ? \"\" : String(this.arrayLength)) + \"]\";\n }\n else {\n if (this.baseType === \"tuple\") {\n if (format !== FormatTypes.sighash) {\n result += this.type;\n }\n result += \"(\" + this.components.map((comp) => comp.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \")\";\n }\n else {\n result += this.type;\n }\n }\n if (format !== FormatTypes.sighash) {\n if (this.indexed === true) {\n result += \" indexed\";\n }\n if (format === FormatTypes.full && this.name) {\n result += \" \" + this.name;\n }\n }\n return result;\n }\n static from(value, allowIndexed) {\n if (typeof (value) === \"string\") {\n return ParamType.fromString(value, allowIndexed);\n }\n return ParamType.fromObject(value);\n }\n static fromObject(value) {\n if (ParamType.isParamType(value)) {\n return value;\n }\n return new ParamType(_constructorGuard, {\n name: (value.name || null),\n type: verifyType(value.type),\n indexed: ((value.indexed == null) ? null : !!value.indexed),\n components: (value.components ? value.components.map(ParamType.fromObject) : null)\n });\n }\n static fromString(value, allowIndexed) {\n function ParamTypify(node) {\n return ParamType.fromObject({\n name: node.name,\n type: node.type,\n indexed: node.indexed,\n components: node.components\n });\n }\n return ParamTypify(parseParamType(value, !!allowIndexed));\n }\n static isParamType(value) {\n return !!(value != null && value._isParamType);\n }\n}\n;\nfunction parseParams(value, allowIndex) {\n return splitNesting(value).map((param) => ParamType.fromString(param, allowIndex));\n}\nexport class Fragment {\n constructor(constructorGuard, params) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"use a static from method\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Fragment()\"\n });\n }\n populate(this, params);\n this._isFragment = true;\n Object.freeze(this);\n }\n static from(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n if (typeof (value) === \"string\") {\n return Fragment.fromString(value);\n }\n return Fragment.fromObject(value);\n }\n static fromObject(value) {\n if (Fragment.isFragment(value)) {\n return value;\n }\n switch (value.type) {\n case \"function\":\n return FunctionFragment.fromObject(value);\n case \"event\":\n return EventFragment.fromObject(value);\n case \"constructor\":\n return ConstructorFragment.fromObject(value);\n case \"error\":\n return ErrorFragment.fromObject(value);\n case \"fallback\":\n case \"receive\":\n // @TODO: Something? Maybe return a FunctionFragment? A custom DefaultFunctionFragment?\n return null;\n }\n return logger.throwArgumentError(\"invalid fragment object\", \"value\", value);\n }\n static fromString(value) {\n // Make sure the \"returns\" is surrounded by a space and all whitespace is exactly one space\n value = value.replace(/\\s/g, \" \");\n value = value.replace(/\\(/g, \" (\").replace(/\\)/g, \") \").replace(/\\s+/g, \" \");\n value = value.trim();\n if (value.split(\" \")[0] === \"event\") {\n return EventFragment.fromString(value.substring(5).trim());\n }\n else if (value.split(\" \")[0] === \"function\") {\n return FunctionFragment.fromString(value.substring(8).trim());\n }\n else if (value.split(\"(\")[0].trim() === \"constructor\") {\n return ConstructorFragment.fromString(value.trim());\n }\n else if (value.split(\" \")[0] === \"error\") {\n return ErrorFragment.fromString(value.substring(5).trim());\n }\n return logger.throwArgumentError(\"unsupported fragment\", \"value\", value);\n }\n static isFragment(value) {\n return !!(value && value._isFragment);\n }\n}\nexport class EventFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"event\",\n anonymous: this.anonymous,\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"event \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.anonymous) {\n result += \"anonymous \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return EventFragment.fromString(value);\n }\n return EventFragment.fromObject(value);\n }\n static fromObject(value) {\n if (EventFragment.isEventFragment(value)) {\n return value;\n }\n if (value.type !== \"event\") {\n logger.throwArgumentError(\"invalid event object\", \"value\", value);\n }\n const params = {\n name: verifyIdentifier(value.name),\n anonymous: value.anonymous,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n type: \"event\"\n };\n return new EventFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let match = value.match(regexParen);\n if (!match) {\n logger.throwArgumentError(\"invalid event string\", \"value\", value);\n }\n let anonymous = false;\n match[3].split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"anonymous\":\n anonymous = true;\n break;\n case \"\":\n break;\n default:\n logger.warn(\"unknown modifier: \" + modifier);\n }\n });\n return EventFragment.fromObject({\n name: match[1].trim(),\n anonymous: anonymous,\n inputs: parseParams(match[2], true),\n type: \"event\"\n });\n }\n static isEventFragment(value) {\n return (value && value._isFragment && value.type === \"event\");\n }\n}\nfunction parseGas(value, params) {\n params.gas = null;\n let comps = value.split(\"@\");\n if (comps.length !== 1) {\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid human-readable ABI signature\", \"value\", value);\n }\n if (!comps[1].match(/^[0-9]+$/)) {\n logger.throwArgumentError(\"invalid human-readable ABI signature gas\", \"value\", value);\n }\n params.gas = BigNumber.from(comps[1]);\n return comps[0];\n }\n return value;\n}\nfunction parseModifiers(value, params) {\n params.constant = false;\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n value.split(\" \").forEach((modifier) => {\n switch (modifier.trim()) {\n case \"constant\":\n params.constant = true;\n break;\n case \"payable\":\n params.payable = true;\n params.stateMutability = \"payable\";\n break;\n case \"nonpayable\":\n params.payable = false;\n params.stateMutability = \"nonpayable\";\n break;\n case \"pure\":\n params.constant = true;\n params.stateMutability = \"pure\";\n break;\n case \"view\":\n params.constant = true;\n params.stateMutability = \"view\";\n break;\n case \"external\":\n case \"public\":\n case \"\":\n break;\n default:\n console.log(\"unknown modifier: \" + modifier);\n }\n });\n}\nfunction verifyState(value) {\n let result = {\n constant: false,\n payable: true,\n stateMutability: \"payable\"\n };\n if (value.stateMutability != null) {\n result.stateMutability = value.stateMutability;\n // Set (and check things are consistent) the constant property\n result.constant = (result.stateMutability === \"view\" || result.stateMutability === \"pure\");\n if (value.constant != null) {\n if ((!!value.constant) !== result.constant) {\n logger.throwArgumentError(\"cannot have constant function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n // Set (and check things are consistent) the payable property\n result.payable = (result.stateMutability === \"payable\");\n if (value.payable != null) {\n if ((!!value.payable) !== result.payable) {\n logger.throwArgumentError(\"cannot have payable function with mutability \" + result.stateMutability, \"value\", value);\n }\n }\n }\n else if (value.payable != null) {\n result.payable = !!value.payable;\n // If payable we can assume non-constant; otherwise we can't assume\n if (value.constant == null && !result.payable && value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n result.constant = !!value.constant;\n if (result.constant) {\n result.stateMutability = \"view\";\n }\n else {\n result.stateMutability = (result.payable ? \"payable\" : \"nonpayable\");\n }\n if (result.payable && result.constant) {\n logger.throwArgumentError(\"cannot have constant payable function\", \"value\", value);\n }\n }\n else if (value.constant != null) {\n result.constant = !!value.constant;\n result.payable = !result.constant;\n result.stateMutability = (result.constant ? \"view\" : \"payable\");\n }\n else if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"unable to determine stateMutability\", \"value\", value);\n }\n return result;\n}\nexport class ConstructorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"constructor\",\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format)))\n });\n }\n if (format === FormatTypes.sighash) {\n logger.throwError(\"cannot format a constructor for sighash\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"format(sighash)\"\n });\n }\n let result = \"constructor(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (this.stateMutability && this.stateMutability !== \"nonpayable\") {\n result += this.stateMutability + \" \";\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ConstructorFragment.fromString(value);\n }\n return ConstructorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ConstructorFragment.isConstructorFragment(value)) {\n return value;\n }\n if (value.type !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor object\", \"value\", value);\n }\n let state = verifyState(value);\n if (state.constant) {\n logger.throwArgumentError(\"constructor cannot be constant\", \"value\", value);\n }\n const params = {\n name: null,\n type: value.type,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new ConstructorFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"constructor\" };\n value = parseGas(value, params);\n let parens = value.match(regexParen);\n if (!parens || parens[1].trim() !== \"constructor\") {\n logger.throwArgumentError(\"invalid constructor string\", \"value\", value);\n }\n params.inputs = parseParams(parens[2].trim(), false);\n parseModifiers(parens[3].trim(), params);\n return ConstructorFragment.fromObject(params);\n }\n static isConstructorFragment(value) {\n return (value && value._isFragment && value.type === \"constructor\");\n }\n}\nexport class FunctionFragment extends ConstructorFragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"function\",\n name: this.name,\n constant: this.constant,\n stateMutability: ((this.stateMutability !== \"nonpayable\") ? this.stateMutability : undefined),\n payable: this.payable,\n gas: (this.gas ? this.gas.toNumber() : undefined),\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n outputs: this.outputs.map((output) => JSON.parse(output.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"function \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n if (format !== FormatTypes.sighash) {\n if (this.stateMutability) {\n if (this.stateMutability !== \"nonpayable\") {\n result += (this.stateMutability + \" \");\n }\n }\n else if (this.constant) {\n result += \"view \";\n }\n if (this.outputs && this.outputs.length) {\n result += \"returns (\" + this.outputs.map((output) => output.format(format)).join(\", \") + \") \";\n }\n if (this.gas != null) {\n result += \"@\" + this.gas.toString() + \" \";\n }\n }\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return FunctionFragment.fromString(value);\n }\n return FunctionFragment.fromObject(value);\n }\n static fromObject(value) {\n if (FunctionFragment.isFunctionFragment(value)) {\n return value;\n }\n if (value.type !== \"function\") {\n logger.throwArgumentError(\"invalid function object\", \"value\", value);\n }\n let state = verifyState(value);\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n constant: state.constant,\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : []),\n outputs: (value.outputs ? value.outputs.map(ParamType.fromObject) : []),\n payable: state.payable,\n stateMutability: state.stateMutability,\n gas: (value.gas ? BigNumber.from(value.gas) : null)\n };\n return new FunctionFragment(_constructorGuard, params);\n }\n static fromString(value) {\n let params = { type: \"function\" };\n value = parseGas(value, params);\n let comps = value.split(\" returns \");\n if (comps.length > 2) {\n logger.throwArgumentError(\"invalid function string\", \"value\", value);\n }\n let parens = comps[0].match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid function signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n parseModifiers(parens[3].trim(), params);\n // We have outputs\n if (comps.length > 1) {\n let returns = comps[1].match(regexParen);\n if (returns[1].trim() != \"\" || returns[3].trim() != \"\") {\n logger.throwArgumentError(\"unexpected tokens\", \"value\", value);\n }\n params.outputs = parseParams(returns[2], false);\n }\n else {\n params.outputs = [];\n }\n return FunctionFragment.fromObject(params);\n }\n static isFunctionFragment(value) {\n return (value && value._isFragment && value.type === \"function\");\n }\n}\n//export class StructFragment extends Fragment {\n//}\nfunction checkForbidden(fragment) {\n const sig = fragment.format();\n if (sig === \"Error(string)\" || sig === \"Panic(uint256)\") {\n logger.throwArgumentError(`cannot specify user defined ${sig} error`, \"fragment\", fragment);\n }\n return fragment;\n}\nexport class ErrorFragment extends Fragment {\n format(format) {\n if (!format) {\n format = FormatTypes.sighash;\n }\n if (!FormatTypes[format]) {\n logger.throwArgumentError(\"invalid format type\", \"format\", format);\n }\n if (format === FormatTypes.json) {\n return JSON.stringify({\n type: \"error\",\n name: this.name,\n inputs: this.inputs.map((input) => JSON.parse(input.format(format))),\n });\n }\n let result = \"\";\n if (format !== FormatTypes.sighash) {\n result += \"error \";\n }\n result += this.name + \"(\" + this.inputs.map((input) => input.format(format)).join((format === FormatTypes.full) ? \", \" : \",\") + \") \";\n return result.trim();\n }\n static from(value) {\n if (typeof (value) === \"string\") {\n return ErrorFragment.fromString(value);\n }\n return ErrorFragment.fromObject(value);\n }\n static fromObject(value) {\n if (ErrorFragment.isErrorFragment(value)) {\n return value;\n }\n if (value.type !== \"error\") {\n logger.throwArgumentError(\"invalid error object\", \"value\", value);\n }\n const params = {\n type: value.type,\n name: verifyIdentifier(value.name),\n inputs: (value.inputs ? value.inputs.map(ParamType.fromObject) : [])\n };\n return checkForbidden(new ErrorFragment(_constructorGuard, params));\n }\n static fromString(value) {\n let params = { type: \"error\" };\n let parens = value.match(regexParen);\n if (!parens) {\n logger.throwArgumentError(\"invalid error signature\", \"value\", value);\n }\n params.name = parens[1].trim();\n if (params.name) {\n verifyIdentifier(params.name);\n }\n params.inputs = parseParams(parens[2], false);\n return checkForbidden(ErrorFragment.fromObject(params));\n }\n static isErrorFragment(value) {\n return (value && value._isFragment && value.type === \"error\");\n }\n}\nfunction verifyType(type) {\n // These need to be transformed to their full description\n if (type.match(/^uint($|[^1-9])/)) {\n type = \"uint256\" + type.substring(4);\n }\n else if (type.match(/^int($|[^1-9])/)) {\n type = \"int256\" + type.substring(3);\n }\n // @TODO: more verification\n return type;\n}\n// See: https://github.com/ethereum/solidity/blob/1f8f1a3db93a548d0555e3e14cfc55a10e25b60e/docs/grammar/SolidityLexer.g4#L234\nconst regexIdentifier = new RegExp(\"^[a-zA-Z$_][a-zA-Z0-9$_]*$\");\nfunction verifyIdentifier(value) {\n if (!value || !value.match(regexIdentifier)) {\n logger.throwArgumentError(`invalid identifier \"${value}\"`, \"value\", value);\n }\n return value;\n}\nconst regexParen = new RegExp(\"^([^)(]*)\\\\((.*)\\\\)([^)(]*)$\");\nfunction splitNesting(value) {\n value = value.trim();\n let result = [];\n let accum = \"\";\n let depth = 0;\n for (let offset = 0; offset < value.length; offset++) {\n let c = value[offset];\n if (c === \",\" && depth === 0) {\n result.push(accum);\n accum = \"\";\n }\n else {\n accum += c;\n if (c === \"(\") {\n depth++;\n }\n else if (c === \")\") {\n depth--;\n if (depth === -1) {\n logger.throwArgumentError(\"unbalanced parenthesis\", \"value\", value);\n }\n }\n }\n }\n if (accum) {\n result.push(accum);\n }\n return result;\n}\n//# sourceMappingURL=fragments.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexDataSlice, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { id } from \"@ethersproject/hash\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { defineReadOnly, Description, getStatic } from \"@ethersproject/properties\";\nimport { defaultAbiCoder } from \"./abi-coder\";\nimport { checkResultErrors } from \"./coders/abstract-coder\";\nimport { ConstructorFragment, EventFragment, FormatTypes, Fragment, FunctionFragment, ParamType } from \"./fragments\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport { checkResultErrors };\nexport class LogDescription extends Description {\n}\nexport class TransactionDescription extends Description {\n}\nexport class ErrorDescription extends Description {\n}\nexport class Indexed extends Description {\n static isIndexed(value) {\n return !!(value && value._isIndexed);\n }\n}\nconst BuiltinErrors = {\n \"0x08c379a0\": { signature: \"Error(string)\", name: \"Error\", inputs: [\"string\"], reason: true },\n \"0x4e487b71\": { signature: \"Panic(uint256)\", name: \"Panic\", inputs: [\"uint256\"] }\n};\nfunction wrapAccessError(property, error) {\n const wrap = new Error(`deferred error during ABI decoding triggered accessing ${property}`);\n wrap.error = error;\n return wrap;\n}\n/*\nfunction checkNames(fragment: Fragment, type: \"input\" | \"output\", params: Array): void {\n params.reduce((accum, param) => {\n if (param.name) {\n if (accum[param.name]) {\n logger.throwArgumentError(`duplicate ${ type } parameter ${ JSON.stringify(param.name) } in ${ fragment.format(\"full\") }`, \"fragment\", fragment);\n }\n accum[param.name] = true;\n }\n return accum;\n }, <{ [ name: string ]: boolean }>{ });\n}\n*/\nexport class Interface {\n constructor(fragments) {\n let abi = [];\n if (typeof (fragments) === \"string\") {\n abi = JSON.parse(fragments);\n }\n else {\n abi = fragments;\n }\n defineReadOnly(this, \"fragments\", abi.map((fragment) => {\n return Fragment.from(fragment);\n }).filter((fragment) => (fragment != null)));\n defineReadOnly(this, \"_abiCoder\", getStatic(new.target, \"getAbiCoder\")());\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"errors\", {});\n defineReadOnly(this, \"events\", {});\n defineReadOnly(this, \"structs\", {});\n // Add all fragments by their signature\n this.fragments.forEach((fragment) => {\n let bucket = null;\n switch (fragment.type) {\n case \"constructor\":\n if (this.deploy) {\n logger.warn(\"duplicate definition - constructor\");\n return;\n }\n //checkNames(fragment, \"input\", fragment.inputs);\n defineReadOnly(this, \"deploy\", fragment);\n return;\n case \"function\":\n //checkNames(fragment, \"input\", fragment.inputs);\n //checkNames(fragment, \"output\", (fragment).outputs);\n bucket = this.functions;\n break;\n case \"event\":\n //checkNames(fragment, \"input\", fragment.inputs);\n bucket = this.events;\n break;\n case \"error\":\n bucket = this.errors;\n break;\n default:\n return;\n }\n let signature = fragment.format();\n if (bucket[signature]) {\n logger.warn(\"duplicate definition - \" + signature);\n return;\n }\n bucket[signature] = fragment;\n });\n // If we do not have a constructor add a default\n if (!this.deploy) {\n defineReadOnly(this, \"deploy\", ConstructorFragment.from({\n payable: false,\n type: \"constructor\"\n }));\n }\n defineReadOnly(this, \"_isInterface\", true);\n }\n format(format) {\n if (!format) {\n format = FormatTypes.full;\n }\n if (format === FormatTypes.sighash) {\n logger.throwArgumentError(\"interface does not support formatting sighash\", \"format\", format);\n }\n const abi = this.fragments.map((fragment) => fragment.format(format));\n // We need to re-bundle the JSON fragments a bit\n if (format === FormatTypes.json) {\n return JSON.stringify(abi.map((j) => JSON.parse(j)));\n }\n return abi;\n }\n // Sub-classes can override these to handle other blockchains\n static getAbiCoder() {\n return defaultAbiCoder;\n }\n static getAddress(address) {\n return getAddress(address);\n }\n static getSighash(fragment) {\n return hexDataSlice(id(fragment.format()), 0, 4);\n }\n static getEventTopic(eventFragment) {\n return id(eventFragment.format());\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getFunction(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n for (const name in this.functions) {\n if (nameOrSignatureOrSighash === this.getSighash(name)) {\n return this.functions[name];\n }\n }\n logger.throwArgumentError(\"no matching function\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.functions).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching function\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching functions\", \"name\", name);\n }\n return this.functions[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.functions[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching function\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Find an event definition by any means necessary (unless it is ambiguous)\n getEvent(nameOrSignatureOrTopic) {\n if (isHexString(nameOrSignatureOrTopic)) {\n const topichash = nameOrSignatureOrTopic.toLowerCase();\n for (const name in this.events) {\n if (topichash === this.getEventTopic(name)) {\n return this.events[name];\n }\n }\n logger.throwArgumentError(\"no matching event\", \"topichash\", topichash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrTopic.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrTopic.trim();\n const matching = Object.keys(this.events).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching event\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching events\", \"name\", name);\n }\n return this.events[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.events[EventFragment.fromString(nameOrSignatureOrTopic).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching event\", \"signature\", nameOrSignatureOrTopic);\n }\n return result;\n }\n // Find a function definition by any means necessary (unless it is ambiguous)\n getError(nameOrSignatureOrSighash) {\n if (isHexString(nameOrSignatureOrSighash)) {\n const getSighash = getStatic(this.constructor, \"getSighash\");\n for (const name in this.errors) {\n const error = this.errors[name];\n if (nameOrSignatureOrSighash === getSighash(error)) {\n return this.errors[name];\n }\n }\n logger.throwArgumentError(\"no matching error\", \"sighash\", nameOrSignatureOrSighash);\n }\n // It is a bare name, look up the function (will return null if ambiguous)\n if (nameOrSignatureOrSighash.indexOf(\"(\") === -1) {\n const name = nameOrSignatureOrSighash.trim();\n const matching = Object.keys(this.errors).filter((f) => (f.split(\"(\" /* fix:) */)[0] === name));\n if (matching.length === 0) {\n logger.throwArgumentError(\"no matching error\", \"name\", name);\n }\n else if (matching.length > 1) {\n logger.throwArgumentError(\"multiple matching errors\", \"name\", name);\n }\n return this.errors[matching[0]];\n }\n // Normalize the signature and lookup the function\n const result = this.errors[FunctionFragment.fromString(nameOrSignatureOrSighash).format()];\n if (!result) {\n logger.throwArgumentError(\"no matching error\", \"signature\", nameOrSignatureOrSighash);\n }\n return result;\n }\n // Get the sighash (the bytes4 selector) used by Solidity to identify a function\n getSighash(fragment) {\n if (typeof (fragment) === \"string\") {\n try {\n fragment = this.getFunction(fragment);\n }\n catch (error) {\n try {\n fragment = this.getError(fragment);\n }\n catch (_) {\n throw error;\n }\n }\n }\n return getStatic(this.constructor, \"getSighash\")(fragment);\n }\n // Get the topic (the bytes32 hash) used by Solidity to identify an event\n getEventTopic(eventFragment) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n return getStatic(this.constructor, \"getEventTopic\")(eventFragment);\n }\n _decodeParams(params, data) {\n return this._abiCoder.decode(params, data);\n }\n _encodeParams(params, values) {\n return this._abiCoder.encode(params, values);\n }\n encodeDeploy(values) {\n return this._encodeParams(this.deploy.inputs, values || []);\n }\n decodeErrorResult(fragment, data) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(fragment)) {\n logger.throwArgumentError(`data signature does not match error ${fragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(fragment.inputs, bytes.slice(4));\n }\n encodeErrorResult(fragment, values) {\n if (typeof (fragment) === \"string\") {\n fragment = this.getError(fragment);\n }\n return hexlify(concat([\n this.getSighash(fragment),\n this._encodeParams(fragment.inputs, values || [])\n ]));\n }\n // Decode the data for a function call (e.g. tx.data)\n decodeFunctionData(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n const bytes = arrayify(data);\n if (hexlify(bytes.slice(0, 4)) !== this.getSighash(functionFragment)) {\n logger.throwArgumentError(`data signature does not match function ${functionFragment.name}.`, \"data\", hexlify(bytes));\n }\n return this._decodeParams(functionFragment.inputs, bytes.slice(4));\n }\n // Encode the data for a function call (e.g. tx.data)\n encodeFunctionData(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(concat([\n this.getSighash(functionFragment),\n this._encodeParams(functionFragment.inputs, values || [])\n ]));\n }\n // Decode the result from a function call (e.g. from eth_call)\n decodeFunctionResult(functionFragment, data) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n let bytes = arrayify(data);\n let reason = null;\n let message = \"\";\n let errorArgs = null;\n let errorName = null;\n let errorSignature = null;\n switch (bytes.length % this._abiCoder._getWordSize()) {\n case 0:\n try {\n return this._abiCoder.decode(functionFragment.outputs, bytes);\n }\n catch (error) { }\n break;\n case 4: {\n const selector = hexlify(bytes.slice(0, 4));\n const builtin = BuiltinErrors[selector];\n if (builtin) {\n errorArgs = this._abiCoder.decode(builtin.inputs, bytes.slice(4));\n errorName = builtin.name;\n errorSignature = builtin.signature;\n if (builtin.reason) {\n reason = errorArgs[0];\n }\n if (errorName === \"Error\") {\n message = `; VM Exception while processing transaction: reverted with reason string ${JSON.stringify(errorArgs[0])}`;\n }\n else if (errorName === \"Panic\") {\n message = `; VM Exception while processing transaction: reverted with panic code ${errorArgs[0]}`;\n }\n }\n else {\n try {\n const error = this.getError(selector);\n errorArgs = this._abiCoder.decode(error.inputs, bytes.slice(4));\n errorName = error.name;\n errorSignature = error.format();\n }\n catch (error) { }\n }\n break;\n }\n }\n return logger.throwError(\"call revert exception\" + message, Logger.errors.CALL_EXCEPTION, {\n method: functionFragment.format(),\n data: hexlify(data), errorArgs, errorName, errorSignature, reason\n });\n }\n // Encode the result for a function call (e.g. for eth_call)\n encodeFunctionResult(functionFragment, values) {\n if (typeof (functionFragment) === \"string\") {\n functionFragment = this.getFunction(functionFragment);\n }\n return hexlify(this._abiCoder.encode(functionFragment.outputs, values || []));\n }\n // Create the filter for the event with search criteria (e.g. for eth_filterLog)\n encodeFilterTopics(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (values.length > eventFragment.inputs.length) {\n logger.throwError(\"too many arguments for \" + eventFragment.format(), Logger.errors.UNEXPECTED_ARGUMENT, {\n argument: \"values\",\n value: values\n });\n }\n let topics = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n const encodeTopic = (param, value) => {\n if (param.type === \"string\") {\n return id(value);\n }\n else if (param.type === \"bytes\") {\n return keccak256(hexlify(value));\n }\n if (param.type === \"bool\" && typeof (value) === \"boolean\") {\n value = (value ? \"0x01\" : \"0x00\");\n }\n if (param.type.match(/^u?int/)) {\n value = BigNumber.from(value).toHexString();\n }\n // Check addresses are valid\n if (param.type === \"address\") {\n this._abiCoder.encode([\"address\"], [value]);\n }\n return hexZeroPad(hexlify(value), 32);\n };\n values.forEach((value, index) => {\n let param = eventFragment.inputs[index];\n if (!param.indexed) {\n if (value != null) {\n logger.throwArgumentError(\"cannot filter non-indexed parameters; must be null\", (\"contract.\" + param.name), value);\n }\n return;\n }\n if (value == null) {\n topics.push(null);\n }\n else if (param.baseType === \"array\" || param.baseType === \"tuple\") {\n logger.throwArgumentError(\"filtering with tuples or arrays not supported\", (\"contract.\" + param.name), value);\n }\n else if (Array.isArray(value)) {\n topics.push(value.map((value) => encodeTopic(param, value)));\n }\n else {\n topics.push(encodeTopic(param, value));\n }\n });\n // Trim off trailing nulls\n while (topics.length && topics[topics.length - 1] === null) {\n topics.pop();\n }\n return topics;\n }\n encodeEventLog(eventFragment, values) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n const topics = [];\n const dataTypes = [];\n const dataValues = [];\n if (!eventFragment.anonymous) {\n topics.push(this.getEventTopic(eventFragment));\n }\n if (values.length !== eventFragment.inputs.length) {\n logger.throwArgumentError(\"event arguments/values mismatch\", \"values\", values);\n }\n eventFragment.inputs.forEach((param, index) => {\n const value = values[index];\n if (param.indexed) {\n if (param.type === \"string\") {\n topics.push(id(value));\n }\n else if (param.type === \"bytes\") {\n topics.push(keccak256(value));\n }\n else if (param.baseType === \"tuple\" || param.baseType === \"array\") {\n // @TODO\n throw new Error(\"not implemented\");\n }\n else {\n topics.push(this._abiCoder.encode([param.type], [value]));\n }\n }\n else {\n dataTypes.push(param);\n dataValues.push(value);\n }\n });\n return {\n data: this._abiCoder.encode(dataTypes, dataValues),\n topics: topics\n };\n }\n // Decode a filter for the event and the search criteria\n decodeEventLog(eventFragment, data, topics) {\n if (typeof (eventFragment) === \"string\") {\n eventFragment = this.getEvent(eventFragment);\n }\n if (topics != null && !eventFragment.anonymous) {\n let topicHash = this.getEventTopic(eventFragment);\n if (!isHexString(topics[0], 32) || topics[0].toLowerCase() !== topicHash) {\n logger.throwError(\"fragment/topic mismatch\", Logger.errors.INVALID_ARGUMENT, { argument: \"topics[0]\", expected: topicHash, value: topics[0] });\n }\n topics = topics.slice(1);\n }\n let indexed = [];\n let nonIndexed = [];\n let dynamic = [];\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (param.type === \"string\" || param.type === \"bytes\" || param.baseType === \"tuple\" || param.baseType === \"array\") {\n indexed.push(ParamType.fromObject({ type: \"bytes32\", name: param.name }));\n dynamic.push(true);\n }\n else {\n indexed.push(param);\n dynamic.push(false);\n }\n }\n else {\n nonIndexed.push(param);\n dynamic.push(false);\n }\n });\n let resultIndexed = (topics != null) ? this._abiCoder.decode(indexed, concat(topics)) : null;\n let resultNonIndexed = this._abiCoder.decode(nonIndexed, data, true);\n let result = [];\n let nonIndexedIndex = 0, indexedIndex = 0;\n eventFragment.inputs.forEach((param, index) => {\n if (param.indexed) {\n if (resultIndexed == null) {\n result[index] = new Indexed({ _isIndexed: true, hash: null });\n }\n else if (dynamic[index]) {\n result[index] = new Indexed({ _isIndexed: true, hash: resultIndexed[indexedIndex++] });\n }\n else {\n try {\n result[index] = resultIndexed[indexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n }\n else {\n try {\n result[index] = resultNonIndexed[nonIndexedIndex++];\n }\n catch (error) {\n result[index] = error;\n }\n }\n // Add the keyword argument if named and safe\n if (param.name && result[param.name] == null) {\n const value = result[index];\n // Make error named values throw on access\n if (value instanceof Error) {\n Object.defineProperty(result, param.name, {\n enumerable: true,\n get: () => { throw wrapAccessError(`property ${JSON.stringify(param.name)}`, value); }\n });\n }\n else {\n result[param.name] = value;\n }\n }\n });\n // Make all error indexed values throw on access\n for (let i = 0; i < result.length; i++) {\n const value = result[i];\n if (value instanceof Error) {\n Object.defineProperty(result, i, {\n enumerable: true,\n get: () => { throw wrapAccessError(`index ${i}`, value); }\n });\n }\n }\n return Object.freeze(result);\n }\n // Given a transaction, find the matching function fragment (if any) and\n // determine all its properties and call parameters\n parseTransaction(tx) {\n let fragment = this.getFunction(tx.data.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new TransactionDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + tx.data.substring(10)),\n functionFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n value: BigNumber.from(tx.value || \"0\"),\n });\n }\n // @TODO\n //parseCallResult(data: BytesLike): ??\n // Given an event log, find the matching event fragment (if any) and\n // determine all its properties and values\n parseLog(log) {\n let fragment = this.getEvent(log.topics[0]);\n if (!fragment || fragment.anonymous) {\n return null;\n }\n // @TODO: If anonymous, and the only method, and the input count matches, should we parse?\n // Probably not, because just because it is the only event in the ABI does\n // not mean we have the full ABI; maybe just a fragment?\n return new LogDescription({\n eventFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n topic: this.getEventTopic(fragment),\n args: this.decodeEventLog(fragment, log.data, log.topics)\n });\n }\n parseError(data) {\n const hexData = hexlify(data);\n let fragment = this.getError(hexData.substring(0, 10).toLowerCase());\n if (!fragment) {\n return null;\n }\n return new ErrorDescription({\n args: this._abiCoder.decode(fragment.inputs, \"0x\" + hexData.substring(10)),\n errorFragment: fragment,\n name: fragment.name,\n signature: fragment.format(),\n sighash: this.getSighash(fragment),\n });\n }\n /*\n static from(value: Array | string | Interface) {\n if (Interface.isInterface(value)) {\n return value;\n }\n if (typeof(value) === \"string\") {\n return new Interface(JSON.parse(value));\n }\n return new Interface(value);\n }\n */\n static isInterface(value) {\n return !!(value && value._isInterface);\n }\n}\n//# sourceMappingURL=interface.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { Description, defineReadOnly, resolveProperties } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\n;\n//export type CallTransactionable = {\n// call(transaction: TransactionRequest): Promise;\n//};\nexport class ForkEvent extends Description {\n static isForkEvent(value) {\n return !!(value && value._isForkEvent);\n }\n}\nexport class BlockForkEvent extends ForkEvent {\n constructor(blockHash, expiry) {\n if (!isHexString(blockHash, 32)) {\n logger.throwArgumentError(\"invalid blockHash\", \"blockHash\", blockHash);\n }\n super({\n _isForkEvent: true,\n _isBlockForkEvent: true,\n expiry: (expiry || 0),\n blockHash: blockHash\n });\n }\n}\nexport class TransactionForkEvent extends ForkEvent {\n constructor(hash, expiry) {\n if (!isHexString(hash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"hash\", hash);\n }\n super({\n _isForkEvent: true,\n _isTransactionForkEvent: true,\n expiry: (expiry || 0),\n hash: hash\n });\n }\n}\nexport class TransactionOrderForkEvent extends ForkEvent {\n constructor(beforeHash, afterHash, expiry) {\n if (!isHexString(beforeHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"beforeHash\", beforeHash);\n }\n if (!isHexString(afterHash, 32)) {\n logger.throwArgumentError(\"invalid transaction hash\", \"afterHash\", afterHash);\n }\n super({\n _isForkEvent: true,\n _isTransactionOrderForkEvent: true,\n expiry: (expiry || 0),\n beforeHash: beforeHash,\n afterHash: afterHash\n });\n }\n}\n///////////////////////////////\n// Exported Abstracts\nexport class Provider {\n constructor() {\n logger.checkAbstract(new.target, Provider);\n defineReadOnly(this, \"_isProvider\", true);\n }\n getFeeData() {\n return __awaiter(this, void 0, void 0, function* () {\n const { block, gasPrice } = yield resolveProperties({\n block: this.getBlock(\"latest\"),\n gasPrice: this.getGasPrice().catch((error) => {\n // @TODO: Why is this now failing on Calaveras?\n //console.log(error);\n return null;\n })\n });\n let lastBaseFeePerGas = null, maxFeePerGas = null, maxPriorityFeePerGas = null;\n if (block && block.baseFeePerGas) {\n // We may want to compute this more accurately in the future,\n // using the formula \"check if the base fee is correct\".\n // See: https://eips.ethereum.org/EIPS/eip-1559\n lastBaseFeePerGas = block.baseFeePerGas;\n maxPriorityFeePerGas = BigNumber.from(\"1500000000\");\n maxFeePerGas = block.baseFeePerGas.mul(2).add(maxPriorityFeePerGas);\n }\n return { lastBaseFeePerGas, maxFeePerGas, maxPriorityFeePerGas, gasPrice };\n });\n }\n // Alias for \"on\"\n addListener(eventName, listener) {\n return this.on(eventName, listener);\n }\n // Alias for \"off\"\n removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n static isProvider(value) {\n return !!(value && value._isProvider);\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"abstract-provider/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { defineReadOnly, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst allowedTransactionKeys = [\n \"accessList\", \"ccipReadEnabled\", \"chainId\", \"customData\", \"data\", \"from\", \"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"to\", \"type\", \"value\"\n];\nconst forwardErrors = [\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n];\n;\n;\nexport class Signer {\n ///////////////////\n // Sub-classes MUST call super\n constructor() {\n logger.checkAbstract(new.target, Signer);\n defineReadOnly(this, \"_isSigner\", true);\n }\n ///////////////////\n // Sub-classes MAY override these\n getBalance(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getBalance\");\n return yield this.provider.getBalance(this.getAddress(), blockTag);\n });\n }\n getTransactionCount(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getTransactionCount\");\n return yield this.provider.getTransactionCount(this.getAddress(), blockTag);\n });\n }\n // Populates \"from\" if unspecified, and estimates the gas for the transaction\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"estimateGas\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.estimateGas(tx);\n });\n }\n // Populates \"from\" if unspecified, and calls with the transaction\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"call\");\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n return yield this.provider.call(tx, blockTag);\n });\n }\n // Populates all fields in a transaction, signs it and sends it to the network\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"sendTransaction\");\n const tx = yield this.populateTransaction(transaction);\n const signedTx = yield this.signTransaction(tx);\n return yield this.provider.sendTransaction(signedTx);\n });\n }\n getChainId() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getChainId\");\n const network = yield this.provider.getNetwork();\n return network.chainId;\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getGasPrice\");\n return yield this.provider.getGasPrice();\n });\n }\n getFeeData() {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"getFeeData\");\n return yield this.provider.getFeeData();\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n this._checkProvider(\"resolveName\");\n return yield this.provider.resolveName(name);\n });\n }\n // Checks a transaction does not contain invalid keys and if\n // no \"from\" is provided, populates it.\n // - does NOT require a provider\n // - adds \"from\" is not present\n // - returns a COPY (safe to mutate the result)\n // By default called from: (overriding these prevents it)\n // - call\n // - estimateGas\n // - populateTransaction (and therefor sendTransaction)\n checkTransaction(transaction) {\n for (const key in transaction) {\n if (allowedTransactionKeys.indexOf(key) === -1) {\n logger.throwArgumentError(\"invalid transaction key: \" + key, \"transaction\", transaction);\n }\n }\n const tx = shallowCopy(transaction);\n if (tx.from == null) {\n tx.from = this.getAddress();\n }\n else {\n // Make sure any provided address matches this signer\n tx.from = Promise.all([\n Promise.resolve(tx.from),\n this.getAddress()\n ]).then((result) => {\n if (result[0].toLowerCase() !== result[1].toLowerCase()) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n return result[0];\n });\n }\n return tx;\n }\n // Populates ALL keys for a transaction and checks that \"from\" matches\n // this Signer. Should be used by sendTransaction but NOT by signTransaction.\n // By default called from: (overriding these prevents it)\n // - sendTransaction\n //\n // Notes:\n // - We allow gasPrice for EIP-1559 as long as it matches maxFeePerGas\n populateTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const tx = yield resolveProperties(this.checkTransaction(transaction));\n if (tx.to != null) {\n tx.to = Promise.resolve(tx.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n // Prevent this error from causing an UnhandledPromiseException\n tx.to.catch((error) => { });\n }\n // Do not allow mixing pre-eip-1559 and eip-1559 properties\n const hasEip1559 = (tx.maxFeePerGas != null || tx.maxPriorityFeePerGas != null);\n if (tx.gasPrice != null && (tx.type === 2 || hasEip1559)) {\n logger.throwArgumentError(\"eip-1559 transaction do not support gasPrice\", \"transaction\", transaction);\n }\n else if ((tx.type === 0 || tx.type === 1) && hasEip1559) {\n logger.throwArgumentError(\"pre-eip-1559 transaction do not support maxFeePerGas/maxPriorityFeePerGas\", \"transaction\", transaction);\n }\n if ((tx.type === 2 || tx.type == null) && (tx.maxFeePerGas != null && tx.maxPriorityFeePerGas != null)) {\n // Fully-formed EIP-1559 transaction (skip getFeeData)\n tx.type = 2;\n }\n else if (tx.type === 0 || tx.type === 1) {\n // Explicit Legacy or EIP-2930 transaction\n // Populate missing gasPrice\n if (tx.gasPrice == null) {\n tx.gasPrice = this.getGasPrice();\n }\n }\n else {\n // We need to get fee data to determine things\n const feeData = yield this.getFeeData();\n if (tx.type == null) {\n // We need to auto-detect the intended type of this transaction...\n if (feeData.maxFeePerGas != null && feeData.maxPriorityFeePerGas != null) {\n // The network supports EIP-1559!\n // Upgrade transaction from null to eip-1559\n tx.type = 2;\n if (tx.gasPrice != null) {\n // Using legacy gasPrice property on an eip-1559 network,\n // so use gasPrice as both fee properties\n const gasPrice = tx.gasPrice;\n delete tx.gasPrice;\n tx.maxFeePerGas = gasPrice;\n tx.maxPriorityFeePerGas = gasPrice;\n }\n else {\n // Populate missing fee data\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n }\n else if (feeData.gasPrice != null) {\n // Network doesn't support EIP-1559...\n // ...but they are trying to use EIP-1559 properties\n if (hasEip1559) {\n logger.throwError(\"network does not support EIP-1559\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"populateTransaction\"\n });\n }\n // Populate missing fee data\n if (tx.gasPrice == null) {\n tx.gasPrice = feeData.gasPrice;\n }\n // Explicitly set untyped transaction to legacy\n tx.type = 0;\n }\n else {\n // getFeeData has failed us.\n logger.throwError(\"failed to get consistent fee data\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signer.getFeeData\"\n });\n }\n }\n else if (tx.type === 2) {\n // Explicitly using EIP-1559\n // Populate missing fee data\n if (tx.maxFeePerGas == null) {\n tx.maxFeePerGas = feeData.maxFeePerGas;\n }\n if (tx.maxPriorityFeePerGas == null) {\n tx.maxPriorityFeePerGas = feeData.maxPriorityFeePerGas;\n }\n }\n }\n if (tx.nonce == null) {\n tx.nonce = this.getTransactionCount(\"pending\");\n }\n if (tx.gasLimit == null) {\n tx.gasLimit = this.estimateGas(tx).catch((error) => {\n if (forwardErrors.indexOf(error.code) >= 0) {\n throw error;\n }\n return logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error: error,\n tx: tx\n });\n });\n }\n if (tx.chainId == null) {\n tx.chainId = this.getChainId();\n }\n else {\n tx.chainId = Promise.all([\n Promise.resolve(tx.chainId),\n this.getChainId()\n ]).then((results) => {\n if (results[1] !== 0 && results[0] !== results[1]) {\n logger.throwArgumentError(\"chainId address mismatch\", \"transaction\", transaction);\n }\n return results[0];\n });\n }\n return yield resolveProperties(tx);\n });\n }\n ///////////////////\n // Sub-classes SHOULD leave these alone\n _checkProvider(operation) {\n if (!this.provider) {\n logger.throwError(\"missing provider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: (operation || \"_checkProvider\")\n });\n }\n }\n static isSigner(value) {\n return !!(value && value._isSigner);\n }\n}\nexport class VoidSigner extends Signer {\n constructor(address, provider) {\n super();\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"provider\", provider || null);\n }\n getAddress() {\n return Promise.resolve(this.address);\n }\n _fail(message, operation) {\n return Promise.resolve().then(() => {\n logger.throwError(message, Logger.errors.UNSUPPORTED_OPERATION, { operation: operation });\n });\n }\n signMessage(message) {\n return this._fail(\"VoidSigner cannot sign messages\", \"signMessage\");\n }\n signTransaction(transaction) {\n return this._fail(\"VoidSigner cannot sign transactions\", \"signTransaction\");\n }\n _signTypedData(domain, types, value) {\n return this._fail(\"VoidSigner cannot sign typed data\", \"signTypedData\");\n }\n connect(provider) {\n return new VoidSigner(this.address, provider);\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"abstract-signer/5.7.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"address/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify, concat, hexDataLength, hexDataSlice, isHexString, stripZeros } from \"@ethersproject/bytes\";\nimport { BigNumber, _base16To36, _base36To16 } from \"@ethersproject/bignumber\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { encode } from \"@ethersproject/rlp\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction getChecksumAddress(address) {\n if (!isHexString(address, 20)) {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = arrayify(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// Shims for environments that are missing some required constants and functions\nconst MAX_SAFE_INTEGER = 0x1fffffffffffff;\nfunction log10(x) {\n if (Math.log10) {\n return Math.log10(x);\n }\n return Math.log(x) / Math.LN10;\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\nconst safeDigits = Math.floor(log10(MAX_SAFE_INTEGER));\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nexport function getAddress(address) {\n let result = null;\n if (typeof (address) !== \"string\") {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (address.substring(0, 2) !== \"0x\") {\n address = \"0x\" + address;\n }\n result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n if (address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) && result !== address) {\n logger.throwArgumentError(\"bad address checksum\", \"address\", address);\n }\n // Maybe ICAP? (we only support direct mode)\n }\n else if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n if (address.substring(2, 4) !== ibanChecksum(address)) {\n logger.throwArgumentError(\"bad icap checksum\", \"address\", address);\n }\n result = _base36To16(address.substring(4));\n while (result.length < 40) {\n result = \"0\" + result;\n }\n result = getChecksumAddress(\"0x\" + result);\n }\n else {\n logger.throwArgumentError(\"invalid address\", \"address\", address);\n }\n return result;\n}\nexport function isAddress(address) {\n try {\n getAddress(address);\n return true;\n }\n catch (error) { }\n return false;\n}\nexport function getIcapAddress(address) {\n let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n// http://ethereum.stackexchange.com/questions/760/how-is-the-address-of-an-ethereum-contract-computed\nexport function getContractAddress(transaction) {\n let from = null;\n try {\n from = getAddress(transaction.from);\n }\n catch (error) {\n logger.throwArgumentError(\"missing from address\", \"transaction\", transaction);\n }\n const nonce = stripZeros(arrayify(BigNumber.from(transaction.nonce).toHexString()));\n return getAddress(hexDataSlice(keccak256(encode([from, nonce])), 12));\n}\nexport function getCreate2Address(from, salt, initCodeHash) {\n if (hexDataLength(salt) !== 32) {\n logger.throwArgumentError(\"salt must be 32 bytes\", \"salt\", salt);\n }\n if (hexDataLength(initCodeHash) !== 32) {\n logger.throwArgumentError(\"initCodeHash must be 32 bytes\", \"initCodeHash\", initCodeHash);\n }\n return getAddress(hexDataSlice(keccak256(concat([\"0xff\", getAddress(from), salt, initCodeHash])), 12));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function decode(textData) {\n textData = atob(textData);\n const data = [];\n for (let i = 0; i < textData.length; i++) {\n data.push(textData.charCodeAt(i));\n }\n return arrayify(data);\n}\nexport function encode(data) {\n data = arrayify(data);\n let textData = \"\";\n for (let i = 0; i < data.length; i++) {\n textData += String.fromCharCode(data[i]);\n }\n return btoa(textData);\n}\n//# sourceMappingURL=base64.js.map","/**\n * var basex = require(\"base-x\");\n *\n * This implementation is heavily based on base-x. The main reason to\n * deviate was to prevent the dependency of Buffer.\n *\n * Contributors:\n *\n * base-x encoding\n * Forked from https://github.com/cryptocoinjs/bs58\n * Originally written by Mike Hearn for BitcoinJ\n * Copyright (c) 2011 Google Inc\n * Ported to JavaScript by Stefan Thomas\n * Merged Buffer refactorings from base58-native by Stephen Pair\n * Copyright (c) 2013 BitPay Inc\n *\n * The MIT License (MIT)\n *\n * Copyright base-x contributors (c) 2016\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the \"Software\"),\n * to deal in the Software without restriction, including without limitation\n * the rights to use, copy, modify, merge, publish, distribute, sublicense,\n * and/or sell copies of the Software, and to permit persons to whom the\n * Software is furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n *\n */\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nexport class BaseX {\n constructor(alphabet) {\n defineReadOnly(this, \"alphabet\", alphabet);\n defineReadOnly(this, \"base\", alphabet.length);\n defineReadOnly(this, \"_alphabetMap\", {});\n defineReadOnly(this, \"_leader\", alphabet.charAt(0));\n // pre-compute lookup table\n for (let i = 0; i < alphabet.length; i++) {\n this._alphabetMap[alphabet.charAt(i)] = i;\n }\n }\n encode(value) {\n let source = arrayify(value);\n if (source.length === 0) {\n return \"\";\n }\n let digits = [0];\n for (let i = 0; i < source.length; ++i) {\n let carry = source[i];\n for (let j = 0; j < digits.length; ++j) {\n carry += digits[j] << 8;\n digits[j] = carry % this.base;\n carry = (carry / this.base) | 0;\n }\n while (carry > 0) {\n digits.push(carry % this.base);\n carry = (carry / this.base) | 0;\n }\n }\n let string = \"\";\n // deal with leading zeros\n for (let k = 0; source[k] === 0 && k < source.length - 1; ++k) {\n string += this._leader;\n }\n // convert digits to a string\n for (let q = digits.length - 1; q >= 0; --q) {\n string += this.alphabet[digits[q]];\n }\n return string;\n }\n decode(value) {\n if (typeof (value) !== \"string\") {\n throw new TypeError(\"Expected String\");\n }\n let bytes = [];\n if (value.length === 0) {\n return new Uint8Array(bytes);\n }\n bytes.push(0);\n for (let i = 0; i < value.length; i++) {\n let byte = this._alphabetMap[value[i]];\n if (byte === undefined) {\n throw new Error(\"Non-base\" + this.base + \" character\");\n }\n let carry = byte;\n for (let j = 0; j < bytes.length; ++j) {\n carry += bytes[j] * this.base;\n bytes[j] = carry & 0xff;\n carry >>= 8;\n }\n while (carry > 0) {\n bytes.push(carry & 0xff);\n carry >>= 8;\n }\n }\n // deal with leading zeros\n for (let k = 0; value[k] === this._leader && k < value.length - 1; ++k) {\n bytes.push(0);\n }\n return arrayify(new Uint8Array(bytes.reverse()));\n }\n}\nconst Base32 = new BaseX(\"abcdefghijklmnopqrstuvwxyz234567\");\nconst Base58 = new BaseX(\"123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz\");\nexport { Base32, Base58 };\n//console.log(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\"))\n//console.log(Base58.encode(Base58.decode(\"Qmd2V777o5XvJbYMeMb8k2nU5f8d3ciUQ5YpYuWhzv8iDj\")))\n//# sourceMappingURL=index.js.map","export const version = \"bignumber/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n/**\n * BigNumber\n *\n * A wrapper around the BN.js object. We use the BN.js library\n * because it is used by elliptic, so it is required regardless.\n *\n */\nimport _BN from \"bn.js\";\nvar BN = _BN.BN;\nimport { hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst _constructorGuard = {};\nconst MAX_SAFE = 0x1fffffffffffff;\nexport function isBigNumberish(value) {\n return (value != null) && (BigNumber.isBigNumber(value) ||\n (typeof (value) === \"number\" && (value % 1) === 0) ||\n (typeof (value) === \"string\" && !!value.match(/^-?[0-9]+$/)) ||\n isHexString(value) ||\n (typeof (value) === \"bigint\") ||\n isBytes(value));\n}\n// Only warn about passing 10 into radix once\nlet _warnedToStringRadix = false;\nexport class BigNumber {\n constructor(constructorGuard, hex) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot call constructor directly; use BigNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new (BigNumber)\"\n });\n }\n this._hex = hex;\n this._isBigNumber = true;\n Object.freeze(this);\n }\n fromTwos(value) {\n return toBigNumber(toBN(this).fromTwos(value));\n }\n toTwos(value) {\n return toBigNumber(toBN(this).toTwos(value));\n }\n abs() {\n if (this._hex[0] === \"-\") {\n return BigNumber.from(this._hex.substring(1));\n }\n return this;\n }\n add(other) {\n return toBigNumber(toBN(this).add(toBN(other)));\n }\n sub(other) {\n return toBigNumber(toBN(this).sub(toBN(other)));\n }\n div(other) {\n const o = BigNumber.from(other);\n if (o.isZero()) {\n throwFault(\"division-by-zero\", \"div\");\n }\n return toBigNumber(toBN(this).div(toBN(other)));\n }\n mul(other) {\n return toBigNumber(toBN(this).mul(toBN(other)));\n }\n mod(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"division-by-zero\", \"mod\");\n }\n return toBigNumber(toBN(this).umod(value));\n }\n pow(other) {\n const value = toBN(other);\n if (value.isNeg()) {\n throwFault(\"negative-power\", \"pow\");\n }\n return toBigNumber(toBN(this).pow(value));\n }\n and(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"and\");\n }\n return toBigNumber(toBN(this).and(value));\n }\n or(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"or\");\n }\n return toBigNumber(toBN(this).or(value));\n }\n xor(other) {\n const value = toBN(other);\n if (this.isNegative() || value.isNeg()) {\n throwFault(\"unbound-bitwise-result\", \"xor\");\n }\n return toBigNumber(toBN(this).xor(value));\n }\n mask(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"mask\");\n }\n return toBigNumber(toBN(this).maskn(value));\n }\n shl(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shl\");\n }\n return toBigNumber(toBN(this).shln(value));\n }\n shr(value) {\n if (this.isNegative() || value < 0) {\n throwFault(\"negative-width\", \"shr\");\n }\n return toBigNumber(toBN(this).shrn(value));\n }\n eq(other) {\n return toBN(this).eq(toBN(other));\n }\n lt(other) {\n return toBN(this).lt(toBN(other));\n }\n lte(other) {\n return toBN(this).lte(toBN(other));\n }\n gt(other) {\n return toBN(this).gt(toBN(other));\n }\n gte(other) {\n return toBN(this).gte(toBN(other));\n }\n isNegative() {\n return (this._hex[0] === \"-\");\n }\n isZero() {\n return toBN(this).isZero();\n }\n toNumber() {\n try {\n return toBN(this).toNumber();\n }\n catch (error) {\n throwFault(\"overflow\", \"toNumber\", this.toString());\n }\n return null;\n }\n toBigInt() {\n try {\n return BigInt(this.toString());\n }\n catch (e) { }\n return logger.throwError(\"this platform does not support BigInt\", Logger.errors.UNSUPPORTED_OPERATION, {\n value: this.toString()\n });\n }\n toString() {\n // Lots of people expect this, which we do not support, so check (See: #889)\n if (arguments.length > 0) {\n if (arguments[0] === 10) {\n if (!_warnedToStringRadix) {\n _warnedToStringRadix = true;\n logger.warn(\"BigNumber.toString does not accept any parameters; base-10 is assumed\");\n }\n }\n else if (arguments[0] === 16) {\n logger.throwError(\"BigNumber.toString does not accept any parameters; use bigNumber.toHexString()\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n else {\n logger.throwError(\"BigNumber.toString does not accept parameters\", Logger.errors.UNEXPECTED_ARGUMENT, {});\n }\n }\n return toBN(this).toString(10);\n }\n toHexString() {\n return this._hex;\n }\n toJSON(key) {\n return { type: \"BigNumber\", hex: this.toHexString() };\n }\n static from(value) {\n if (value instanceof BigNumber) {\n return value;\n }\n if (typeof (value) === \"string\") {\n if (value.match(/^-?0x[0-9a-f]+$/i)) {\n return new BigNumber(_constructorGuard, toHex(value));\n }\n if (value.match(/^-?[0-9]+$/)) {\n return new BigNumber(_constructorGuard, toHex(new BN(value)));\n }\n return logger.throwArgumentError(\"invalid BigNumber string\", \"value\", value);\n }\n if (typeof (value) === \"number\") {\n if (value % 1) {\n throwFault(\"underflow\", \"BigNumber.from\", value);\n }\n if (value >= MAX_SAFE || value <= -MAX_SAFE) {\n throwFault(\"overflow\", \"BigNumber.from\", value);\n }\n return BigNumber.from(String(value));\n }\n const anyValue = value;\n if (typeof (anyValue) === \"bigint\") {\n return BigNumber.from(anyValue.toString());\n }\n if (isBytes(anyValue)) {\n return BigNumber.from(hexlify(anyValue));\n }\n if (anyValue) {\n // Hexable interface (takes priority)\n if (anyValue.toHexString) {\n const hex = anyValue.toHexString();\n if (typeof (hex) === \"string\") {\n return BigNumber.from(hex);\n }\n }\n else {\n // For now, handle legacy JSON-ified values (goes away in v6)\n let hex = anyValue._hex;\n // New-form JSON\n if (hex == null && anyValue.type === \"BigNumber\") {\n hex = anyValue.hex;\n }\n if (typeof (hex) === \"string\") {\n if (isHexString(hex) || (hex[0] === \"-\" && isHexString(hex.substring(1)))) {\n return BigNumber.from(hex);\n }\n }\n }\n }\n return logger.throwArgumentError(\"invalid BigNumber value\", \"value\", value);\n }\n static isBigNumber(value) {\n return !!(value && value._isBigNumber);\n }\n}\n// Normalize the hex string\nfunction toHex(value) {\n // For BN, call on the hex string\n if (typeof (value) !== \"string\") {\n return toHex(value.toString(16));\n }\n // If negative, prepend the negative sign to the normalized positive value\n if (value[0] === \"-\") {\n // Strip off the negative sign\n value = value.substring(1);\n // Cannot have multiple negative signs (e.g. \"--0x04\")\n if (value[0] === \"-\") {\n logger.throwArgumentError(\"invalid hex\", \"value\", value);\n }\n // Call toHex on the positive component\n value = toHex(value);\n // Do not allow \"-0x00\"\n if (value === \"0x00\") {\n return value;\n }\n // Negate the value\n return \"-\" + value;\n }\n // Add a \"0x\" prefix if missing\n if (value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n // Normalize zero\n if (value === \"0x\") {\n return \"0x00\";\n }\n // Make the string even length\n if (value.length % 2) {\n value = \"0x0\" + value.substring(2);\n }\n // Trim to smallest even-length string\n while (value.length > 4 && value.substring(0, 4) === \"0x00\") {\n value = \"0x\" + value.substring(4);\n }\n return value;\n}\nfunction toBigNumber(value) {\n return BigNumber.from(toHex(value));\n}\nfunction toBN(value) {\n const hex = BigNumber.from(value).toHexString();\n if (hex[0] === \"-\") {\n return (new BN(\"-\" + hex.substring(3), 16));\n }\n return new BN(hex.substring(2), 16);\n}\nfunction throwFault(fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value != null) {\n params.value = value;\n }\n return logger.throwError(fault, Logger.errors.NUMERIC_FAULT, params);\n}\n// value should have no prefix\nexport function _base36To16(value) {\n return (new BN(value, 36)).toString(16);\n}\n// value should have no prefix\nexport function _base16To36(value) {\n return (new BN(value, 16)).toString(36);\n}\n//# sourceMappingURL=bignumber.js.map","\"use strict\";\nimport { arrayify, hexZeroPad, isBytes } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BigNumber, isBigNumberish } from \"./bignumber\";\nconst _constructorGuard = {};\nconst Zero = BigNumber.from(0);\nconst NegativeOne = BigNumber.from(-1);\nfunction throwFault(message, fault, operation, value) {\n const params = { fault: fault, operation: operation };\n if (value !== undefined) {\n params.value = value;\n }\n return logger.throwError(message, Logger.errors.NUMERIC_FAULT, params);\n}\n// Constant to pull zeros from for multipliers\nlet zeros = \"0\";\nwhile (zeros.length < 256) {\n zeros += zeros;\n}\n// Returns a string \"1\" followed by decimal \"0\"s\nfunction getMultiplier(decimals) {\n if (typeof (decimals) !== \"number\") {\n try {\n decimals = BigNumber.from(decimals).toNumber();\n }\n catch (e) { }\n }\n if (typeof (decimals) === \"number\" && decimals >= 0 && decimals <= 256 && !(decimals % 1)) {\n return (\"1\" + zeros.substring(0, decimals));\n }\n return logger.throwArgumentError(\"invalid decimal size\", \"decimals\", decimals);\n}\nexport function formatFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n // Make sure wei is a big number (convert as necessary)\n value = BigNumber.from(value);\n const negative = value.lt(Zero);\n if (negative) {\n value = value.mul(NegativeOne);\n }\n let fraction = value.mod(multiplier).toString();\n while (fraction.length < multiplier.length - 1) {\n fraction = \"0\" + fraction;\n }\n // Strip training 0\n fraction = fraction.match(/^([0-9]*[1-9]|0)(0*)/)[1];\n const whole = value.div(multiplier).toString();\n if (multiplier.length === 1) {\n value = whole;\n }\n else {\n value = whole + \".\" + fraction;\n }\n if (negative) {\n value = \"-\" + value;\n }\n return value;\n}\nexport function parseFixed(value, decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n const multiplier = getMultiplier(decimals);\n if (typeof (value) !== \"string\" || !value.match(/^-?[0-9.]+$/)) {\n logger.throwArgumentError(\"invalid decimal value\", \"value\", value);\n }\n // Is it negative?\n const negative = (value.substring(0, 1) === \"-\");\n if (negative) {\n value = value.substring(1);\n }\n if (value === \".\") {\n logger.throwArgumentError(\"missing value\", \"value\", value);\n }\n // Split it into a whole and fractional part\n const comps = value.split(\".\");\n if (comps.length > 2) {\n logger.throwArgumentError(\"too many decimal points\", \"value\", value);\n }\n let whole = comps[0], fraction = comps[1];\n if (!whole) {\n whole = \"0\";\n }\n if (!fraction) {\n fraction = \"0\";\n }\n // Trim trailing zeros\n while (fraction[fraction.length - 1] === \"0\") {\n fraction = fraction.substring(0, fraction.length - 1);\n }\n // Check the fraction doesn't exceed our decimals size\n if (fraction.length > multiplier.length - 1) {\n throwFault(\"fractional component exceeds decimals\", \"underflow\", \"parseFixed\");\n }\n // If decimals is 0, we have an empty string for fraction\n if (fraction === \"\") {\n fraction = \"0\";\n }\n // Fully pad the string with zeros to get to wei\n while (fraction.length < multiplier.length - 1) {\n fraction += \"0\";\n }\n const wholeValue = BigNumber.from(whole);\n const fractionValue = BigNumber.from(fraction);\n let wei = (wholeValue.mul(multiplier)).add(fractionValue);\n if (negative) {\n wei = wei.mul(NegativeOne);\n }\n return wei;\n}\nexport class FixedFormat {\n constructor(constructorGuard, signed, width, decimals) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedFormat constructor; use FixedFormat.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.signed = signed;\n this.width = width;\n this.decimals = decimals;\n this.name = (signed ? \"\" : \"u\") + \"fixed\" + String(width) + \"x\" + String(decimals);\n this._multiplier = getMultiplier(decimals);\n Object.freeze(this);\n }\n static from(value) {\n if (value instanceof FixedFormat) {\n return value;\n }\n if (typeof (value) === \"number\") {\n value = `fixed128x${value}`;\n }\n let signed = true;\n let width = 128;\n let decimals = 18;\n if (typeof (value) === \"string\") {\n if (value === \"fixed\") {\n // defaults...\n }\n else if (value === \"ufixed\") {\n signed = false;\n }\n else {\n const match = value.match(/^(u?)fixed([0-9]+)x([0-9]+)$/);\n if (!match) {\n logger.throwArgumentError(\"invalid fixed format\", \"format\", value);\n }\n signed = (match[1] !== \"u\");\n width = parseInt(match[2]);\n decimals = parseInt(match[3]);\n }\n }\n else if (value) {\n const check = (key, type, defaultValue) => {\n if (value[key] == null) {\n return defaultValue;\n }\n if (typeof (value[key]) !== type) {\n logger.throwArgumentError(\"invalid fixed format (\" + key + \" not \" + type + \")\", \"format.\" + key, value[key]);\n }\n return value[key];\n };\n signed = check(\"signed\", \"boolean\", signed);\n width = check(\"width\", \"number\", width);\n decimals = check(\"decimals\", \"number\", decimals);\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid fixed format width (not byte aligned)\", \"format.width\", width);\n }\n if (decimals > 80) {\n logger.throwArgumentError(\"invalid fixed format (decimals too large)\", \"format.decimals\", decimals);\n }\n return new FixedFormat(_constructorGuard, signed, width, decimals);\n }\n}\nexport class FixedNumber {\n constructor(constructorGuard, hex, value, format) {\n if (constructorGuard !== _constructorGuard) {\n logger.throwError(\"cannot use FixedNumber constructor; use FixedNumber.from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new FixedFormat\"\n });\n }\n this.format = format;\n this._hex = hex;\n this._value = value;\n this._isFixedNumber = true;\n Object.freeze(this);\n }\n _checkFormat(other) {\n if (this.format.name !== other.format.name) {\n logger.throwArgumentError(\"incompatible format; use fixedNumber.toFormat\", \"other\", other);\n }\n }\n addUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.add(b), this.format.decimals, this.format);\n }\n subUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.sub(b), this.format.decimals, this.format);\n }\n mulUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(b).div(this.format._multiplier), this.format.decimals, this.format);\n }\n divUnsafe(other) {\n this._checkFormat(other);\n const a = parseFixed(this._value, this.format.decimals);\n const b = parseFixed(other._value, other.format.decimals);\n return FixedNumber.fromValue(a.mul(this.format._multiplier).div(b), this.format.decimals, this.format);\n }\n floor() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (this.isNegative() && hasFraction) {\n result = result.subUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n ceiling() {\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n let result = FixedNumber.from(comps[0], this.format);\n const hasFraction = !comps[1].match(/^(0*)$/);\n if (!this.isNegative() && hasFraction) {\n result = result.addUnsafe(ONE.toFormat(result.format));\n }\n return result;\n }\n // @TODO: Support other rounding algorithms\n round(decimals) {\n if (decimals == null) {\n decimals = 0;\n }\n // If we are already in range, we're done\n const comps = this.toString().split(\".\");\n if (comps.length === 1) {\n comps.push(\"0\");\n }\n if (decimals < 0 || decimals > 80 || (decimals % 1)) {\n logger.throwArgumentError(\"invalid decimal count\", \"decimals\", decimals);\n }\n if (comps[1].length <= decimals) {\n return this;\n }\n const factor = FixedNumber.from(\"1\" + zeros.substring(0, decimals), this.format);\n const bump = BUMP.toFormat(this.format);\n return this.mulUnsafe(factor).addUnsafe(bump).floor().divUnsafe(factor);\n }\n isZero() {\n return (this._value === \"0.0\" || this._value === \"0\");\n }\n isNegative() {\n return (this._value[0] === \"-\");\n }\n toString() { return this._value; }\n toHexString(width) {\n if (width == null) {\n return this._hex;\n }\n if (width % 8) {\n logger.throwArgumentError(\"invalid byte width\", \"width\", width);\n }\n const hex = BigNumber.from(this._hex).fromTwos(this.format.width).toTwos(width).toHexString();\n return hexZeroPad(hex, width / 8);\n }\n toUnsafeFloat() { return parseFloat(this.toString()); }\n toFormat(format) {\n return FixedNumber.fromString(this._value, format);\n }\n static fromValue(value, decimals, format) {\n // If decimals looks more like a format, and there is no format, shift the parameters\n if (format == null && decimals != null && !isBigNumberish(decimals)) {\n format = decimals;\n decimals = null;\n }\n if (decimals == null) {\n decimals = 0;\n }\n if (format == null) {\n format = \"fixed\";\n }\n return FixedNumber.fromString(formatFixed(value, decimals), FixedFormat.from(format));\n }\n static fromString(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n const numeric = parseFixed(value, fixedFormat.decimals);\n if (!fixedFormat.signed && numeric.lt(Zero)) {\n throwFault(\"unsigned value cannot be negative\", \"overflow\", \"value\", value);\n }\n let hex = null;\n if (fixedFormat.signed) {\n hex = numeric.toTwos(fixedFormat.width).toHexString();\n }\n else {\n hex = numeric.toHexString();\n hex = hexZeroPad(hex, fixedFormat.width / 8);\n }\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static fromBytes(value, format) {\n if (format == null) {\n format = \"fixed\";\n }\n const fixedFormat = FixedFormat.from(format);\n if (arrayify(value).length > fixedFormat.width / 8) {\n throw new Error(\"overflow\");\n }\n let numeric = BigNumber.from(value);\n if (fixedFormat.signed) {\n numeric = numeric.fromTwos(fixedFormat.width);\n }\n const hex = numeric.toTwos((fixedFormat.signed ? 0 : 1) + fixedFormat.width).toHexString();\n const decimal = formatFixed(numeric, fixedFormat.decimals);\n return new FixedNumber(_constructorGuard, hex, decimal, fixedFormat);\n }\n static from(value, format) {\n if (typeof (value) === \"string\") {\n return FixedNumber.fromString(value, format);\n }\n if (isBytes(value)) {\n return FixedNumber.fromBytes(value, format);\n }\n try {\n return FixedNumber.fromValue(value, 0, format);\n }\n catch (error) {\n // Allow NUMERIC_FAULT to bubble up\n if (error.code !== Logger.errors.INVALID_ARGUMENT) {\n throw error;\n }\n }\n return logger.throwArgumentError(\"invalid FixedNumber value\", \"value\", value);\n }\n static isFixedNumber(value) {\n return !!(value && value._isFixedNumber);\n }\n}\nconst ONE = FixedNumber.from(1);\nconst BUMP = FixedNumber.from(\"0.5\");\n//# sourceMappingURL=fixednumber.js.map","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","export const version = \"bytes/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nfunction isHexable(value) {\n return !!(value.toHexString);\n}\nfunction addSlice(array) {\n if (array.slice) {\n return array;\n }\n array.slice = function () {\n const args = Array.prototype.slice.call(arguments);\n return addSlice(new Uint8Array(Array.prototype.slice.apply(array, args)));\n };\n return array;\n}\nexport function isBytesLike(value) {\n return ((isHexString(value) && !(value.length % 2)) || isBytes(value));\n}\nfunction isInteger(value) {\n return (typeof (value) === \"number\" && value == value && (value % 1) === 0);\n}\nexport function isBytes(value) {\n if (value == null) {\n return false;\n }\n if (value.constructor === Uint8Array) {\n return true;\n }\n if (typeof (value) === \"string\") {\n return false;\n }\n if (!isInteger(value.length) || value.length < 0) {\n return false;\n }\n for (let i = 0; i < value.length; i++) {\n const v = value[i];\n if (!isInteger(v) || v < 0 || v >= 256) {\n return false;\n }\n }\n return true;\n}\nexport function arrayify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid arrayify value\");\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value = parseInt(String(value / 256));\n }\n if (result.length === 0) {\n result.push(0);\n }\n return addSlice(new Uint8Array(result));\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n value = value.toHexString();\n }\n if (isHexString(value)) {\n let hex = value.substring(2);\n if (hex.length % 2) {\n if (options.hexPad === \"left\") {\n hex = \"0\" + hex;\n }\n else if (options.hexPad === \"right\") {\n hex += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n const result = [];\n for (let i = 0; i < hex.length; i += 2) {\n result.push(parseInt(hex.substring(i, i + 2), 16));\n }\n return addSlice(new Uint8Array(result));\n }\n if (isBytes(value)) {\n return addSlice(new Uint8Array(value));\n }\n return logger.throwArgumentError(\"invalid arrayify value\", \"value\", value);\n}\nexport function concat(items) {\n const objects = items.map(item => arrayify(item));\n const length = objects.reduce((accum, item) => (accum + item.length), 0);\n const result = new Uint8Array(length);\n objects.reduce((offset, object) => {\n result.set(object, offset);\n return offset + object.length;\n }, 0);\n return addSlice(result);\n}\nexport function stripZeros(value) {\n let result = arrayify(value);\n if (result.length === 0) {\n return result;\n }\n // Find the first non-zero entry\n let start = 0;\n while (start < result.length && result[start] === 0) {\n start++;\n }\n // If we started with zeros, strip them\n if (start) {\n result = result.slice(start);\n }\n return result;\n}\nexport function zeroPad(value, length) {\n value = arrayify(value);\n if (value.length > length) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[0]);\n }\n const result = new Uint8Array(length);\n result.set(value, length - value.length);\n return addSlice(result);\n}\nexport function isHexString(value, length) {\n if (typeof (value) !== \"string\" || !value.match(/^0x[0-9A-Fa-f]*$/)) {\n return false;\n }\n if (length && value.length !== 2 + 2 * length) {\n return false;\n }\n return true;\n}\nconst HexCharacters = \"0123456789abcdef\";\nexport function hexlify(value, options) {\n if (!options) {\n options = {};\n }\n if (typeof (value) === \"number\") {\n logger.checkSafeUint53(value, \"invalid hexlify value\");\n let hex = \"\";\n while (value) {\n hex = HexCharacters[value & 0xf] + hex;\n value = Math.floor(value / 16);\n }\n if (hex.length) {\n if (hex.length % 2) {\n hex = \"0\" + hex;\n }\n return \"0x\" + hex;\n }\n return \"0x00\";\n }\n if (typeof (value) === \"bigint\") {\n value = value.toString(16);\n if (value.length % 2) {\n return (\"0x0\" + value);\n }\n return \"0x\" + value;\n }\n if (options.allowMissingPrefix && typeof (value) === \"string\" && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexable(value)) {\n return value.toHexString();\n }\n if (isHexString(value)) {\n if (value.length % 2) {\n if (options.hexPad === \"left\") {\n value = \"0x0\" + value.substring(2);\n }\n else if (options.hexPad === \"right\") {\n value += \"0\";\n }\n else {\n logger.throwArgumentError(\"hex data is odd-length\", \"value\", value);\n }\n }\n return value.toLowerCase();\n }\n if (isBytes(value)) {\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n let v = value[i];\n result += HexCharacters[(v & 0xf0) >> 4] + HexCharacters[v & 0x0f];\n }\n return result;\n }\n return logger.throwArgumentError(\"invalid hexlify value\", \"value\", value);\n}\n/*\nfunction unoddify(value: BytesLike | Hexable | number): BytesLike | Hexable | number {\n if (typeof(value) === \"string\" && value.length % 2 && value.substring(0, 2) === \"0x\") {\n return \"0x0\" + value.substring(2);\n }\n return value;\n}\n*/\nexport function hexDataLength(data) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n return null;\n }\n return (data.length - 2) / 2;\n}\nexport function hexDataSlice(data, offset, endOffset) {\n if (typeof (data) !== \"string\") {\n data = hexlify(data);\n }\n else if (!isHexString(data) || (data.length % 2)) {\n logger.throwArgumentError(\"invalid hexData\", \"value\", data);\n }\n offset = 2 + 2 * offset;\n if (endOffset != null) {\n return \"0x\" + data.substring(offset, 2 + 2 * endOffset);\n }\n return \"0x\" + data.substring(offset);\n}\nexport function hexConcat(items) {\n let result = \"0x\";\n items.forEach((item) => {\n result += hexlify(item).substring(2);\n });\n return result;\n}\nexport function hexValue(value) {\n const trimmed = hexStripZeros(hexlify(value, { hexPad: \"left\" }));\n if (trimmed === \"0x\") {\n return \"0x0\";\n }\n return trimmed;\n}\nexport function hexStripZeros(value) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n value = value.substring(2);\n let offset = 0;\n while (offset < value.length && value[offset] === \"0\") {\n offset++;\n }\n return \"0x\" + value.substring(offset);\n}\nexport function hexZeroPad(value, length) {\n if (typeof (value) !== \"string\") {\n value = hexlify(value);\n }\n else if (!isHexString(value)) {\n logger.throwArgumentError(\"invalid hex string\", \"value\", value);\n }\n if (value.length > 2 * length + 2) {\n logger.throwArgumentError(\"value out of range\", \"value\", arguments[1]);\n }\n while (value.length < 2 * length + 2) {\n value = \"0x0\" + value.substring(2);\n }\n return value;\n}\nexport function splitSignature(signature) {\n const result = {\n r: \"0x\",\n s: \"0x\",\n _vs: \"0x\",\n recoveryParam: 0,\n v: 0,\n yParityAndS: \"0x\",\n compact: \"0x\"\n };\n if (isBytesLike(signature)) {\n let bytes = arrayify(signature);\n // Get the r, s and v\n if (bytes.length === 64) {\n // EIP-2098; pull the v from the top bit of s and clear it\n result.v = 27 + (bytes[32] >> 7);\n bytes[32] &= 0x7f;\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n }\n else if (bytes.length === 65) {\n result.r = hexlify(bytes.slice(0, 32));\n result.s = hexlify(bytes.slice(32, 64));\n result.v = bytes[64];\n }\n else {\n logger.throwArgumentError(\"invalid signature string\", \"signature\", signature);\n }\n // Allow a recid to be used as the v\n if (result.v < 27) {\n if (result.v === 0 || result.v === 1) {\n result.v += 27;\n }\n else {\n logger.throwArgumentError(\"signature invalid v byte\", \"signature\", signature);\n }\n }\n // Compute recoveryParam from v\n result.recoveryParam = 1 - (result.v % 2);\n // Compute _vs from recoveryParam and s\n if (result.recoveryParam) {\n bytes[32] |= 0x80;\n }\n result._vs = hexlify(bytes.slice(32, 64));\n }\n else {\n result.r = signature.r;\n result.s = signature.s;\n result.v = signature.v;\n result.recoveryParam = signature.recoveryParam;\n result._vs = signature._vs;\n // If the _vs is available, use it to populate missing s, v and recoveryParam\n // and verify non-missing s, v and recoveryParam\n if (result._vs != null) {\n const vs = zeroPad(arrayify(result._vs), 32);\n result._vs = hexlify(vs);\n // Set or check the recid\n const recoveryParam = ((vs[0] >= 128) ? 1 : 0);\n if (result.recoveryParam == null) {\n result.recoveryParam = recoveryParam;\n }\n else if (result.recoveryParam !== recoveryParam) {\n logger.throwArgumentError(\"signature recoveryParam mismatch _vs\", \"signature\", signature);\n }\n // Set or check the s\n vs[0] &= 0x7f;\n const s = hexlify(vs);\n if (result.s == null) {\n result.s = s;\n }\n else if (result.s !== s) {\n logger.throwArgumentError(\"signature v mismatch _vs\", \"signature\", signature);\n }\n }\n // Use recid and v to populate each other\n if (result.recoveryParam == null) {\n if (result.v == null) {\n logger.throwArgumentError(\"signature missing v and recoveryParam\", \"signature\", signature);\n }\n else if (result.v === 0 || result.v === 1) {\n result.recoveryParam = result.v;\n }\n else {\n result.recoveryParam = 1 - (result.v % 2);\n }\n }\n else {\n if (result.v == null) {\n result.v = 27 + result.recoveryParam;\n }\n else {\n const recId = (result.v === 0 || result.v === 1) ? result.v : (1 - (result.v % 2));\n if (result.recoveryParam !== recId) {\n logger.throwArgumentError(\"signature recoveryParam mismatch v\", \"signature\", signature);\n }\n }\n }\n if (result.r == null || !isHexString(result.r)) {\n logger.throwArgumentError(\"signature missing or invalid r\", \"signature\", signature);\n }\n else {\n result.r = hexZeroPad(result.r, 32);\n }\n if (result.s == null || !isHexString(result.s)) {\n logger.throwArgumentError(\"signature missing or invalid s\", \"signature\", signature);\n }\n else {\n result.s = hexZeroPad(result.s, 32);\n }\n const vs = arrayify(result.s);\n if (vs[0] >= 128) {\n logger.throwArgumentError(\"signature s out of range\", \"signature\", signature);\n }\n if (result.recoveryParam) {\n vs[0] |= 0x80;\n }\n const _vs = hexlify(vs);\n if (result._vs) {\n if (!isHexString(result._vs)) {\n logger.throwArgumentError(\"signature invalid _vs\", \"signature\", signature);\n }\n result._vs = hexZeroPad(result._vs, 32);\n }\n // Set or check the _vs\n if (result._vs == null) {\n result._vs = _vs;\n }\n else if (result._vs !== _vs) {\n logger.throwArgumentError(\"signature _vs mismatch v and s\", \"signature\", signature);\n }\n }\n result.yParityAndS = result._vs;\n result.compact = result.r + result.yParityAndS.substring(2);\n return result;\n}\nexport function joinSignature(signature) {\n signature = splitSignature(signature);\n return hexlify(concat([\n signature.r,\n signature.s,\n (signature.recoveryParam ? \"0x1c\" : \"0x1b\")\n ]));\n}\n//# sourceMappingURL=index.js.map","export const AddressZero = \"0x0000000000000000000000000000000000000000\";\n//# sourceMappingURL=addresses.js.map","import { BigNumber } from \"@ethersproject/bignumber\";\nconst NegativeOne = ( /*#__PURE__*/BigNumber.from(-1));\nconst Zero = ( /*#__PURE__*/BigNumber.from(0));\nconst One = ( /*#__PURE__*/BigNumber.from(1));\nconst Two = ( /*#__PURE__*/BigNumber.from(2));\nconst WeiPerEther = ( /*#__PURE__*/BigNumber.from(\"1000000000000000000\"));\nconst MaxUint256 = ( /*#__PURE__*/BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nconst MinInt256 = ( /*#__PURE__*/BigNumber.from(\"-0x8000000000000000000000000000000000000000000000000000000000000000\"));\nconst MaxInt256 = ( /*#__PURE__*/BigNumber.from(\"0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\"));\nexport { NegativeOne, Zero, One, Two, WeiPerEther, MaxUint256, MinInt256, MaxInt256, };\n//# sourceMappingURL=bignumbers.js.map","export const HashZero = \"0x0000000000000000000000000000000000000000000000000000000000000000\";\n//# sourceMappingURL=hashes.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { checkResultErrors, Indexed, Interface } from \"@ethersproject/abi\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { Signer, VoidSigner } from \"@ethersproject/abstract-signer\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, isBytes, isHexString } from \"@ethersproject/bytes\";\nimport { defineReadOnly, deepCopy, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\n;\n///////////////////////////////\nconst allowedTransactionKeys = {\n chainId: true, data: true, from: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true,\n customData: true,\n ccipReadEnabled: true\n};\nfunction resolveName(resolver, nameOrPromise) {\n return __awaiter(this, void 0, void 0, function* () {\n const name = yield nameOrPromise;\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", name);\n }\n // If it is already an address, just use it (after adding checksum)\n try {\n return getAddress(name);\n }\n catch (error) { }\n if (!resolver) {\n logger.throwError(\"a provider or signer is needed to resolve ENS names\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resolveName\"\n });\n }\n const address = yield resolver.resolveName(name);\n if (address == null) {\n logger.throwArgumentError(\"resolver or addr is not configured for ENS name\", \"name\", name);\n }\n return address;\n });\n}\n// Recursively replaces ENS names with promises to resolve the name and resolves all properties\nfunction resolveAddresses(resolver, value, paramType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (Array.isArray(paramType)) {\n return yield Promise.all(paramType.map((paramType, index) => {\n return resolveAddresses(resolver, ((Array.isArray(value)) ? value[index] : value[paramType.name]), paramType);\n }));\n }\n if (paramType.type === \"address\") {\n return yield resolveName(resolver, value);\n }\n if (paramType.type === \"tuple\") {\n return yield resolveAddresses(resolver, value, paramType.components);\n }\n if (paramType.baseType === \"array\") {\n if (!Array.isArray(value)) {\n return Promise.reject(logger.makeError(\"invalid value for array\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"value\",\n value\n }));\n }\n return yield Promise.all(value.map((v) => resolveAddresses(resolver, v, paramType.arrayChildren)));\n }\n return value;\n });\n}\nfunction populateTransaction(contract, fragment, args) {\n return __awaiter(this, void 0, void 0, function* () {\n // If an extra argument is given, it is overrides\n let overrides = {};\n if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n overrides = shallowCopy(args.pop());\n }\n // Make sure the parameter count matches\n logger.checkArgumentCount(args.length, fragment.inputs.length, \"passed to contract\");\n // Populate \"from\" override (allow promises)\n if (contract.signer) {\n if (overrides.from) {\n // Contracts with a Signer are from the Signer's frame-of-reference;\n // but we allow overriding \"from\" if it matches the signer\n overrides.from = resolveProperties({\n override: resolveName(contract.signer, overrides.from),\n signer: contract.signer.getAddress()\n }).then((check) => __awaiter(this, void 0, void 0, function* () {\n if (getAddress(check.signer) !== check.override) {\n logger.throwError(\"Contract with a Signer cannot override from\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.from\"\n });\n }\n return check.override;\n }));\n }\n else {\n overrides.from = contract.signer.getAddress();\n }\n }\n else if (overrides.from) {\n overrides.from = resolveName(contract.provider, overrides.from);\n //} else {\n // Contracts without a signer can override \"from\", and if\n // unspecified the zero address is used\n //overrides.from = AddressZero;\n }\n // Wait for all dependencies to be resolved (prefer the signer over the provider)\n const resolved = yield resolveProperties({\n args: resolveAddresses(contract.signer || contract.provider, args, fragment.inputs),\n address: contract.resolvedAddress,\n overrides: (resolveProperties(overrides) || {})\n });\n // The ABI coded transaction\n const data = contract.interface.encodeFunctionData(fragment, resolved.args);\n const tx = {\n data: data,\n to: resolved.address\n };\n // Resolved Overrides\n const ro = resolved.overrides;\n // Populate simple overrides\n if (ro.nonce != null) {\n tx.nonce = BigNumber.from(ro.nonce).toNumber();\n }\n if (ro.gasLimit != null) {\n tx.gasLimit = BigNumber.from(ro.gasLimit);\n }\n if (ro.gasPrice != null) {\n tx.gasPrice = BigNumber.from(ro.gasPrice);\n }\n if (ro.maxFeePerGas != null) {\n tx.maxFeePerGas = BigNumber.from(ro.maxFeePerGas);\n }\n if (ro.maxPriorityFeePerGas != null) {\n tx.maxPriorityFeePerGas = BigNumber.from(ro.maxPriorityFeePerGas);\n }\n if (ro.from != null) {\n tx.from = ro.from;\n }\n if (ro.type != null) {\n tx.type = ro.type;\n }\n if (ro.accessList != null) {\n tx.accessList = accessListify(ro.accessList);\n }\n // If there was no \"gasLimit\" override, but the ABI specifies a default, use it\n if (tx.gasLimit == null && fragment.gas != null) {\n // Compute the intrinsic gas cost for this transaction\n // @TODO: This is based on the yellow paper as of Petersburg; this is something\n // we may wish to parameterize in v6 as part of the Network object. Since this\n // is always a non-nil to address, we can ignore G_create, but may wish to add\n // similar logic to the ContractFactory.\n let intrinsic = 21000;\n const bytes = arrayify(data);\n for (let i = 0; i < bytes.length; i++) {\n intrinsic += 4;\n if (bytes[i]) {\n intrinsic += 64;\n }\n }\n tx.gasLimit = BigNumber.from(fragment.gas).add(intrinsic);\n }\n // Populate \"value\" override\n if (ro.value) {\n const roValue = BigNumber.from(ro.value);\n if (!roValue.isZero() && !fragment.payable) {\n logger.throwError(\"non-payable method cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: overrides.value\n });\n }\n tx.value = roValue;\n }\n if (ro.customData) {\n tx.customData = shallowCopy(ro.customData);\n }\n if (ro.ccipReadEnabled) {\n tx.ccipReadEnabled = !!ro.ccipReadEnabled;\n }\n // Remove the overrides\n delete overrides.nonce;\n delete overrides.gasLimit;\n delete overrides.gasPrice;\n delete overrides.from;\n delete overrides.value;\n delete overrides.type;\n delete overrides.accessList;\n delete overrides.maxFeePerGas;\n delete overrides.maxPriorityFeePerGas;\n delete overrides.customData;\n delete overrides.ccipReadEnabled;\n // Make sure there are no stray overrides, which may indicate a\n // typo or using an unsupported key.\n const leftovers = Object.keys(overrides).filter((key) => (overrides[key] != null));\n if (leftovers.length) {\n logger.throwError(`cannot override ${leftovers.map((l) => JSON.stringify(l)).join(\",\")}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides\",\n overrides: leftovers\n });\n }\n return tx;\n });\n}\nfunction buildPopulate(contract, fragment) {\n return function (...args) {\n return populateTransaction(contract, fragment, args);\n };\n}\nfunction buildEstimate(contract, fragment) {\n const signerOrProvider = (contract.signer || contract.provider);\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!signerOrProvider) {\n logger.throwError(\"estimate require a provider or signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"estimateGas\"\n });\n }\n const tx = yield populateTransaction(contract, fragment, args);\n return yield signerOrProvider.estimateGas(tx);\n });\n };\n}\nfunction addContractWait(contract, tx) {\n const wait = tx.wait.bind(tx);\n tx.wait = (confirmations) => {\n return wait(confirmations).then((receipt) => {\n receipt.events = receipt.logs.map((log) => {\n let event = deepCopy(log);\n let parsed = null;\n try {\n parsed = contract.interface.parseLog(log);\n }\n catch (e) { }\n // Successfully parsed the event log; include it\n if (parsed) {\n event.args = parsed.args;\n event.decode = (data, topics) => {\n return contract.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n }\n // Useful operations\n event.removeListener = () => { return contract.provider; };\n event.getBlock = () => {\n return contract.provider.getBlock(receipt.blockHash);\n };\n event.getTransaction = () => {\n return contract.provider.getTransaction(receipt.transactionHash);\n };\n event.getTransactionReceipt = () => {\n return Promise.resolve(receipt);\n };\n return event;\n });\n return receipt;\n });\n };\n}\nfunction buildCall(contract, fragment, collapseSimple) {\n const signerOrProvider = (contract.signer || contract.provider);\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n // Extract the \"blockTag\" override if present\n let blockTag = undefined;\n if (args.length === fragment.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n const overrides = shallowCopy(args.pop());\n if (overrides.blockTag != null) {\n blockTag = yield overrides.blockTag;\n }\n delete overrides.blockTag;\n args.push(overrides);\n }\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n yield contract._deployed(blockTag);\n }\n // Call a node and get the result\n const tx = yield populateTransaction(contract, fragment, args);\n const result = yield signerOrProvider.call(tx, blockTag);\n try {\n let value = contract.interface.decodeFunctionResult(fragment, result);\n if (collapseSimple && fragment.outputs.length === 1) {\n value = value[0];\n }\n return value;\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n error.address = contract.address;\n error.args = args;\n error.transaction = tx;\n }\n throw error;\n }\n });\n };\n}\nfunction buildSend(contract, fragment) {\n return function (...args) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!contract.signer) {\n logger.throwError(\"sending a transaction requires a signer\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"sendTransaction\"\n });\n }\n // If the contract was just deployed, wait until it is mined\n if (contract.deployTransaction != null) {\n yield contract._deployed();\n }\n const txRequest = yield populateTransaction(contract, fragment, args);\n const tx = yield contract.signer.sendTransaction(txRequest);\n // Tweak the tx.wait so the receipt has extra properties\n addContractWait(contract, tx);\n return tx;\n });\n };\n}\nfunction buildDefault(contract, fragment, collapseSimple) {\n if (fragment.constant) {\n return buildCall(contract, fragment, collapseSimple);\n }\n return buildSend(contract, fragment);\n}\nfunction getEventTag(filter) {\n if (filter.address && (filter.topics == null || filter.topics.length === 0)) {\n return \"*\";\n }\n return (filter.address || \"*\") + \"@\" + (filter.topics ? filter.topics.map((topic) => {\n if (Array.isArray(topic)) {\n return topic.join(\"|\");\n }\n return topic;\n }).join(\":\") : \"\");\n}\nclass RunningEvent {\n constructor(tag, filter) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"filter\", filter);\n this._listeners = [];\n }\n addListener(listener, once) {\n this._listeners.push({ listener: listener, once: once });\n }\n removeListener(listener) {\n let done = false;\n this._listeners = this._listeners.filter((item) => {\n if (done || item.listener !== listener) {\n return true;\n }\n done = true;\n return false;\n });\n }\n removeAllListeners() {\n this._listeners = [];\n }\n listeners() {\n return this._listeners.map((i) => i.listener);\n }\n listenerCount() {\n return this._listeners.length;\n }\n run(args) {\n const listenerCount = this.listenerCount();\n this._listeners = this._listeners.filter((item) => {\n const argsCopy = args.slice();\n // Call the callback in the next event loop\n setTimeout(() => {\n item.listener.apply(this, argsCopy);\n }, 0);\n // Reschedule it if it not \"once\"\n return !(item.once);\n });\n return listenerCount;\n }\n prepareEvent(event) {\n }\n // Returns the array that will be applied to an emit\n getEmit(event) {\n return [event];\n }\n}\nclass ErrorRunningEvent extends RunningEvent {\n constructor() {\n super(\"error\", null);\n }\n}\n// @TODO Fragment should inherit Wildcard? and just override getEmit?\n// or have a common abstract super class, with enough constructor\n// options to configure both.\n// A Fragment Event will populate all the properties that Wildcard\n// will, and additionally dereference the arguments when emitting\nclass FragmentRunningEvent extends RunningEvent {\n constructor(address, contractInterface, fragment, topics) {\n const filter = {\n address: address\n };\n let topic = contractInterface.getEventTopic(fragment);\n if (topics) {\n if (topic !== topics[0]) {\n logger.throwArgumentError(\"topic mismatch\", \"topics\", topics);\n }\n filter.topics = topics.slice();\n }\n else {\n filter.topics = [topic];\n }\n super(getEventTag(filter), filter);\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n defineReadOnly(this, \"fragment\", fragment);\n }\n prepareEvent(event) {\n super.prepareEvent(event);\n event.event = this.fragment.name;\n event.eventSignature = this.fragment.format();\n event.decode = (data, topics) => {\n return this.interface.decodeEventLog(this.fragment, data, topics);\n };\n try {\n event.args = this.interface.decodeEventLog(this.fragment, event.data, event.topics);\n }\n catch (error) {\n event.args = null;\n event.decodeError = error;\n }\n }\n getEmit(event) {\n const errors = checkResultErrors(event.args);\n if (errors.length) {\n throw errors[0].error;\n }\n const args = (event.args || []).slice();\n args.push(event);\n return args;\n }\n}\n// A Wildcard Event will attempt to populate:\n// - event The name of the event name\n// - eventSignature The full signature of the event\n// - decode A function to decode data and topics\n// - args The decoded data and topics\nclass WildcardRunningEvent extends RunningEvent {\n constructor(address, contractInterface) {\n super(\"*\", { address: address });\n defineReadOnly(this, \"address\", address);\n defineReadOnly(this, \"interface\", contractInterface);\n }\n prepareEvent(event) {\n super.prepareEvent(event);\n try {\n const parsed = this.interface.parseLog(event);\n event.event = parsed.name;\n event.eventSignature = parsed.signature;\n event.decode = (data, topics) => {\n return this.interface.decodeEventLog(parsed.eventFragment, data, topics);\n };\n event.args = parsed.args;\n }\n catch (error) {\n // No matching event\n }\n }\n}\nexport class BaseContract {\n constructor(addressOrName, contractInterface, signerOrProvider) {\n // @TODO: Maybe still check the addressOrName looks like a valid address or name?\n //address = getAddress(address);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n if (signerOrProvider == null) {\n defineReadOnly(this, \"provider\", null);\n defineReadOnly(this, \"signer\", null);\n }\n else if (Signer.isSigner(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider.provider || null);\n defineReadOnly(this, \"signer\", signerOrProvider);\n }\n else if (Provider.isProvider(signerOrProvider)) {\n defineReadOnly(this, \"provider\", signerOrProvider);\n defineReadOnly(this, \"signer\", null);\n }\n else {\n logger.throwArgumentError(\"invalid signer or provider\", \"signerOrProvider\", signerOrProvider);\n }\n defineReadOnly(this, \"callStatic\", {});\n defineReadOnly(this, \"estimateGas\", {});\n defineReadOnly(this, \"functions\", {});\n defineReadOnly(this, \"populateTransaction\", {});\n defineReadOnly(this, \"filters\", {});\n {\n const uniqueFilters = {};\n Object.keys(this.interface.events).forEach((eventSignature) => {\n const event = this.interface.events[eventSignature];\n defineReadOnly(this.filters, eventSignature, (...args) => {\n return {\n address: this.address,\n topics: this.interface.encodeFilterTopics(event, args)\n };\n });\n if (!uniqueFilters[event.name]) {\n uniqueFilters[event.name] = [];\n }\n uniqueFilters[event.name].push(eventSignature);\n });\n Object.keys(uniqueFilters).forEach((name) => {\n const filters = uniqueFilters[name];\n if (filters.length === 1) {\n defineReadOnly(this.filters, name, this.filters[filters[0]]);\n }\n else {\n logger.warn(`Duplicate definition of ${name} (${filters.join(\", \")})`);\n }\n });\n }\n defineReadOnly(this, \"_runningEvents\", {});\n defineReadOnly(this, \"_wrappedEmits\", {});\n if (addressOrName == null) {\n logger.throwArgumentError(\"invalid contract address or ENS name\", \"addressOrName\", addressOrName);\n }\n defineReadOnly(this, \"address\", addressOrName);\n if (this.provider) {\n defineReadOnly(this, \"resolvedAddress\", resolveName(this.provider, addressOrName));\n }\n else {\n try {\n defineReadOnly(this, \"resolvedAddress\", Promise.resolve(getAddress(addressOrName)));\n }\n catch (error) {\n // Without a provider, we cannot use ENS names\n logger.throwError(\"provider is required to use ENS name as contract address\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new Contract\"\n });\n }\n }\n // Swallow bad ENS names to prevent Unhandled Exceptions\n this.resolvedAddress.catch((e) => { });\n const uniqueNames = {};\n const uniqueSignatures = {};\n Object.keys(this.interface.functions).forEach((signature) => {\n const fragment = this.interface.functions[signature];\n // Check that the signature is unique; if not the ABI generation has\n // not been cleaned or may be incorrectly generated\n if (uniqueSignatures[signature]) {\n logger.warn(`Duplicate ABI entry for ${JSON.stringify(signature)}`);\n return;\n }\n uniqueSignatures[signature] = true;\n // Track unique names; we only expose bare named functions if they\n // are ambiguous\n {\n const name = fragment.name;\n if (!uniqueNames[`%${name}`]) {\n uniqueNames[`%${name}`] = [];\n }\n uniqueNames[`%${name}`].push(signature);\n }\n if (this[signature] == null) {\n defineReadOnly(this, signature, buildDefault(this, fragment, true));\n }\n // We do not collapse simple calls on this bucket, which allows\n // frameworks to safely use this without introspection as well as\n // allows decoding error recovery.\n if (this.functions[signature] == null) {\n defineReadOnly(this.functions, signature, buildDefault(this, fragment, false));\n }\n if (this.callStatic[signature] == null) {\n defineReadOnly(this.callStatic, signature, buildCall(this, fragment, true));\n }\n if (this.populateTransaction[signature] == null) {\n defineReadOnly(this.populateTransaction, signature, buildPopulate(this, fragment));\n }\n if (this.estimateGas[signature] == null) {\n defineReadOnly(this.estimateGas, signature, buildEstimate(this, fragment));\n }\n });\n Object.keys(uniqueNames).forEach((name) => {\n // Ambiguous names to not get attached as bare names\n const signatures = uniqueNames[name];\n if (signatures.length > 1) {\n return;\n }\n // Strip off the leading \"%\" used for prototype protection\n name = name.substring(1);\n const signature = signatures[0];\n // If overwriting a member property that is null, swallow the error\n try {\n if (this[name] == null) {\n defineReadOnly(this, name, this[signature]);\n }\n }\n catch (e) { }\n if (this.functions[name] == null) {\n defineReadOnly(this.functions, name, this.functions[signature]);\n }\n if (this.callStatic[name] == null) {\n defineReadOnly(this.callStatic, name, this.callStatic[signature]);\n }\n if (this.populateTransaction[name] == null) {\n defineReadOnly(this.populateTransaction, name, this.populateTransaction[signature]);\n }\n if (this.estimateGas[name] == null) {\n defineReadOnly(this.estimateGas, name, this.estimateGas[signature]);\n }\n });\n }\n static getContractAddress(transaction) {\n return getContractAddress(transaction);\n }\n static getInterface(contractInterface) {\n if (Interface.isInterface(contractInterface)) {\n return contractInterface;\n }\n return new Interface(contractInterface);\n }\n // @TODO: Allow timeout?\n deployed() {\n return this._deployed();\n }\n _deployed(blockTag) {\n if (!this._deployedPromise) {\n // If we were just deployed, we know the transaction we should occur in\n if (this.deployTransaction) {\n this._deployedPromise = this.deployTransaction.wait().then(() => {\n return this;\n });\n }\n else {\n // @TODO: Once we allow a timeout to be passed in, we will wait\n // up to that many blocks for getCode\n // Otherwise, poll for our code to be deployed\n this._deployedPromise = this.provider.getCode(this.address, blockTag).then((code) => {\n if (code === \"0x\") {\n logger.throwError(\"contract not deployed\", Logger.errors.UNSUPPORTED_OPERATION, {\n contractAddress: this.address,\n operation: \"getDeployed\"\n });\n }\n return this;\n });\n }\n }\n return this._deployedPromise;\n }\n // @TODO:\n // estimateFallback(overrides?: TransactionRequest): Promise\n // @TODO:\n // estimateDeploy(bytecode: string, ...args): Promise\n fallback(overrides) {\n if (!this.signer) {\n logger.throwError(\"sending a transactions require a signer\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"sendTransaction(fallback)\" });\n }\n const tx = shallowCopy(overrides || {});\n [\"from\", \"to\"].forEach(function (key) {\n if (tx[key] == null) {\n return;\n }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key });\n });\n tx.to = this.resolvedAddress;\n return this.deployed().then(() => {\n return this.signer.sendTransaction(tx);\n });\n }\n // Reconnect to a different signer or provider\n connect(signerOrProvider) {\n if (typeof (signerOrProvider) === \"string\") {\n signerOrProvider = new VoidSigner(signerOrProvider, this.provider);\n }\n const contract = new (this.constructor)(this.address, this.interface, signerOrProvider);\n if (this.deployTransaction) {\n defineReadOnly(contract, \"deployTransaction\", this.deployTransaction);\n }\n return contract;\n }\n // Re-attach to a different on-chain instance of this contract\n attach(addressOrName) {\n return new (this.constructor)(addressOrName, this.interface, this.signer || this.provider);\n }\n static isIndexed(value) {\n return Indexed.isIndexed(value);\n }\n _normalizeRunningEvent(runningEvent) {\n // Already have an instance of this event running; we can re-use it\n if (this._runningEvents[runningEvent.tag]) {\n return this._runningEvents[runningEvent.tag];\n }\n return runningEvent;\n }\n _getRunningEvent(eventName) {\n if (typeof (eventName) === \"string\") {\n // Listen for \"error\" events (if your contract has an error event, include\n // the full signature to bypass this special event keyword)\n if (eventName === \"error\") {\n return this._normalizeRunningEvent(new ErrorRunningEvent());\n }\n // Listen for any event that is registered\n if (eventName === \"event\") {\n return this._normalizeRunningEvent(new RunningEvent(\"event\", null));\n }\n // Listen for any event\n if (eventName === \"*\") {\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n // Get the event Fragment (throws if ambiguous/unknown event)\n const fragment = this.interface.getEvent(eventName);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment));\n }\n // We have topics to filter by...\n if (eventName.topics && eventName.topics.length > 0) {\n // Is it a known topichash? (throws if no matching topichash)\n try {\n const topic = eventName.topics[0];\n if (typeof (topic) !== \"string\") {\n throw new Error(\"invalid topic\"); // @TODO: May happen for anonymous events\n }\n const fragment = this.interface.getEvent(topic);\n return this._normalizeRunningEvent(new FragmentRunningEvent(this.address, this.interface, fragment, eventName.topics));\n }\n catch (error) { }\n // Filter by the unknown topichash\n const filter = {\n address: this.address,\n topics: eventName.topics\n };\n return this._normalizeRunningEvent(new RunningEvent(getEventTag(filter), filter));\n }\n return this._normalizeRunningEvent(new WildcardRunningEvent(this.address, this.interface));\n }\n _checkRunningEvents(runningEvent) {\n if (runningEvent.listenerCount() === 0) {\n delete this._runningEvents[runningEvent.tag];\n // If we have a poller for this, remove it\n const emit = this._wrappedEmits[runningEvent.tag];\n if (emit && runningEvent.filter) {\n this.provider.off(runningEvent.filter, emit);\n delete this._wrappedEmits[runningEvent.tag];\n }\n }\n }\n // Subclasses can override this to gracefully recover\n // from parse errors if they wish\n _wrapEvent(runningEvent, log, listener) {\n const event = deepCopy(log);\n event.removeListener = () => {\n if (!listener) {\n return;\n }\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n };\n event.getBlock = () => { return this.provider.getBlock(log.blockHash); };\n event.getTransaction = () => { return this.provider.getTransaction(log.transactionHash); };\n event.getTransactionReceipt = () => { return this.provider.getTransactionReceipt(log.transactionHash); };\n // This may throw if the topics and data mismatch the signature\n runningEvent.prepareEvent(event);\n return event;\n }\n _addEventListener(runningEvent, listener, once) {\n if (!this.provider) {\n logger.throwError(\"events require a provider or a signer with a provider\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"once\" });\n }\n runningEvent.addListener(listener, once);\n // Track this running event and its listeners (may already be there; but no hard in updating)\n this._runningEvents[runningEvent.tag] = runningEvent;\n // If we are not polling the provider, start polling\n if (!this._wrappedEmits[runningEvent.tag]) {\n const wrappedEmit = (log) => {\n let event = this._wrapEvent(runningEvent, log, listener);\n // Try to emit the result for the parameterized event...\n if (event.decodeError == null) {\n try {\n const args = runningEvent.getEmit(event);\n this.emit(runningEvent.filter, ...args);\n }\n catch (error) {\n event.decodeError = error.error;\n }\n }\n // Always emit \"event\" for fragment-base events\n if (runningEvent.filter != null) {\n this.emit(\"event\", event);\n }\n // Emit \"error\" if there was an error\n if (event.decodeError != null) {\n this.emit(\"error\", event.decodeError, event);\n }\n };\n this._wrappedEmits[runningEvent.tag] = wrappedEmit;\n // Special events, like \"error\" do not have a filter\n if (runningEvent.filter != null) {\n this.provider.on(runningEvent.filter, wrappedEmit);\n }\n }\n }\n queryFilter(event, fromBlockOrBlockhash, toBlock) {\n const runningEvent = this._getRunningEvent(event);\n const filter = shallowCopy(runningEvent.filter);\n if (typeof (fromBlockOrBlockhash) === \"string\" && isHexString(fromBlockOrBlockhash, 32)) {\n if (toBlock != null) {\n logger.throwArgumentError(\"cannot specify toBlock with blockhash\", \"toBlock\", toBlock);\n }\n filter.blockHash = fromBlockOrBlockhash;\n }\n else {\n filter.fromBlock = ((fromBlockOrBlockhash != null) ? fromBlockOrBlockhash : 0);\n filter.toBlock = ((toBlock != null) ? toBlock : \"latest\");\n }\n return this.provider.getLogs(filter).then((logs) => {\n return logs.map((log) => this._wrapEvent(runningEvent, log, null));\n });\n }\n on(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, false);\n return this;\n }\n once(event, listener) {\n this._addEventListener(this._getRunningEvent(event), listener, true);\n return this;\n }\n emit(eventName, ...args) {\n if (!this.provider) {\n return false;\n }\n const runningEvent = this._getRunningEvent(eventName);\n const result = (runningEvent.run(args) > 0);\n // May have drained all the \"once\" events; check for living events\n this._checkRunningEvents(runningEvent);\n return result;\n }\n listenerCount(eventName) {\n if (!this.provider) {\n return 0;\n }\n if (eventName == null) {\n return Object.keys(this._runningEvents).reduce((accum, key) => {\n return accum + this._runningEvents[key].listenerCount();\n }, 0);\n }\n return this._getRunningEvent(eventName).listenerCount();\n }\n listeners(eventName) {\n if (!this.provider) {\n return [];\n }\n if (eventName == null) {\n const result = [];\n for (let tag in this._runningEvents) {\n this._runningEvents[tag].listeners().forEach((listener) => {\n result.push(listener);\n });\n }\n return result;\n }\n return this._getRunningEvent(eventName).listeners();\n }\n removeAllListeners(eventName) {\n if (!this.provider) {\n return this;\n }\n if (eventName == null) {\n for (const tag in this._runningEvents) {\n const runningEvent = this._runningEvents[tag];\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n }\n return this;\n }\n // Delete any listeners\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeAllListeners();\n this._checkRunningEvents(runningEvent);\n return this;\n }\n off(eventName, listener) {\n if (!this.provider) {\n return this;\n }\n const runningEvent = this._getRunningEvent(eventName);\n runningEvent.removeListener(listener);\n this._checkRunningEvents(runningEvent);\n return this;\n }\n removeListener(eventName, listener) {\n return this.off(eventName, listener);\n }\n}\nexport class Contract extends BaseContract {\n}\nexport class ContractFactory {\n constructor(contractInterface, bytecode, signer) {\n let bytecodeHex = null;\n if (typeof (bytecode) === \"string\") {\n bytecodeHex = bytecode;\n }\n else if (isBytes(bytecode)) {\n bytecodeHex = hexlify(bytecode);\n }\n else if (bytecode && typeof (bytecode.object) === \"string\") {\n // Allow the bytecode object from the Solidity compiler\n bytecodeHex = bytecode.object;\n }\n else {\n // Crash in the next verification step\n bytecodeHex = \"!\";\n }\n // Make sure it is 0x prefixed\n if (bytecodeHex.substring(0, 2) !== \"0x\") {\n bytecodeHex = \"0x\" + bytecodeHex;\n }\n // Make sure the final result is valid bytecode\n if (!isHexString(bytecodeHex) || (bytecodeHex.length % 2)) {\n logger.throwArgumentError(\"invalid bytecode\", \"bytecode\", bytecode);\n }\n // If we have a signer, make sure it is valid\n if (signer && !Signer.isSigner(signer)) {\n logger.throwArgumentError(\"invalid signer\", \"signer\", signer);\n }\n defineReadOnly(this, \"bytecode\", bytecodeHex);\n defineReadOnly(this, \"interface\", getStatic(new.target, \"getInterface\")(contractInterface));\n defineReadOnly(this, \"signer\", signer || null);\n }\n // @TODO: Future; rename to populateTransaction?\n getDeployTransaction(...args) {\n let tx = {};\n // If we have 1 additional argument, we allow transaction overrides\n if (args.length === this.interface.deploy.inputs.length + 1 && typeof (args[args.length - 1]) === \"object\") {\n tx = shallowCopy(args.pop());\n for (const key in tx) {\n if (!allowedTransactionKeys[key]) {\n throw new Error(\"unknown transaction override \" + key);\n }\n }\n }\n // Do not allow these to be overridden in a deployment transaction\n [\"data\", \"from\", \"to\"].forEach((key) => {\n if (tx[key] == null) {\n return;\n }\n logger.throwError(\"cannot override \" + key, Logger.errors.UNSUPPORTED_OPERATION, { operation: key });\n });\n if (tx.value) {\n const value = BigNumber.from(tx.value);\n if (!value.isZero() && !this.interface.deploy.payable) {\n logger.throwError(\"non-payable constructor cannot override value\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"overrides.value\",\n value: tx.value\n });\n }\n }\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n // Set the data to the bytecode + the encoded constructor arguments\n tx.data = hexlify(concat([\n this.bytecode,\n this.interface.encodeDeploy(args)\n ]));\n return tx;\n }\n deploy(...args) {\n return __awaiter(this, void 0, void 0, function* () {\n let overrides = {};\n // If 1 extra parameter was passed in, it contains overrides\n if (args.length === this.interface.deploy.inputs.length + 1) {\n overrides = args.pop();\n }\n // Make sure the call matches the constructor signature\n logger.checkArgumentCount(args.length, this.interface.deploy.inputs.length, \" in Contract constructor\");\n // Resolve ENS names and promises in the arguments\n const params = yield resolveAddresses(this.signer, args, this.interface.deploy.inputs);\n params.push(overrides);\n // Get the deployment transaction (with optional overrides)\n const unsignedTx = this.getDeployTransaction(...params);\n // Send the deployment transaction\n const tx = yield this.signer.sendTransaction(unsignedTx);\n const address = getStatic(this.constructor, \"getContractAddress\")(tx);\n const contract = getStatic(this.constructor, \"getContract\")(address, this.interface, this.signer);\n // Add the modified wait that wraps events\n addContractWait(contract, tx);\n defineReadOnly(contract, \"deployTransaction\", tx);\n return contract;\n });\n }\n attach(address) {\n return (this.constructor).getContract(address, this.interface, this.signer);\n }\n connect(signer) {\n return new (this.constructor)(this.interface, this.bytecode, signer);\n }\n static fromSolidity(compilerOutput, signer) {\n if (compilerOutput == null) {\n logger.throwError(\"missing compiler output\", Logger.errors.MISSING_ARGUMENT, { argument: \"compilerOutput\" });\n }\n if (typeof (compilerOutput) === \"string\") {\n compilerOutput = JSON.parse(compilerOutput);\n }\n const abi = compilerOutput.abi;\n let bytecode = null;\n if (compilerOutput.bytecode) {\n bytecode = compilerOutput.bytecode;\n }\n else if (compilerOutput.evm && compilerOutput.evm.bytecode) {\n bytecode = compilerOutput.evm.bytecode;\n }\n return new this(abi, bytecode, signer);\n }\n static getInterface(contractInterface) {\n return Contract.getInterface(contractInterface);\n }\n static getContractAddress(tx) {\n return getContractAddress(tx);\n }\n static getContract(address, contractInterface, signer) {\n return new Contract(address, contractInterface, signer);\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"contracts/5.7.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"hash/5.7.0\";\n//# sourceMappingURL=_version.js.map","import { keccak256 } from \"@ethersproject/keccak256\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nexport function id(text) {\n return keccak256(toUtf8Bytes(text));\n}\n//# sourceMappingURL=id.js.map","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\n// https://github.com/behnammodi/polyfill/blob/master/array.polyfill.js\nfunction flat(array, depth) {\n if (depth == null) {\n depth = 1;\n }\n const result = [];\n const forEach = result.forEach;\n const flatDeep = function (arr, depth) {\n forEach.call(arr, function (val) {\n if (depth > 0 && Array.isArray(val)) {\n flatDeep(val, depth - 1);\n }\n else {\n result.push(val);\n }\n });\n };\n flatDeep(array, depth);\n return result;\n}\nfunction fromEntries(array) {\n const result = {};\n for (let i = 0; i < array.length; i++) {\n const value = array[i];\n result[value[0]] = value[1];\n }\n return result;\n}\nexport function decode_arithmetic(bytes) {\n let pos = 0;\n function u16() { return (bytes[pos++] << 8) | bytes[pos++]; }\n // decode the frequency table\n let symbol_count = u16();\n let total = 1;\n let acc = [0, 1]; // first symbol has frequency 1\n for (let i = 1; i < symbol_count; i++) {\n acc.push(total += u16());\n }\n // skip the sized-payload that the last 3 symbols index into\n let skip = u16();\n let pos_payload = pos;\n pos += skip;\n let read_width = 0;\n let read_buffer = 0;\n function read_bit() {\n if (read_width == 0) {\n // this will read beyond end of buffer\n // but (undefined|0) => zero pad\n read_buffer = (read_buffer << 8) | bytes[pos++];\n read_width = 8;\n }\n return (read_buffer >> --read_width) & 1;\n }\n const N = 31;\n const FULL = Math.pow(2, N);\n const HALF = FULL >>> 1;\n const QRTR = HALF >> 1;\n const MASK = FULL - 1;\n // fill register\n let register = 0;\n for (let i = 0; i < N; i++)\n register = (register << 1) | read_bit();\n let symbols = [];\n let low = 0;\n let range = FULL; // treat like a float\n while (true) {\n let value = Math.floor((((register - low + 1) * total) - 1) / range);\n let start = 0;\n let end = symbol_count;\n while (end - start > 1) { // binary search\n let mid = (start + end) >>> 1;\n if (value < acc[mid]) {\n end = mid;\n }\n else {\n start = mid;\n }\n }\n if (start == 0)\n break; // first symbol is end mark\n symbols.push(start);\n let a = low + Math.floor(range * acc[start] / total);\n let b = low + Math.floor(range * acc[start + 1] / total) - 1;\n while (((a ^ b) & HALF) == 0) {\n register = (register << 1) & MASK | read_bit();\n a = (a << 1) & MASK;\n b = (b << 1) & MASK | 1;\n }\n while (a & ~b & QRTR) {\n register = (register & HALF) | ((register << 1) & (MASK >>> 1)) | read_bit();\n a = (a << 1) ^ HALF;\n b = ((b ^ HALF) << 1) | HALF | 1;\n }\n low = a;\n range = 1 + b - a;\n }\n let offset = symbol_count - 4;\n return symbols.map(x => {\n switch (x - offset) {\n case 3: return offset + 0x10100 + ((bytes[pos_payload++] << 16) | (bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n case 2: return offset + 0x100 + ((bytes[pos_payload++] << 8) | bytes[pos_payload++]);\n case 1: return offset + bytes[pos_payload++];\n default: return x - 1;\n }\n });\n}\n// returns an iterator which returns the next symbol\nexport function read_payload(v) {\n let pos = 0;\n return () => v[pos++];\n}\nexport function read_compressed_payload(bytes) {\n return read_payload(decode_arithmetic(bytes));\n}\n// eg. [0,1,2,3...] => [0,-1,1,-2,...]\nexport function signed(i) {\n return (i & 1) ? (~i >> 1) : (i >> 1);\n}\nfunction read_counts(n, next) {\n let v = Array(n);\n for (let i = 0; i < n; i++)\n v[i] = 1 + next();\n return v;\n}\nfunction read_ascending(n, next) {\n let v = Array(n);\n for (let i = 0, x = -1; i < n; i++)\n v[i] = x += 1 + next();\n return v;\n}\nfunction read_deltas(n, next) {\n let v = Array(n);\n for (let i = 0, x = 0; i < n; i++)\n v[i] = x += signed(next());\n return v;\n}\nexport function read_member_array(next, lookup) {\n let v = read_ascending(next(), next);\n let n = next();\n let vX = read_ascending(n, next);\n let vN = read_counts(n, next);\n for (let i = 0; i < n; i++) {\n for (let j = 0; j < vN[i]; j++) {\n v.push(vX[i] + j);\n }\n }\n return lookup ? v.map(x => lookup[x]) : v;\n}\n// returns array of \n// [x, ys] => single replacement rule\n// [x, ys, n, dx, dx] => linear map\nexport function read_mapped_map(next) {\n let ret = [];\n while (true) {\n let w = next();\n if (w == 0)\n break;\n ret.push(read_linear_table(w, next));\n }\n while (true) {\n let w = next() - 1;\n if (w < 0)\n break;\n ret.push(read_replacement_table(w, next));\n }\n return fromEntries(flat(ret));\n}\nexport function read_zero_terminated_array(next) {\n let v = [];\n while (true) {\n let i = next();\n if (i == 0)\n break;\n v.push(i);\n }\n return v;\n}\nfunction read_transposed(n, w, next) {\n let m = Array(n).fill(undefined).map(() => []);\n for (let i = 0; i < w; i++) {\n read_deltas(n, next).forEach((x, j) => m[j].push(x));\n }\n return m;\n}\nfunction read_linear_table(w, next) {\n let dx = 1 + next();\n let dy = next();\n let vN = read_zero_terminated_array(next);\n let m = read_transposed(vN.length, 1 + w, next);\n return flat(m.map((v, i) => {\n const x = v[0], ys = v.slice(1);\n //let [x, ...ys] = v;\n //return Array(vN[i]).fill().map((_, j) => {\n return Array(vN[i]).fill(undefined).map((_, j) => {\n let j_dy = j * dy;\n return [x + j * dx, ys.map(y => y + j_dy)];\n });\n }));\n}\nfunction read_replacement_table(w, next) {\n let n = 1 + next();\n let m = read_transposed(n, 1 + w, next);\n return m.map(v => [v[0], v.slice(1)]);\n}\nexport function read_emoji_trie(next) {\n let sorted = read_member_array(next).sort((a, b) => a - b);\n return read();\n function read() {\n let branches = [];\n while (true) {\n let keys = read_member_array(next, sorted);\n if (keys.length == 0)\n break;\n branches.push({ set: new Set(keys), node: read() });\n }\n branches.sort((a, b) => b.set.size - a.set.size); // sort by likelihood\n let temp = next();\n let valid = temp % 3;\n temp = (temp / 3) | 0;\n let fe0f = !!(temp & 1);\n temp >>= 1;\n let save = temp == 1;\n let check = temp == 2;\n return { branches, valid, fe0f, save, check };\n }\n}\n//# sourceMappingURL=decoder.js.map","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\nimport { toUtf8CodePoints } from \"@ethersproject/strings\";\nimport { getData } from './include.js';\nconst r = getData();\nimport { read_member_array, read_mapped_map, read_emoji_trie } from './decoder.js';\n// @TODO: This should be lazily loaded\nconst VALID = new Set(read_member_array(r));\nconst IGNORED = new Set(read_member_array(r));\nconst MAPPED = read_mapped_map(r);\nconst EMOJI_ROOT = read_emoji_trie(r);\n//const NFC_CHECK = new Set(read_member_array(r, Array.from(VALID.values()).sort((a, b) => a - b)));\n//const STOP = 0x2E;\nconst HYPHEN = 0x2D;\nconst UNDERSCORE = 0x5F;\nfunction explode_cp(name) {\n return toUtf8CodePoints(name);\n}\nfunction filter_fe0f(cps) {\n return cps.filter(cp => cp != 0xFE0F);\n}\nexport function ens_normalize_post_check(name) {\n for (let label of name.split('.')) {\n let cps = explode_cp(label);\n try {\n for (let i = cps.lastIndexOf(UNDERSCORE) - 1; i >= 0; i--) {\n if (cps[i] !== UNDERSCORE) {\n throw new Error(`underscore only allowed at start`);\n }\n }\n if (cps.length >= 4 && cps.every(cp => cp < 0x80) && cps[2] === HYPHEN && cps[3] === HYPHEN) {\n throw new Error(`invalid label extension`);\n }\n }\n catch (err) {\n throw new Error(`Invalid label \"${label}\": ${err.message}`);\n }\n }\n return name;\n}\nexport function ens_normalize(name) {\n return ens_normalize_post_check(normalize(name, filter_fe0f));\n}\nfunction normalize(name, emoji_filter) {\n let input = explode_cp(name).reverse(); // flip for pop\n let output = [];\n while (input.length) {\n let emoji = consume_emoji_reversed(input);\n if (emoji) {\n output.push(...emoji_filter(emoji));\n continue;\n }\n let cp = input.pop();\n if (VALID.has(cp)) {\n output.push(cp);\n continue;\n }\n if (IGNORED.has(cp)) {\n continue;\n }\n let cps = MAPPED[cp];\n if (cps) {\n output.push(...cps);\n continue;\n }\n throw new Error(`Disallowed codepoint: 0x${cp.toString(16).toUpperCase()}`);\n }\n return ens_normalize_post_check(nfc(String.fromCodePoint(...output)));\n}\nfunction nfc(s) {\n return s.normalize('NFC');\n}\nfunction consume_emoji_reversed(cps, eaten) {\n var _a;\n let node = EMOJI_ROOT;\n let emoji;\n let saved;\n let stack = [];\n let pos = cps.length;\n if (eaten)\n eaten.length = 0; // clear input buffer (if needed)\n while (pos) {\n let cp = cps[--pos];\n node = (_a = node.branches.find(x => x.set.has(cp))) === null || _a === void 0 ? void 0 : _a.node;\n if (!node)\n break;\n if (node.save) { // remember\n saved = cp;\n }\n else if (node.check) { // check exclusion\n if (cp === saved)\n break;\n }\n stack.push(cp);\n if (node.fe0f) {\n stack.push(0xFE0F);\n if (pos > 0 && cps[pos - 1] == 0xFE0F)\n pos--; // consume optional FE0F\n }\n if (node.valid) { // this is a valid emoji (so far)\n emoji = stack.slice(); // copy stack\n if (node.valid == 2)\n emoji.splice(1, 1); // delete FE0F at position 1 (RGI ZWJ don't follow spec!)\n if (eaten)\n eaten.push(...cps.slice(pos).reverse()); // copy input (if needed)\n cps.length = pos; // truncate\n }\n }\n return emoji;\n}\n//# sourceMappingURL=lib.js.map","/**\n * MIT License\n *\n * Copyright (c) 2021 Andrew Raffensperger\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n *\n * This is a near carbon-copy of the original source (link below) with the\n * TypeScript typings added and a few tweaks to make it ES3-compatible.\n *\n * See: https://github.com/adraffy/ens-normalize.js\n */\nimport { decode } from \"@ethersproject/base64\";\nimport { read_compressed_payload } from './decoder.js';\nexport function getData() {\n return read_compressed_payload(decode('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'));\n}\n//# sourceMappingURL=include.js.map","import { concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { ens_normalize } from \"./ens-normalize/lib\";\nconst Zeros = new Uint8Array(32);\nZeros.fill(0);\nfunction checkComponent(comp) {\n if (comp.length === 0) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n return comp;\n}\nfunction ensNameSplit(name) {\n const bytes = toUtf8Bytes(ens_normalize(name));\n const comps = [];\n if (name.length === 0) {\n return comps;\n }\n let last = 0;\n for (let i = 0; i < bytes.length; i++) {\n const d = bytes[i];\n // A separator (i.e. \".\"); copy this component\n if (d === 0x2e) {\n comps.push(checkComponent(bytes.slice(last, i)));\n last = i + 1;\n }\n }\n // There was a stray separator at the end of the name\n if (last >= bytes.length) {\n throw new Error(\"invalid ENS name; empty component\");\n }\n comps.push(checkComponent(bytes.slice(last)));\n return comps;\n}\nexport function ensNormalize(name) {\n return ensNameSplit(name).map((comp) => toUtf8String(comp)).join(\".\");\n}\nexport function isValidName(name) {\n try {\n return (ensNameSplit(name).length !== 0);\n }\n catch (error) { }\n return false;\n}\nexport function namehash(name) {\n /* istanbul ignore if */\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name; not a string\", \"name\", name);\n }\n let result = Zeros;\n const comps = ensNameSplit(name);\n while (comps.length) {\n result = keccak256(concat([result, keccak256(comps.pop())]));\n }\n return hexlify(result);\n}\nexport function dnsEncode(name) {\n return hexlify(concat(ensNameSplit(name).map((comp) => {\n // DNS does not allow components over 63 bytes in length\n if (comp.length > 63) {\n throw new Error(\"invalid DNS encoded entry; length exceeds 63 bytes\");\n }\n const bytes = new Uint8Array(comp.length + 1);\n bytes.set(comp, 1);\n bytes[0] = bytes.length - 1;\n return bytes;\n }))) + \"00\";\n}\n//# sourceMappingURL=namehash.js.map","var __awaiter = (this && this.__awaiter) || function (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};\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexlify, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { id } from \"./id\";\nconst padding = new Uint8Array(32);\npadding.fill(0);\nconst NegativeOne = BigNumber.from(-1);\nconst Zero = BigNumber.from(0);\nconst One = BigNumber.from(1);\nconst MaxUint256 = BigNumber.from(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\nfunction hexPadRight(value) {\n const bytes = arrayify(value);\n const padOffset = bytes.length % 32;\n if (padOffset) {\n return hexConcat([bytes, padding.slice(padOffset)]);\n }\n return hexlify(bytes);\n}\nconst hexTrue = hexZeroPad(One.toHexString(), 32);\nconst hexFalse = hexZeroPad(Zero.toHexString(), 32);\nconst domainFieldTypes = {\n name: \"string\",\n version: \"string\",\n chainId: \"uint256\",\n verifyingContract: \"address\",\n salt: \"bytes32\"\n};\nconst domainFieldNames = [\n \"name\", \"version\", \"chainId\", \"verifyingContract\", \"salt\"\n];\nfunction checkString(key) {\n return function (value) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid domain value for ${JSON.stringify(key)}`, `domain.${key}`, value);\n }\n return value;\n };\n}\nconst domainChecks = {\n name: checkString(\"name\"),\n version: checkString(\"version\"),\n chainId: function (value) {\n try {\n return BigNumber.from(value).toString();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value for \"chainId\"`, \"domain.chainId\", value);\n },\n verifyingContract: function (value) {\n try {\n return getAddress(value).toLowerCase();\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"verifyingContract\"`, \"domain.verifyingContract\", value);\n },\n salt: function (value) {\n try {\n const bytes = arrayify(value);\n if (bytes.length !== 32) {\n throw new Error(\"bad length\");\n }\n return hexlify(bytes);\n }\n catch (error) { }\n return logger.throwArgumentError(`invalid domain value \"salt\"`, \"domain.salt\", value);\n }\n};\nfunction getBaseEncoder(type) {\n // intXX and uintXX\n {\n const match = type.match(/^(u?)int(\\d*)$/);\n if (match) {\n const signed = (match[1] === \"\");\n const width = parseInt(match[2] || \"256\");\n if (width % 8 !== 0 || width > 256 || (match[2] && match[2] !== String(width))) {\n logger.throwArgumentError(\"invalid numeric width\", \"type\", type);\n }\n const boundsUpper = MaxUint256.mask(signed ? (width - 1) : width);\n const boundsLower = signed ? boundsUpper.add(One).mul(NegativeOne) : Zero;\n return function (value) {\n const v = BigNumber.from(value);\n if (v.lt(boundsLower) || v.gt(boundsUpper)) {\n logger.throwArgumentError(`value out-of-bounds for ${type}`, \"value\", value);\n }\n return hexZeroPad(v.toTwos(256).toHexString(), 32);\n };\n }\n }\n // bytesXX\n {\n const match = type.match(/^bytes(\\d+)$/);\n if (match) {\n const width = parseInt(match[1]);\n if (width === 0 || width > 32 || match[1] !== String(width)) {\n logger.throwArgumentError(\"invalid bytes width\", \"type\", type);\n }\n return function (value) {\n const bytes = arrayify(value);\n if (bytes.length !== width) {\n logger.throwArgumentError(`invalid length for ${type}`, \"value\", value);\n }\n return hexPadRight(value);\n };\n }\n }\n switch (type) {\n case \"address\": return function (value) {\n return hexZeroPad(getAddress(value), 32);\n };\n case \"bool\": return function (value) {\n return ((!value) ? hexFalse : hexTrue);\n };\n case \"bytes\": return function (value) {\n return keccak256(value);\n };\n case \"string\": return function (value) {\n return id(value);\n };\n }\n return null;\n}\nfunction encodeType(name, fields) {\n return `${name}(${fields.map(({ name, type }) => (type + \" \" + name)).join(\",\")})`;\n}\nexport class TypedDataEncoder {\n constructor(types) {\n defineReadOnly(this, \"types\", Object.freeze(deepCopy(types)));\n defineReadOnly(this, \"_encoderCache\", {});\n defineReadOnly(this, \"_types\", {});\n // Link struct types to their direct child structs\n const links = {};\n // Link structs to structs which contain them as a child\n const parents = {};\n // Link all subtypes within a given struct\n const subtypes = {};\n Object.keys(types).forEach((type) => {\n links[type] = {};\n parents[type] = [];\n subtypes[type] = {};\n });\n for (const name in types) {\n const uniqueNames = {};\n types[name].forEach((field) => {\n // Check each field has a unique name\n if (uniqueNames[field.name]) {\n logger.throwArgumentError(`duplicate variable name ${JSON.stringify(field.name)} in ${JSON.stringify(name)}`, \"types\", types);\n }\n uniqueNames[field.name] = true;\n // Get the base type (drop any array specifiers)\n const baseType = field.type.match(/^([^\\x5b]*)(\\x5b|$)/)[1];\n if (baseType === name) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Is this a base encoding type?\n const encoder = getBaseEncoder(baseType);\n if (encoder) {\n return;\n }\n if (!parents[baseType]) {\n logger.throwArgumentError(`unknown type ${JSON.stringify(baseType)}`, \"types\", types);\n }\n // Add linkage\n parents[baseType].push(name);\n links[name][baseType] = true;\n });\n }\n // Deduce the primary type\n const primaryTypes = Object.keys(parents).filter((n) => (parents[n].length === 0));\n if (primaryTypes.length === 0) {\n logger.throwArgumentError(\"missing primary type\", \"types\", types);\n }\n else if (primaryTypes.length > 1) {\n logger.throwArgumentError(`ambiguous primary types or unused types: ${primaryTypes.map((t) => (JSON.stringify(t))).join(\", \")}`, \"types\", types);\n }\n defineReadOnly(this, \"primaryType\", primaryTypes[0]);\n // Check for circular type references\n function checkCircular(type, found) {\n if (found[type]) {\n logger.throwArgumentError(`circular type reference to ${JSON.stringify(type)}`, \"types\", types);\n }\n found[type] = true;\n Object.keys(links[type]).forEach((child) => {\n if (!parents[child]) {\n return;\n }\n // Recursively check children\n checkCircular(child, found);\n // Mark all ancestors as having this decendant\n Object.keys(found).forEach((subtype) => {\n subtypes[subtype][child] = true;\n });\n });\n delete found[type];\n }\n checkCircular(this.primaryType, {});\n // Compute each fully describe type\n for (const name in subtypes) {\n const st = Object.keys(subtypes[name]);\n st.sort();\n this._types[name] = encodeType(name, types[name]) + st.map((t) => encodeType(t, types[t])).join(\"\");\n }\n }\n getEncoder(type) {\n let encoder = this._encoderCache[type];\n if (!encoder) {\n encoder = this._encoderCache[type] = this._getEncoder(type);\n }\n return encoder;\n }\n _getEncoder(type) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return encoder;\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const subEncoder = this.getEncoder(subtype);\n const length = parseInt(match[3]);\n return (value) => {\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n let result = value.map(subEncoder);\n if (this._types[subtype]) {\n result = result.map(keccak256);\n }\n return keccak256(hexConcat(result));\n };\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n const encodedType = id(this._types[type]);\n return (value) => {\n const values = fields.map(({ name, type }) => {\n const result = this.getEncoder(type)(value[name]);\n if (this._types[type]) {\n return keccak256(result);\n }\n return result;\n });\n values.unshift(encodedType);\n return hexConcat(values);\n };\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n encodeType(name) {\n const result = this._types[name];\n if (!result) {\n logger.throwArgumentError(`unknown type: ${JSON.stringify(name)}`, \"name\", name);\n }\n return result;\n }\n encodeData(type, value) {\n return this.getEncoder(type)(value);\n }\n hashStruct(name, value) {\n return keccak256(this.encodeData(name, value));\n }\n encode(value) {\n return this.encodeData(this.primaryType, value);\n }\n hash(value) {\n return this.hashStruct(this.primaryType, value);\n }\n _visit(type, value, callback) {\n // Basic encoder type (address, bool, uint256, etc)\n {\n const encoder = getBaseEncoder(type);\n if (encoder) {\n return callback(type, value);\n }\n }\n // Array\n const match = type.match(/^(.*)(\\x5b(\\d*)\\x5d)$/);\n if (match) {\n const subtype = match[1];\n const length = parseInt(match[3]);\n if (length >= 0 && value.length !== length) {\n logger.throwArgumentError(\"array length mismatch; expected length ${ arrayLength }\", \"value\", value);\n }\n return value.map((v) => this._visit(subtype, v, callback));\n }\n // Struct\n const fields = this.types[type];\n if (fields) {\n return fields.reduce((accum, { name, type }) => {\n accum[name] = this._visit(type, value[name], callback);\n return accum;\n }, {});\n }\n return logger.throwArgumentError(`unknown type: ${type}`, \"type\", type);\n }\n visit(value, callback) {\n return this._visit(this.primaryType, value, callback);\n }\n static from(types) {\n return new TypedDataEncoder(types);\n }\n static getPrimaryType(types) {\n return TypedDataEncoder.from(types).primaryType;\n }\n static hashStruct(name, types, value) {\n return TypedDataEncoder.from(types).hashStruct(name, value);\n }\n static hashDomain(domain) {\n const domainFields = [];\n for (const name in domain) {\n const type = domainFieldTypes[name];\n if (!type) {\n logger.throwArgumentError(`invalid typed-data domain key: ${JSON.stringify(name)}`, \"domain\", domain);\n }\n domainFields.push({ name, type });\n }\n domainFields.sort((a, b) => {\n return domainFieldNames.indexOf(a.name) - domainFieldNames.indexOf(b.name);\n });\n return TypedDataEncoder.hashStruct(\"EIP712Domain\", { EIP712Domain: domainFields }, domain);\n }\n static encode(domain, types, value) {\n return hexConcat([\n \"0x1901\",\n TypedDataEncoder.hashDomain(domain),\n TypedDataEncoder.from(types).hash(value)\n ]);\n }\n static hash(domain, types, value) {\n return keccak256(TypedDataEncoder.encode(domain, types, value));\n }\n // Replaces all address types with ENS names with their looked up address\n static resolveNames(domain, types, value, resolveName) {\n return __awaiter(this, void 0, void 0, function* () {\n // Make a copy to isolate it from the object passed in\n domain = shallowCopy(domain);\n // Look up all ENS names\n const ensCache = {};\n // Do we need to look up the domain's verifyingContract?\n if (domain.verifyingContract && !isHexString(domain.verifyingContract, 20)) {\n ensCache[domain.verifyingContract] = \"0x\";\n }\n // We are going to use the encoder to visit all the base values\n const encoder = TypedDataEncoder.from(types);\n // Get a list of all the addresses\n encoder.visit(value, (type, value) => {\n if (type === \"address\" && !isHexString(value, 20)) {\n ensCache[value] = \"0x\";\n }\n return value;\n });\n // Lookup each name\n for (const name in ensCache) {\n ensCache[name] = yield resolveName(name);\n }\n // Replace the domain verifyingContract if needed\n if (domain.verifyingContract && ensCache[domain.verifyingContract]) {\n domain.verifyingContract = ensCache[domain.verifyingContract];\n }\n // Replace all ENS names with their address\n value = encoder.visit(value, (type, value) => {\n if (type === \"address\" && ensCache[value]) {\n return ensCache[value];\n }\n return value;\n });\n return { domain, value };\n });\n }\n static getPayload(domain, types, value) {\n // Validate the domain fields\n TypedDataEncoder.hashDomain(domain);\n // Derive the EIP712Domain Struct reference type\n const domainValues = {};\n const domainTypes = [];\n domainFieldNames.forEach((name) => {\n const value = domain[name];\n if (value == null) {\n return;\n }\n domainValues[name] = domainChecks[name](value);\n domainTypes.push({ name, type: domainFieldTypes[name] });\n });\n const encoder = TypedDataEncoder.from(types);\n const typesWithDomain = shallowCopy(types);\n if (typesWithDomain.EIP712Domain) {\n logger.throwArgumentError(\"types must not contain EIP712Domain type\", \"types.EIP712Domain\", types);\n }\n else {\n typesWithDomain.EIP712Domain = domainTypes;\n }\n // Validate the data structures and types\n encoder.encode(value);\n return {\n types: typesWithDomain,\n domain: domainValues,\n primaryType: encoder.primaryType,\n message: encoder.visit(value, (type, value) => {\n // bytes\n if (type.match(/^bytes(\\d*)/)) {\n return hexlify(arrayify(value));\n }\n // uint or int\n if (type.match(/^u?int/)) {\n return BigNumber.from(value).toString();\n }\n switch (type) {\n case \"address\":\n return value.toLowerCase();\n case \"bool\":\n return !!value;\n case \"string\":\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(`invalid string`, \"value\", value);\n }\n return value;\n }\n return logger.throwArgumentError(\"unsupported type\", \"type\", type);\n })\n };\n }\n}\n//# sourceMappingURL=typed-data.js.map","\"use strict\";\nimport sha3 from \"js-sha3\";\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function keccak256(data) {\n return '0x' + sha3.keccak_256(arrayify(data));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nlet _permanentCensorErrors = false;\nlet _censorErrors = false;\nconst LogLevels = { debug: 1, \"default\": 2, info: 2, warning: 3, error: 4, off: 5 };\nlet _logLevel = LogLevels[\"default\"];\nimport { version } from \"./_version\";\nlet _globalLogger = null;\nfunction _checkNormalize() {\n try {\n const missing = [];\n // Make sure all forms of normalization are supported\n [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].forEach((form) => {\n try {\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad normalize\");\n }\n ;\n }\n catch (error) {\n missing.push(form);\n }\n });\n if (missing.length) {\n throw new Error(\"missing \" + missing.join(\", \"));\n }\n if (String.fromCharCode(0xe9).normalize(\"NFD\") !== String.fromCharCode(0x65, 0x0301)) {\n throw new Error(\"broken implementation\");\n }\n }\n catch (error) {\n return error.message;\n }\n return null;\n}\nconst _normalizeError = _checkNormalize();\nexport var LogLevel;\n(function (LogLevel) {\n LogLevel[\"DEBUG\"] = \"DEBUG\";\n LogLevel[\"INFO\"] = \"INFO\";\n LogLevel[\"WARNING\"] = \"WARNING\";\n LogLevel[\"ERROR\"] = \"ERROR\";\n LogLevel[\"OFF\"] = \"OFF\";\n})(LogLevel || (LogLevel = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ///////////////////\n // Generic Errors\n // Unknown Error\n ErrorCode[\"UNKNOWN_ERROR\"] = \"UNKNOWN_ERROR\";\n // Not Implemented\n ErrorCode[\"NOT_IMPLEMENTED\"] = \"NOT_IMPLEMENTED\";\n // Unsupported Operation\n // - operation\n ErrorCode[\"UNSUPPORTED_OPERATION\"] = \"UNSUPPORTED_OPERATION\";\n // Network Error (i.e. Ethereum Network, such as an invalid chain ID)\n // - event (\"noNetwork\" is not re-thrown in provider.ready; otherwise thrown)\n ErrorCode[\"NETWORK_ERROR\"] = \"NETWORK_ERROR\";\n // Some sort of bad response from the server\n ErrorCode[\"SERVER_ERROR\"] = \"SERVER_ERROR\";\n // Timeout\n ErrorCode[\"TIMEOUT\"] = \"TIMEOUT\";\n ///////////////////\n // Operational Errors\n // Buffer Overrun\n ErrorCode[\"BUFFER_OVERRUN\"] = \"BUFFER_OVERRUN\";\n // Numeric Fault\n // - operation: the operation being executed\n // - fault: the reason this faulted\n ErrorCode[\"NUMERIC_FAULT\"] = \"NUMERIC_FAULT\";\n ///////////////////\n // Argument Errors\n // Missing new operator to an object\n // - name: The name of the class\n ErrorCode[\"MISSING_NEW\"] = \"MISSING_NEW\";\n // Invalid argument (e.g. value is incompatible with type) to a function:\n // - argument: The argument name that was invalid\n // - value: The value of the argument\n ErrorCode[\"INVALID_ARGUMENT\"] = \"INVALID_ARGUMENT\";\n // Missing argument to a function:\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"MISSING_ARGUMENT\"] = \"MISSING_ARGUMENT\";\n // Too many arguments\n // - count: The number of arguments received\n // - expectedCount: The number of arguments expected\n ErrorCode[\"UNEXPECTED_ARGUMENT\"] = \"UNEXPECTED_ARGUMENT\";\n ///////////////////\n // Blockchain Errors\n // Call exception\n // - transaction: the transaction\n // - address?: the contract address\n // - args?: The arguments passed into the function\n // - method?: The Solidity method signature\n // - errorSignature?: The EIP848 error signature\n // - errorArgs?: The EIP848 error parameters\n // - reason: The reason (only for EIP848 \"Error(string)\")\n ErrorCode[\"CALL_EXCEPTION\"] = \"CALL_EXCEPTION\";\n // Insufficient funds (< value + gasLimit * gasPrice)\n // - transaction: the transaction attempted\n ErrorCode[\"INSUFFICIENT_FUNDS\"] = \"INSUFFICIENT_FUNDS\";\n // Nonce has already been used\n // - transaction: the transaction attempted\n ErrorCode[\"NONCE_EXPIRED\"] = \"NONCE_EXPIRED\";\n // The replacement fee for the transaction is too low\n // - transaction: the transaction attempted\n ErrorCode[\"REPLACEMENT_UNDERPRICED\"] = \"REPLACEMENT_UNDERPRICED\";\n // The gas limit could not be estimated\n // - transaction: the transaction passed to estimateGas\n ErrorCode[\"UNPREDICTABLE_GAS_LIMIT\"] = \"UNPREDICTABLE_GAS_LIMIT\";\n // The transaction was replaced by one with a higher gas price\n // - reason: \"cancelled\", \"replaced\" or \"repriced\"\n // - cancelled: true if reason == \"cancelled\" or reason == \"replaced\")\n // - hash: original transaction hash\n // - replacement: the full TransactionsResponse for the replacement\n // - receipt: the receipt of the replacement\n ErrorCode[\"TRANSACTION_REPLACED\"] = \"TRANSACTION_REPLACED\";\n ///////////////////\n // Interaction Errors\n // The user rejected the action, such as signing a message or sending\n // a transaction\n ErrorCode[\"ACTION_REJECTED\"] = \"ACTION_REJECTED\";\n})(ErrorCode || (ErrorCode = {}));\n;\nconst HEX = \"0123456789abcdef\";\nexport class Logger {\n constructor(version) {\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n value: version,\n writable: false\n });\n }\n _log(logLevel, args) {\n const level = logLevel.toLowerCase();\n if (LogLevels[level] == null) {\n this.throwArgumentError(\"invalid log level name\", \"logLevel\", logLevel);\n }\n if (_logLevel > LogLevels[level]) {\n return;\n }\n console.log.apply(console, args);\n }\n debug(...args) {\n this._log(Logger.levels.DEBUG, args);\n }\n info(...args) {\n this._log(Logger.levels.INFO, args);\n }\n warn(...args) {\n this._log(Logger.levels.WARNING, args);\n }\n makeError(message, code, params) {\n // Errors are being censored\n if (_censorErrors) {\n return this.makeError(\"censored error\", code, {});\n }\n if (!code) {\n code = Logger.errors.UNKNOWN_ERROR;\n }\n if (!params) {\n params = {};\n }\n const messageDetails = [];\n Object.keys(params).forEach((key) => {\n const value = params[key];\n try {\n if (value instanceof Uint8Array) {\n let hex = \"\";\n for (let i = 0; i < value.length; i++) {\n hex += HEX[value[i] >> 4];\n hex += HEX[value[i] & 0x0f];\n }\n messageDetails.push(key + \"=Uint8Array(0x\" + hex + \")\");\n }\n else {\n messageDetails.push(key + \"=\" + JSON.stringify(value));\n }\n }\n catch (error) {\n messageDetails.push(key + \"=\" + JSON.stringify(params[key].toString()));\n }\n });\n messageDetails.push(`code=${code}`);\n messageDetails.push(`version=${this.version}`);\n const reason = message;\n let url = \"\";\n switch (code) {\n case ErrorCode.NUMERIC_FAULT: {\n url = \"NUMERIC_FAULT\";\n const fault = message;\n switch (fault) {\n case \"overflow\":\n case \"underflow\":\n case \"division-by-zero\":\n url += \"-\" + fault;\n break;\n case \"negative-power\":\n case \"negative-width\":\n url += \"-unsupported\";\n break;\n case \"unbound-bitwise-result\":\n url += \"-unbound-result\";\n break;\n }\n break;\n }\n case ErrorCode.CALL_EXCEPTION:\n case ErrorCode.INSUFFICIENT_FUNDS:\n case ErrorCode.MISSING_NEW:\n case ErrorCode.NONCE_EXPIRED:\n case ErrorCode.REPLACEMENT_UNDERPRICED:\n case ErrorCode.TRANSACTION_REPLACED:\n case ErrorCode.UNPREDICTABLE_GAS_LIMIT:\n url = code;\n break;\n }\n if (url) {\n message += \" [ See: https:/\\/links.ethers.org/v5-errors-\" + url + \" ]\";\n }\n if (messageDetails.length) {\n message += \" (\" + messageDetails.join(\", \") + \")\";\n }\n // @TODO: Any??\n const error = new Error(message);\n error.reason = reason;\n error.code = code;\n Object.keys(params).forEach(function (key) {\n error[key] = params[key];\n });\n return error;\n }\n throwError(message, code, params) {\n throw this.makeError(message, code, params);\n }\n throwArgumentError(message, name, value) {\n return this.throwError(message, Logger.errors.INVALID_ARGUMENT, {\n argument: name,\n value: value\n });\n }\n assert(condition, message, code, params) {\n if (!!condition) {\n return;\n }\n this.throwError(message, code, params);\n }\n assertArgument(condition, message, name, value) {\n if (!!condition) {\n return;\n }\n this.throwArgumentError(message, name, value);\n }\n checkNormalize(message) {\n if (message == null) {\n message = \"platform missing String.prototype.normalize\";\n }\n if (_normalizeError) {\n this.throwError(\"platform missing String.prototype.normalize\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"String.prototype.normalize\", form: _normalizeError\n });\n }\n }\n checkSafeUint53(value, message) {\n if (typeof (value) !== \"number\") {\n return;\n }\n if (message == null) {\n message = \"value not safe\";\n }\n if (value < 0 || value >= 0x1fffffffffffff) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"out-of-safe-range\",\n value: value\n });\n }\n if (value % 1) {\n this.throwError(message, Logger.errors.NUMERIC_FAULT, {\n operation: \"checkSafeInteger\",\n fault: \"non-integer\",\n value: value\n });\n }\n }\n checkArgumentCount(count, expectedCount, message) {\n if (message) {\n message = \": \" + message;\n }\n else {\n message = \"\";\n }\n if (count < expectedCount) {\n this.throwError(\"missing argument\" + message, Logger.errors.MISSING_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n if (count > expectedCount) {\n this.throwError(\"too many arguments\" + message, Logger.errors.UNEXPECTED_ARGUMENT, {\n count: count,\n expectedCount: expectedCount\n });\n }\n }\n checkNew(target, kind) {\n if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n checkAbstract(target, kind) {\n if (target === kind) {\n this.throwError(\"cannot instantiate abstract class \" + JSON.stringify(kind.name) + \" directly; use a sub-class\", Logger.errors.UNSUPPORTED_OPERATION, { name: target.name, operation: \"new\" });\n }\n else if (target === Object || target == null) {\n this.throwError(\"missing new\", Logger.errors.MISSING_NEW, { name: kind.name });\n }\n }\n static globalLogger() {\n if (!_globalLogger) {\n _globalLogger = new Logger(version);\n }\n return _globalLogger;\n }\n static setCensorship(censorship, permanent) {\n if (!censorship && permanent) {\n this.globalLogger().throwError(\"cannot permanently disable censorship\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n if (_permanentCensorErrors) {\n if (!censorship) {\n return;\n }\n this.globalLogger().throwError(\"error censorship permanent\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setCensorship\"\n });\n }\n _censorErrors = !!censorship;\n _permanentCensorErrors = !!permanent;\n }\n static setLogLevel(logLevel) {\n const level = LogLevels[logLevel.toLowerCase()];\n if (level == null) {\n Logger.globalLogger().warn(\"invalid log level - \" + logLevel);\n return;\n }\n _logLevel = level;\n }\n static from(version) {\n return new Logger(version);\n }\n}\nLogger.errors = ErrorCode;\nLogger.levels = LogLevel;\n//# sourceMappingURL=index.js.map","export const version = \"logger/5.7.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"networks/5.7.1\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n;\nfunction isRenetworkable(value) {\n return (value && typeof (value.renetwork) === \"function\");\n}\nfunction ethDefaultProvider(network) {\n const func = function (providers, options) {\n if (options == null) {\n options = {};\n }\n const providerList = [];\n if (providers.InfuraProvider && options.infura !== \"-\") {\n try {\n providerList.push(new providers.InfuraProvider(network, options.infura));\n }\n catch (error) { }\n }\n if (providers.EtherscanProvider && options.etherscan !== \"-\") {\n try {\n providerList.push(new providers.EtherscanProvider(network, options.etherscan));\n }\n catch (error) { }\n }\n if (providers.AlchemyProvider && options.alchemy !== \"-\") {\n try {\n providerList.push(new providers.AlchemyProvider(network, options.alchemy));\n }\n catch (error) { }\n }\n if (providers.PocketProvider && options.pocket !== \"-\") {\n // These networks are currently faulty on Pocket as their\n // network does not handle the Berlin hardfork, which is\n // live on these ones.\n // @TODO: This goes away once Pocket has upgraded their nodes\n const skip = [\"goerli\", \"ropsten\", \"rinkeby\", \"sepolia\"];\n try {\n const provider = new providers.PocketProvider(network, options.pocket);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n }\n catch (error) { }\n }\n if (providers.CloudflareProvider && options.cloudflare !== \"-\") {\n try {\n providerList.push(new providers.CloudflareProvider(network));\n }\n catch (error) { }\n }\n if (providers.AnkrProvider && options.ankr !== \"-\") {\n try {\n const skip = [\"ropsten\"];\n const provider = new providers.AnkrProvider(network, options.ankr);\n if (provider.network && skip.indexOf(provider.network.name) === -1) {\n providerList.push(provider);\n }\n }\n catch (error) { }\n }\n if (providerList.length === 0) {\n return null;\n }\n if (providers.FallbackProvider) {\n let quorum = 1;\n if (options.quorum != null) {\n quorum = options.quorum;\n }\n else if (network === \"homestead\") {\n quorum = 2;\n }\n return new providers.FallbackProvider(providerList, quorum);\n }\n return providerList[0];\n };\n func.renetwork = function (network) {\n return ethDefaultProvider(network);\n };\n return func;\n}\nfunction etcDefaultProvider(url, network) {\n const func = function (providers, options) {\n if (providers.JsonRpcProvider) {\n return new providers.JsonRpcProvider(url, network);\n }\n return null;\n };\n func.renetwork = function (network) {\n return etcDefaultProvider(url, network);\n };\n return func;\n}\nconst homestead = {\n chainId: 1,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"homestead\",\n _defaultProvider: ethDefaultProvider(\"homestead\")\n};\nconst ropsten = {\n chainId: 3,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"ropsten\",\n _defaultProvider: ethDefaultProvider(\"ropsten\")\n};\nconst classicMordor = {\n chainId: 63,\n name: \"classicMordor\",\n _defaultProvider: etcDefaultProvider(\"https://www.ethercluster.com/mordor\", \"classicMordor\")\n};\n// See: https://chainlist.org\nconst networks = {\n unspecified: { chainId: 0, name: \"unspecified\" },\n homestead: homestead,\n mainnet: homestead,\n morden: { chainId: 2, name: \"morden\" },\n ropsten: ropsten,\n testnet: ropsten,\n rinkeby: {\n chainId: 4,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"rinkeby\",\n _defaultProvider: ethDefaultProvider(\"rinkeby\")\n },\n kovan: {\n chainId: 42,\n name: \"kovan\",\n _defaultProvider: ethDefaultProvider(\"kovan\")\n },\n goerli: {\n chainId: 5,\n ensAddress: \"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e\",\n name: \"goerli\",\n _defaultProvider: ethDefaultProvider(\"goerli\")\n },\n kintsugi: { chainId: 1337702, name: \"kintsugi\" },\n sepolia: {\n chainId: 11155111,\n name: \"sepolia\",\n _defaultProvider: ethDefaultProvider(\"sepolia\")\n },\n // ETC (See: #351)\n classic: {\n chainId: 61,\n name: \"classic\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/etc\", \"classic\")\n },\n classicMorden: { chainId: 62, name: \"classicMorden\" },\n classicMordor: classicMordor,\n classicTestnet: classicMordor,\n classicKotti: {\n chainId: 6,\n name: \"classicKotti\",\n _defaultProvider: etcDefaultProvider(\"https:/\\/www.ethercluster.com/kotti\", \"classicKotti\")\n },\n xdai: { chainId: 100, name: \"xdai\" },\n matic: {\n chainId: 137,\n name: \"matic\",\n _defaultProvider: ethDefaultProvider(\"matic\")\n },\n maticmum: { chainId: 80001, name: \"maticmum\" },\n optimism: {\n chainId: 10,\n name: \"optimism\",\n _defaultProvider: ethDefaultProvider(\"optimism\")\n },\n \"optimism-kovan\": { chainId: 69, name: \"optimism-kovan\" },\n \"optimism-goerli\": { chainId: 420, name: \"optimism-goerli\" },\n arbitrum: { chainId: 42161, name: \"arbitrum\" },\n \"arbitrum-rinkeby\": { chainId: 421611, name: \"arbitrum-rinkeby\" },\n \"arbitrum-goerli\": { chainId: 421613, name: \"arbitrum-goerli\" },\n bnb: { chainId: 56, name: \"bnb\" },\n bnbt: { chainId: 97, name: \"bnbt\" },\n};\n/**\n * getNetwork\n *\n * Converts a named common networks or chain ID (network ID) to a Network\n * and verifies a network is a valid Network..\n */\nexport function getNetwork(network) {\n // No network (null)\n if (network == null) {\n return null;\n }\n if (typeof (network) === \"number\") {\n for (const name in networks) {\n const standard = networks[name];\n if (standard.chainId === network) {\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: (standard.ensAddress || null),\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n }\n return {\n chainId: network,\n name: \"unknown\"\n };\n }\n if (typeof (network) === \"string\") {\n const standard = networks[network];\n if (standard == null) {\n return null;\n }\n return {\n name: standard.name,\n chainId: standard.chainId,\n ensAddress: standard.ensAddress,\n _defaultProvider: (standard._defaultProvider || null)\n };\n }\n const standard = networks[network.name];\n // Not a standard network; check that it is a valid network in general\n if (!standard) {\n if (typeof (network.chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid network chainId\", \"network\", network);\n }\n return network;\n }\n // Make sure the chainId matches the expected network chainId (or is 0; disable EIP-155)\n if (network.chainId !== 0 && network.chainId !== standard.chainId) {\n logger.throwArgumentError(\"network chainId mismatch\", \"network\", network);\n }\n // @TODO: In the next major version add an attach function to a defaultProvider\n // class and move the _defaultProvider internal to this file (extend Network)\n let defaultProvider = network._defaultProvider || null;\n if (defaultProvider == null && standard._defaultProvider) {\n if (isRenetworkable(standard._defaultProvider)) {\n defaultProvider = standard._defaultProvider.renetwork(network);\n }\n else {\n defaultProvider = standard._defaultProvider;\n }\n }\n // Standard Network (allow overriding the ENS address)\n return {\n name: network.name,\n chainId: standard.chainId,\n ensAddress: (network.ensAddress || standard.ensAddress || null),\n _defaultProvider: defaultProvider\n };\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function defineReadOnly(object, name, value) {\n Object.defineProperty(object, name, {\n enumerable: true,\n value: value,\n writable: false,\n });\n}\n// Crawl up the constructor chain to find a static method\nexport function getStatic(ctor, key) {\n for (let i = 0; i < 32; i++) {\n if (ctor[key]) {\n return ctor[key];\n }\n if (!ctor.prototype || typeof (ctor.prototype) !== \"object\") {\n break;\n }\n ctor = Object.getPrototypeOf(ctor.prototype).constructor;\n }\n return null;\n}\nexport function resolveProperties(object) {\n return __awaiter(this, void 0, void 0, function* () {\n const promises = Object.keys(object).map((key) => {\n const value = object[key];\n return Promise.resolve(value).then((v) => ({ key: key, value: v }));\n });\n const results = yield Promise.all(promises);\n return results.reduce((accum, result) => {\n accum[(result.key)] = result.value;\n return accum;\n }, {});\n });\n}\nexport function checkProperties(object, properties) {\n if (!object || typeof (object) !== \"object\") {\n logger.throwArgumentError(\"invalid object\", \"object\", object);\n }\n Object.keys(object).forEach((key) => {\n if (!properties[key]) {\n logger.throwArgumentError(\"invalid object key - \" + key, \"transaction:\" + key, object);\n }\n });\n}\nexport function shallowCopy(object) {\n const result = {};\n for (const key in object) {\n result[key] = object[key];\n }\n return result;\n}\nconst opaque = { bigint: true, boolean: true, \"function\": true, number: true, string: true };\nfunction _isFrozen(object) {\n // Opaque objects are not mutable, so safe to copy by assignment\n if (object === undefined || object === null || opaque[typeof (object)]) {\n return true;\n }\n if (Array.isArray(object) || typeof (object) === \"object\") {\n if (!Object.isFrozen(object)) {\n return false;\n }\n const keys = Object.keys(object);\n for (let i = 0; i < keys.length; i++) {\n let value = null;\n try {\n value = object[keys[i]];\n }\n catch (error) {\n // If accessing a value triggers an error, it is a getter\n // designed to do so (e.g. Result) and is therefore \"frozen\"\n continue;\n }\n if (!_isFrozen(value)) {\n return false;\n }\n }\n return true;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\n// Returns a new copy of object, such that no properties may be replaced.\n// New properties may be added only to objects.\nfunction _deepCopy(object) {\n if (_isFrozen(object)) {\n return object;\n }\n // Arrays are mutable, so we need to create a copy\n if (Array.isArray(object)) {\n return Object.freeze(object.map((item) => deepCopy(item)));\n }\n if (typeof (object) === \"object\") {\n const result = {};\n for (const key in object) {\n const value = object[key];\n if (value === undefined) {\n continue;\n }\n defineReadOnly(result, key, deepCopy(value));\n }\n return result;\n }\n return logger.throwArgumentError(`Cannot deepCopy ${typeof (object)}`, \"object\", object);\n}\nexport function deepCopy(object) {\n return _deepCopy(object);\n}\nexport class Description {\n constructor(info) {\n for (const key in info) {\n this[key] = deepCopy(info[key]);\n }\n }\n}\n//# sourceMappingURL=index.js.map","export const version = \"properties/5.7.0\";\n//# sourceMappingURL=_version.js.map","export const version = \"providers/5.7.2\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { ForkEvent, Provider } from \"@ethersproject/abstract-provider\";\nimport { encode as base64Encode } from \"@ethersproject/base64\";\nimport { Base58 } from \"@ethersproject/basex\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexConcat, hexDataLength, hexDataSlice, hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { dnsEncode, namehash } from \"@ethersproject/hash\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { defineReadOnly, getStatic, resolveProperties } from \"@ethersproject/properties\";\nimport { sha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport bech32 from \"bech32\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { Formatter } from \"./formatter\";\nconst MAX_CCIP_REDIRECTS = 10;\n//////////////////////////////\n// Event Serializeing\nfunction checkTopic(topic) {\n if (topic == null) {\n return \"null\";\n }\n if (hexDataLength(topic) !== 32) {\n logger.throwArgumentError(\"invalid topic\", \"topic\", topic);\n }\n return topic.toLowerCase();\n}\nfunction serializeTopics(topics) {\n // Remove trailing null AND-topics; they are redundant\n topics = topics.slice();\n while (topics.length > 0 && topics[topics.length - 1] == null) {\n topics.pop();\n }\n return topics.map((topic) => {\n if (Array.isArray(topic)) {\n // Only track unique OR-topics\n const unique = {};\n topic.forEach((topic) => {\n unique[checkTopic(topic)] = true;\n });\n // The order of OR-topics does not matter\n const sorted = Object.keys(unique);\n sorted.sort();\n return sorted.join(\"|\");\n }\n else {\n return checkTopic(topic);\n }\n }).join(\"&\");\n}\nfunction deserializeTopics(data) {\n if (data === \"\") {\n return [];\n }\n return data.split(/&/g).map((topic) => {\n if (topic === \"\") {\n return [];\n }\n const comps = topic.split(\"|\").map((topic) => {\n return ((topic === \"null\") ? null : topic);\n });\n return ((comps.length === 1) ? comps[0] : comps);\n });\n}\nfunction getEventTag(eventName) {\n if (typeof (eventName) === \"string\") {\n eventName = eventName.toLowerCase();\n if (hexDataLength(eventName) === 32) {\n return \"tx:\" + eventName;\n }\n if (eventName.indexOf(\":\") === -1) {\n return eventName;\n }\n }\n else if (Array.isArray(eventName)) {\n return \"filter:*:\" + serializeTopics(eventName);\n }\n else if (ForkEvent.isForkEvent(eventName)) {\n logger.warn(\"not implemented\");\n throw new Error(\"not implemented\");\n }\n else if (eventName && typeof (eventName) === \"object\") {\n return \"filter:\" + (eventName.address || \"*\") + \":\" + serializeTopics(eventName.topics || []);\n }\n throw new Error(\"invalid event - \" + eventName);\n}\n//////////////////////////////\n// Helper Object\nfunction getTime() {\n return (new Date()).getTime();\n}\nfunction stall(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\n//////////////////////////////\n// Provider Object\n/**\n * EventType\n * - \"block\"\n * - \"poll\"\n * - \"didPoll\"\n * - \"pending\"\n * - \"error\"\n * - \"network\"\n * - filter\n * - topics array\n * - transaction hash\n */\nconst PollableEvents = [\"block\", \"network\", \"pending\", \"poll\"];\nexport class Event {\n constructor(tag, listener, once) {\n defineReadOnly(this, \"tag\", tag);\n defineReadOnly(this, \"listener\", listener);\n defineReadOnly(this, \"once\", once);\n this._lastBlockNumber = -2;\n this._inflight = false;\n }\n get event() {\n switch (this.type) {\n case \"tx\":\n return this.hash;\n case \"filter\":\n return this.filter;\n }\n return this.tag;\n }\n get type() {\n return this.tag.split(\":\")[0];\n }\n get hash() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"tx\") {\n return null;\n }\n return comps[1];\n }\n get filter() {\n const comps = this.tag.split(\":\");\n if (comps[0] !== \"filter\") {\n return null;\n }\n const address = comps[1];\n const topics = deserializeTopics(comps[2]);\n const filter = {};\n if (topics.length > 0) {\n filter.topics = topics;\n }\n if (address && address !== \"*\") {\n filter.address = address;\n }\n return filter;\n }\n pollable() {\n return (this.tag.indexOf(\":\") >= 0 || PollableEvents.indexOf(this.tag) >= 0);\n }\n}\n;\n// https://github.com/satoshilabs/slips/blob/master/slip-0044.md\nconst coinInfos = {\n \"0\": { symbol: \"btc\", p2pkh: 0x00, p2sh: 0x05, prefix: \"bc\" },\n \"2\": { symbol: \"ltc\", p2pkh: 0x30, p2sh: 0x32, prefix: \"ltc\" },\n \"3\": { symbol: \"doge\", p2pkh: 0x1e, p2sh: 0x16 },\n \"60\": { symbol: \"eth\", ilk: \"eth\" },\n \"61\": { symbol: \"etc\", ilk: \"eth\" },\n \"700\": { symbol: \"xdai\", ilk: \"eth\" },\n};\nfunction bytes32ify(value) {\n return hexZeroPad(BigNumber.from(value).toHexString(), 32);\n}\n// Compute the Base58Check encoded data (checksum is first 4 bytes of sha256d)\nfunction base58Encode(data) {\n return Base58.encode(concat([data, hexDataSlice(sha256(sha256(data)), 0, 4)]));\n}\nconst matcherIpfs = new RegExp(\"^(ipfs):/\\/(.*)$\", \"i\");\nconst matchers = [\n new RegExp(\"^(https):/\\/(.*)$\", \"i\"),\n new RegExp(\"^(data):(.*)$\", \"i\"),\n matcherIpfs,\n new RegExp(\"^eip155:[0-9]+/(erc[0-9]+):(.*)$\", \"i\"),\n];\nfunction _parseString(result, start) {\n try {\n return toUtf8String(_parseBytes(result, start));\n }\n catch (error) { }\n return null;\n}\nfunction _parseBytes(result, start) {\n if (result === \"0x\") {\n return null;\n }\n const offset = BigNumber.from(hexDataSlice(result, start, start + 32)).toNumber();\n const length = BigNumber.from(hexDataSlice(result, offset, offset + 32)).toNumber();\n return hexDataSlice(result, offset + 32, offset + 32 + length);\n}\n// Trim off the ipfs:// prefix and return the default gateway URL\nfunction getIpfsLink(link) {\n if (link.match(/^ipfs:\\/\\/ipfs\\//i)) {\n link = link.substring(12);\n }\n else if (link.match(/^ipfs:\\/\\//i)) {\n link = link.substring(7);\n }\n else {\n logger.throwArgumentError(\"unsupported IPFS format\", \"link\", link);\n }\n return `https:/\\/gateway.ipfs.io/ipfs/${link}`;\n}\nfunction numPad(value) {\n const result = arrayify(value);\n if (result.length > 32) {\n throw new Error(\"internal; should not happen\");\n }\n const padded = new Uint8Array(32);\n padded.set(result, 32 - result.length);\n return padded;\n}\nfunction bytesPad(value) {\n if ((value.length % 32) === 0) {\n return value;\n }\n const result = new Uint8Array(Math.ceil(value.length / 32) * 32);\n result.set(value);\n return result;\n}\n// ABI Encodes a series of (bytes, bytes, ...)\nfunction encodeBytes(datas) {\n const result = [];\n let byteCount = 0;\n // Add place-holders for pointers as we add items\n for (let i = 0; i < datas.length; i++) {\n result.push(null);\n byteCount += 32;\n }\n for (let i = 0; i < datas.length; i++) {\n const data = arrayify(datas[i]);\n // Update the bytes offset\n result[i] = numPad(byteCount);\n // The length and padded value of data\n result.push(numPad(data.length));\n result.push(bytesPad(data));\n byteCount += 32 + Math.ceil(data.length / 32) * 32;\n }\n return hexConcat(result);\n}\nexport class Resolver {\n // The resolvedAddress is only for creating a ReverseLookup resolver\n constructor(provider, address, name, resolvedAddress) {\n defineReadOnly(this, \"provider\", provider);\n defineReadOnly(this, \"name\", name);\n defineReadOnly(this, \"address\", provider.formatter.address(address));\n defineReadOnly(this, \"_resolvedAddress\", resolvedAddress);\n }\n supportsWildcard() {\n if (!this._supportsEip2544) {\n // supportsInterface(bytes4 = selector(\"resolve(bytes,bytes)\"))\n this._supportsEip2544 = this.provider.call({\n to: this.address,\n data: \"0x01ffc9a79061b92300000000000000000000000000000000000000000000000000000000\"\n }).then((result) => {\n return BigNumber.from(result).eq(1);\n }).catch((error) => {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return false;\n }\n // Rethrow the error: link is down, etc. Let future attempts retry.\n this._supportsEip2544 = null;\n throw error;\n });\n }\n return this._supportsEip2544;\n }\n _fetch(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n // e.g. keccak256(\"addr(bytes32,uint256)\")\n const tx = {\n to: this.address,\n ccipReadEnabled: true,\n data: hexConcat([selector, namehash(this.name), (parameters || \"0x\")])\n };\n // Wildcard support; use EIP-2544 to resolve the request\n let parseBytes = false;\n if (yield this.supportsWildcard()) {\n parseBytes = true;\n // selector(\"resolve(bytes,bytes)\")\n tx.data = hexConcat([\"0x9061b923\", encodeBytes([dnsEncode(this.name), tx.data])]);\n }\n try {\n let result = yield this.provider.call(tx);\n if ((arrayify(result).length % 32) === 4) {\n logger.throwError(\"resolver threw error\", Logger.errors.CALL_EXCEPTION, {\n transaction: tx, data: result\n });\n }\n if (parseBytes) {\n result = _parseBytes(result, 0);\n }\n return result;\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n });\n }\n _fetchBytes(selector, parameters) {\n return __awaiter(this, void 0, void 0, function* () {\n const result = yield this._fetch(selector, parameters);\n if (result != null) {\n return _parseBytes(result, 0);\n }\n return null;\n });\n }\n _getAddress(coinType, hexBytes) {\n const coinInfo = coinInfos[String(coinType)];\n if (coinInfo == null) {\n logger.throwError(`unsupported coin type: ${coinType}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`\n });\n }\n if (coinInfo.ilk === \"eth\") {\n return this.provider.formatter.address(hexBytes);\n }\n const bytes = arrayify(hexBytes);\n // P2PKH: OP_DUP OP_HASH160 OP_EQUALVERIFY OP_CHECKSIG\n if (coinInfo.p2pkh != null) {\n const p2pkh = hexBytes.match(/^0x76a9([0-9a-f][0-9a-f])([0-9a-f]*)88ac$/);\n if (p2pkh) {\n const length = parseInt(p2pkh[1], 16);\n if (p2pkh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2pkh], (\"0x\" + p2pkh[2])]));\n }\n }\n }\n // P2SH: OP_HASH160 OP_EQUAL\n if (coinInfo.p2sh != null) {\n const p2sh = hexBytes.match(/^0xa9([0-9a-f][0-9a-f])([0-9a-f]*)87$/);\n if (p2sh) {\n const length = parseInt(p2sh[1], 16);\n if (p2sh[2].length === length * 2 && length >= 1 && length <= 75) {\n return base58Encode(concat([[coinInfo.p2sh], (\"0x\" + p2sh[2])]));\n }\n }\n }\n // Bech32\n if (coinInfo.prefix != null) {\n const length = bytes[1];\n // https://github.com/bitcoin/bips/blob/master/bip-0141.mediawiki#witness-program\n let version = bytes[0];\n if (version === 0x00) {\n if (length !== 20 && length !== 32) {\n version = -1;\n }\n }\n else {\n version = -1;\n }\n if (version >= 0 && bytes.length === 2 + length && length >= 1 && length <= 75) {\n const words = bech32.toWords(bytes.slice(2));\n words.unshift(version);\n return bech32.encode(coinInfo.prefix, words);\n }\n }\n return null;\n }\n getAddress(coinType) {\n return __awaiter(this, void 0, void 0, function* () {\n if (coinType == null) {\n coinType = 60;\n }\n // If Ethereum, use the standard `addr(bytes32)`\n if (coinType === 60) {\n try {\n // keccak256(\"addr(bytes32)\")\n const result = yield this._fetch(\"0x3b3b57de\");\n // No address\n if (result === \"0x\" || result === HashZero) {\n return null;\n }\n return this.provider.formatter.callAddress(result);\n }\n catch (error) {\n if (error.code === Logger.errors.CALL_EXCEPTION) {\n return null;\n }\n throw error;\n }\n }\n // keccak256(\"addr(bytes32,uint256\")\n const hexBytes = yield this._fetchBytes(\"0xf1cb7e06\", bytes32ify(coinType));\n // No address\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // Compute the address\n const address = this._getAddress(coinType, hexBytes);\n if (address == null) {\n logger.throwError(`invalid or unsupported coin data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `getAddress(${coinType})`,\n coinType: coinType,\n data: hexBytes\n });\n }\n return address;\n });\n }\n getAvatar() {\n return __awaiter(this, void 0, void 0, function* () {\n const linkage = [{ type: \"name\", content: this.name }];\n try {\n // test data for ricmoo.eth\n //const avatar = \"eip155:1/erc721:0x265385c7f4132228A0d54EB1A9e7460b91c0cC68/29233\";\n const avatar = yield this.getText(\"avatar\");\n if (avatar == null) {\n return null;\n }\n for (let i = 0; i < matchers.length; i++) {\n const match = avatar.match(matchers[i]);\n if (match == null) {\n continue;\n }\n const scheme = match[1].toLowerCase();\n switch (scheme) {\n case \"https\":\n linkage.push({ type: \"url\", content: avatar });\n return { linkage, url: avatar };\n case \"data\":\n linkage.push({ type: \"data\", content: avatar });\n return { linkage, url: avatar };\n case \"ipfs\":\n linkage.push({ type: \"ipfs\", content: avatar });\n return { linkage, url: getIpfsLink(avatar) };\n case \"erc721\":\n case \"erc1155\": {\n // Depending on the ERC type, use tokenURI(uint256) or url(uint256)\n const selector = (scheme === \"erc721\") ? \"0xc87b56dd\" : \"0x0e89341c\";\n linkage.push({ type: scheme, content: avatar });\n // The owner of this name\n const owner = (this._resolvedAddress || (yield this.getAddress()));\n const comps = (match[2] || \"\").split(\"/\");\n if (comps.length !== 2) {\n return null;\n }\n const addr = yield this.provider.formatter.address(comps[0]);\n const tokenId = hexZeroPad(BigNumber.from(comps[1]).toHexString(), 32);\n // Check that this account owns the token\n if (scheme === \"erc721\") {\n // ownerOf(uint256 tokenId)\n const tokenOwner = this.provider.formatter.callAddress(yield this.provider.call({\n to: addr, data: hexConcat([\"0x6352211e\", tokenId])\n }));\n if (owner !== tokenOwner) {\n return null;\n }\n linkage.push({ type: \"owner\", content: tokenOwner });\n }\n else if (scheme === \"erc1155\") {\n // balanceOf(address owner, uint256 tokenId)\n const balance = BigNumber.from(yield this.provider.call({\n to: addr, data: hexConcat([\"0x00fdd58e\", hexZeroPad(owner, 32), tokenId])\n }));\n if (balance.isZero()) {\n return null;\n }\n linkage.push({ type: \"balance\", content: balance.toString() });\n }\n // Call the token contract for the metadata URL\n const tx = {\n to: this.provider.formatter.address(comps[0]),\n data: hexConcat([selector, tokenId])\n };\n let metadataUrl = _parseString(yield this.provider.call(tx), 0);\n if (metadataUrl == null) {\n return null;\n }\n linkage.push({ type: \"metadata-url-base\", content: metadataUrl });\n // ERC-1155 allows a generic {id} in the URL\n if (scheme === \"erc1155\") {\n metadataUrl = metadataUrl.replace(\"{id}\", tokenId.substring(2));\n linkage.push({ type: \"metadata-url-expanded\", content: metadataUrl });\n }\n // Transform IPFS metadata links\n if (metadataUrl.match(/^ipfs:/i)) {\n metadataUrl = getIpfsLink(metadataUrl);\n }\n linkage.push({ type: \"metadata-url\", content: metadataUrl });\n // Get the token metadata\n const metadata = yield fetchJson(metadataUrl);\n if (!metadata) {\n return null;\n }\n linkage.push({ type: \"metadata\", content: JSON.stringify(metadata) });\n // Pull the image URL out\n let imageUrl = metadata.image;\n if (typeof (imageUrl) !== \"string\") {\n return null;\n }\n if (imageUrl.match(/^(https:\\/\\/|data:)/i)) {\n // Allow\n }\n else {\n // Transform IPFS link to gateway\n const ipfs = imageUrl.match(matcherIpfs);\n if (ipfs == null) {\n return null;\n }\n linkage.push({ type: \"url-ipfs\", content: imageUrl });\n imageUrl = getIpfsLink(imageUrl);\n }\n linkage.push({ type: \"url\", content: imageUrl });\n return { linkage, url: imageUrl };\n }\n }\n }\n }\n catch (error) { }\n return null;\n });\n }\n getContentHash() {\n return __awaiter(this, void 0, void 0, function* () {\n // keccak256(\"contenthash()\")\n const hexBytes = yield this._fetchBytes(\"0xbc1c58d1\");\n // No contenthash\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n // IPFS (CID: 1, Type: DAG-PB)\n const ipfs = hexBytes.match(/^0xe3010170(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipfs) {\n const length = parseInt(ipfs[3], 16);\n if (ipfs[4].length === length * 2) {\n return \"ipfs:/\\/\" + Base58.encode(\"0x\" + ipfs[1]);\n }\n }\n // IPNS (CID: 1, Type: libp2p-key)\n const ipns = hexBytes.match(/^0xe5010172(([0-9a-f][0-9a-f])([0-9a-f][0-9a-f])([0-9a-f]*))$/);\n if (ipns) {\n const length = parseInt(ipns[3], 16);\n if (ipns[4].length === length * 2) {\n return \"ipns:/\\/\" + Base58.encode(\"0x\" + ipns[1]);\n }\n }\n // Swarm (CID: 1, Type: swarm-manifest; hash/length hard-coded to keccak256/32)\n const swarm = hexBytes.match(/^0xe40101fa011b20([0-9a-f]*)$/);\n if (swarm) {\n if (swarm[1].length === (32 * 2)) {\n return \"bzz:/\\/\" + swarm[1];\n }\n }\n const skynet = hexBytes.match(/^0x90b2c605([0-9a-f]*)$/);\n if (skynet) {\n if (skynet[1].length === (34 * 2)) {\n // URL Safe base64; https://datatracker.ietf.org/doc/html/rfc4648#section-5\n const urlSafe = { \"=\": \"\", \"+\": \"-\", \"/\": \"_\" };\n const hash = base64Encode(\"0x\" + skynet[1]).replace(/[=+\\/]/g, (a) => (urlSafe[a]));\n return \"sia:/\\/\" + hash;\n }\n }\n return logger.throwError(`invalid or unsupported content hash data`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getContentHash()\",\n data: hexBytes\n });\n });\n }\n getText(key) {\n return __awaiter(this, void 0, void 0, function* () {\n // The key encoded as parameter to fetchBytes\n let keyBytes = toUtf8Bytes(key);\n // The nodehash consumes the first slot, so the string pointer targets\n // offset 64, with the length at offset 64 and data starting at offset 96\n keyBytes = concat([bytes32ify(64), bytes32ify(keyBytes.length), keyBytes]);\n // Pad to word-size (32 bytes)\n if ((keyBytes.length % 32) !== 0) {\n keyBytes = concat([keyBytes, hexZeroPad(\"0x\", 32 - (key.length % 32))]);\n }\n const hexBytes = yield this._fetchBytes(\"0x59d1d43c\", hexlify(keyBytes));\n if (hexBytes == null || hexBytes === \"0x\") {\n return null;\n }\n return toUtf8String(hexBytes);\n });\n }\n}\nlet defaultFormatter = null;\nlet nextPollId = 1;\nexport class BaseProvider extends Provider {\n /**\n * ready\n *\n * A Promise that resolves only once the provider is ready.\n *\n * Sub-classes that call the super with a network without a chainId\n * MUST set this. Standard named networks have a known chainId.\n *\n */\n constructor(network) {\n super();\n // Events being listened to\n this._events = [];\n this._emitted = { block: -2 };\n this.disableCcipRead = false;\n this.formatter = new.target.getFormatter();\n // If network is any, this Provider allows the underlying\n // network to change dynamically, and we auto-detect the\n // current network\n defineReadOnly(this, \"anyNetwork\", (network === \"any\"));\n if (this.anyNetwork) {\n network = this.detectNetwork();\n }\n if (network instanceof Promise) {\n this._networkPromise = network;\n // Squash any \"unhandled promise\" errors; that do not need to be handled\n network.catch((error) => { });\n // Trigger initial network setting (async)\n this._ready().catch((error) => { });\n }\n else {\n const knownNetwork = getStatic(new.target, \"getNetwork\")(network);\n if (knownNetwork) {\n defineReadOnly(this, \"_network\", knownNetwork);\n this.emit(\"network\", knownNetwork, null);\n }\n else {\n logger.throwArgumentError(\"invalid network\", \"network\", network);\n }\n }\n this._maxInternalBlockNumber = -1024;\n this._lastBlockNumber = -2;\n this._maxFilterBlockRange = 10;\n this._pollingInterval = 4000;\n this._fastQueryDate = 0;\n }\n _ready() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this._network == null) {\n let network = null;\n if (this._networkPromise) {\n try {\n network = yield this._networkPromise;\n }\n catch (error) { }\n }\n // Try the Provider's network detection (this MUST throw if it cannot)\n if (network == null) {\n network = yield this.detectNetwork();\n }\n // This should never happen; every Provider sub-class should have\n // suggested a network by here (or have thrown).\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // Possible this call stacked so do not call defineReadOnly again\n if (this._network == null) {\n if (this.anyNetwork) {\n this._network = network;\n }\n else {\n defineReadOnly(this, \"_network\", network);\n }\n this.emit(\"network\", network, null);\n }\n }\n return this._network;\n });\n }\n // This will always return the most recently established network.\n // For \"any\", this can change (a \"network\" event is emitted before\n // any change is reflected); otherwise this cannot change\n get ready() {\n return poll(() => {\n return this._ready().then((network) => {\n return network;\n }, (error) => {\n // If the network isn't running yet, we will wait\n if (error.code === Logger.errors.NETWORK_ERROR && error.event === \"noNetwork\") {\n return undefined;\n }\n throw error;\n });\n });\n }\n // @TODO: Remove this and just create a singleton formatter\n static getFormatter() {\n if (defaultFormatter == null) {\n defaultFormatter = new Formatter();\n }\n return defaultFormatter;\n }\n // @TODO: Remove this and just use getNetwork\n static getNetwork(network) {\n return getNetwork((network == null) ? \"homestead\" : network);\n }\n ccipReadFetch(tx, calldata, urls) {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.disableCcipRead || urls.length === 0) {\n return null;\n }\n const sender = tx.to.toLowerCase();\n const data = calldata.toLowerCase();\n const errorMessages = [];\n for (let i = 0; i < urls.length; i++) {\n const url = urls[i];\n // URL expansion\n const href = url.replace(\"{sender}\", sender).replace(\"{data}\", data);\n // If no {data} is present, use POST; otherwise GET\n const json = (url.indexOf(\"{data}\") >= 0) ? null : JSON.stringify({ data, sender });\n const result = yield fetchJson({ url: href, errorPassThrough: true }, json, (value, response) => {\n value.status = response.statusCode;\n return value;\n });\n if (result.data) {\n return result.data;\n }\n const errorMessage = (result.message || \"unknown error\");\n // 4xx indicates the result is not present; stop\n if (result.status >= 400 && result.status < 500) {\n return logger.throwError(`response not found during CCIP fetch: ${errorMessage}`, Logger.errors.SERVER_ERROR, { url, errorMessage });\n }\n // 5xx indicates server issue; try the next url\n errorMessages.push(errorMessage);\n }\n return logger.throwError(`error encountered during CCIP fetch: ${errorMessages.map((m) => JSON.stringify(m)).join(\", \")}`, Logger.errors.SERVER_ERROR, {\n urls, errorMessages\n });\n });\n }\n // Fetches the blockNumber, but will reuse any result that is less\n // than maxAge old or has been requested since the last request\n _getInternalBlockNumber(maxAge) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this._ready();\n // Allowing stale data up to maxAge old\n if (maxAge > 0) {\n // While there are pending internal block requests...\n while (this._internalBlockNumber) {\n // ...\"remember\" which fetch we started with\n const internalBlockNumber = this._internalBlockNumber;\n try {\n // Check the result is not too stale\n const result = yield internalBlockNumber;\n if ((getTime() - result.respTime) <= maxAge) {\n return result.blockNumber;\n }\n // Too old; fetch a new value\n break;\n }\n catch (error) {\n // The fetch rejected; if we are the first to get the\n // rejection, drop through so we replace it with a new\n // fetch; all others blocked will then get that fetch\n // which won't match the one they \"remembered\" and loop\n if (this._internalBlockNumber === internalBlockNumber) {\n break;\n }\n }\n }\n }\n const reqTime = getTime();\n const checkInternalBlockNumber = resolveProperties({\n blockNumber: this.perform(\"getBlockNumber\", {}),\n networkError: this.getNetwork().then((network) => (null), (error) => (error))\n }).then(({ blockNumber, networkError }) => {\n if (networkError) {\n // Unremember this bad internal block number\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n throw networkError;\n }\n const respTime = getTime();\n blockNumber = BigNumber.from(blockNumber).toNumber();\n if (blockNumber < this._maxInternalBlockNumber) {\n blockNumber = this._maxInternalBlockNumber;\n }\n this._maxInternalBlockNumber = blockNumber;\n this._setFastBlockNumber(blockNumber); // @TODO: Still need this?\n return { blockNumber, reqTime, respTime };\n });\n this._internalBlockNumber = checkInternalBlockNumber;\n // Swallow unhandled exceptions; if needed they are handled else where\n checkInternalBlockNumber.catch((error) => {\n // Don't null the dead (rejected) fetch, if it has already been updated\n if (this._internalBlockNumber === checkInternalBlockNumber) {\n this._internalBlockNumber = null;\n }\n });\n return (yield checkInternalBlockNumber).blockNumber;\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n const pollId = nextPollId++;\n // Track all running promises, so we can trigger a post-poll once they are complete\n const runners = [];\n let blockNumber = null;\n try {\n blockNumber = yield this._getInternalBlockNumber(100 + this.pollingInterval / 2);\n }\n catch (error) {\n this.emit(\"error\", error);\n return;\n }\n this._setFastBlockNumber(blockNumber);\n // Emit a poll event after we have the latest (fast) block number\n this.emit(\"poll\", pollId, blockNumber);\n // If the block has not changed, meh.\n if (blockNumber === this._lastBlockNumber) {\n this.emit(\"didPoll\", pollId);\n return;\n }\n // First polling cycle, trigger a \"block\" events\n if (this._emitted.block === -2) {\n this._emitted.block = blockNumber - 1;\n }\n if (Math.abs((this._emitted.block) - blockNumber) > 1000) {\n logger.warn(`network block skew detected; skipping block events (emitted=${this._emitted.block} blockNumber${blockNumber})`);\n this.emit(\"error\", logger.makeError(\"network block skew detected\", Logger.errors.NETWORK_ERROR, {\n blockNumber: blockNumber,\n event: \"blockSkew\",\n previousBlockNumber: this._emitted.block\n }));\n this.emit(\"block\", blockNumber);\n }\n else {\n // Notify all listener for each block that has passed\n for (let i = this._emitted.block + 1; i <= blockNumber; i++) {\n this.emit(\"block\", i);\n }\n }\n // The emitted block was updated, check for obsolete events\n if (this._emitted.block !== blockNumber) {\n this._emitted.block = blockNumber;\n Object.keys(this._emitted).forEach((key) => {\n // The block event does not expire\n if (key === \"block\") {\n return;\n }\n // The block we were at when we emitted this event\n const eventBlockNumber = this._emitted[key];\n // We cannot garbage collect pending transactions or blocks here\n // They should be garbage collected by the Provider when setting\n // \"pending\" events\n if (eventBlockNumber === \"pending\") {\n return;\n }\n // Evict any transaction hashes or block hashes over 12 blocks\n // old, since they should not return null anyways\n if (blockNumber - eventBlockNumber > 12) {\n delete this._emitted[key];\n }\n });\n }\n // First polling cycle\n if (this._lastBlockNumber === -2) {\n this._lastBlockNumber = blockNumber - 1;\n }\n // Find all transaction hashes we are waiting on\n this._events.forEach((event) => {\n switch (event.type) {\n case \"tx\": {\n const hash = event.hash;\n let runner = this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt || receipt.blockNumber == null) {\n return null;\n }\n this._emitted[\"t:\" + hash] = receipt.blockNumber;\n this.emit(hash, receipt);\n return null;\n }).catch((error) => { this.emit(\"error\", error); });\n runners.push(runner);\n break;\n }\n case \"filter\": {\n // We only allow a single getLogs to be in-flight at a time\n if (!event._inflight) {\n event._inflight = true;\n // This is the first filter for this event, so we want to\n // restrict events to events that happened no earlier than now\n if (event._lastBlockNumber === -2) {\n event._lastBlockNumber = blockNumber - 1;\n }\n // Filter from the last *known* event; due to load-balancing\n // and some nodes returning updated block numbers before\n // indexing events, a logs result with 0 entries cannot be\n // trusted and we must retry a range which includes it again\n const filter = event.filter;\n filter.fromBlock = event._lastBlockNumber + 1;\n filter.toBlock = blockNumber;\n // Prevent fitler ranges from growing too wild, since it is quite\n // likely there just haven't been any events to move the lastBlockNumber.\n const minFromBlock = filter.toBlock - this._maxFilterBlockRange;\n if (minFromBlock > filter.fromBlock) {\n filter.fromBlock = minFromBlock;\n }\n if (filter.fromBlock < 0) {\n filter.fromBlock = 0;\n }\n const runner = this.getLogs(filter).then((logs) => {\n // Allow the next getLogs\n event._inflight = false;\n if (logs.length === 0) {\n return;\n }\n logs.forEach((log) => {\n // Only when we get an event for a given block number\n // can we trust the events are indexed\n if (log.blockNumber > event._lastBlockNumber) {\n event._lastBlockNumber = log.blockNumber;\n }\n // Make sure we stall requests to fetch blocks and txs\n this._emitted[\"b:\" + log.blockHash] = log.blockNumber;\n this._emitted[\"t:\" + log.transactionHash] = log.blockNumber;\n this.emit(filter, log);\n });\n }).catch((error) => {\n this.emit(\"error\", error);\n // Allow another getLogs (the range was not updated)\n event._inflight = false;\n });\n runners.push(runner);\n }\n break;\n }\n }\n });\n this._lastBlockNumber = blockNumber;\n // Once all events for this loop have been processed, emit \"didPoll\"\n Promise.all(runners).then(() => {\n this.emit(\"didPoll\", pollId);\n }).catch((error) => { this.emit(\"error\", error); });\n return;\n });\n }\n // Deprecated; do not use this\n resetEventsBlock(blockNumber) {\n this._lastBlockNumber = blockNumber - 1;\n if (this.polling) {\n this.poll();\n }\n }\n get network() {\n return this._network;\n }\n // This method should query the network if the underlying network\n // can change, such as when connected to a JSON-RPC backend\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return logger.throwError(\"provider does not support network detection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"provider.detectNetwork\"\n });\n });\n }\n getNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const network = yield this._ready();\n // Make sure we are still connected to the same network; this is\n // only an external call for backends which can have the underlying\n // network change spontaneously\n const currentNetwork = yield this.detectNetwork();\n if (network.chainId !== currentNetwork.chainId) {\n // We are allowing network changes, things can get complex fast;\n // make sure you know what you are doing if you use \"any\"\n if (this.anyNetwork) {\n this._network = currentNetwork;\n // Reset all internal block number guards and caches\n this._lastBlockNumber = -2;\n this._fastBlockNumber = null;\n this._fastBlockNumberPromise = null;\n this._fastQueryDate = 0;\n this._emitted.block = -2;\n this._maxInternalBlockNumber = -1024;\n this._internalBlockNumber = null;\n // The \"network\" event MUST happen before this method resolves\n // so any events have a chance to unregister, so we stall an\n // additional event loop before returning from /this/ call\n this.emit(\"network\", currentNetwork, network);\n yield stall(0);\n return this._network;\n }\n const error = logger.makeError(\"underlying network changed\", Logger.errors.NETWORK_ERROR, {\n event: \"changed\",\n network: network,\n detectedNetwork: currentNetwork\n });\n this.emit(\"error\", error);\n throw error;\n }\n return network;\n });\n }\n get blockNumber() {\n this._getInternalBlockNumber(100 + this.pollingInterval / 2).then((blockNumber) => {\n this._setFastBlockNumber(blockNumber);\n }, (error) => { });\n return (this._fastBlockNumber != null) ? this._fastBlockNumber : -1;\n }\n get polling() {\n return (this._poller != null);\n }\n set polling(value) {\n if (value && !this._poller) {\n this._poller = setInterval(() => { this.poll(); }, this.pollingInterval);\n if (!this._bootstrapPoll) {\n this._bootstrapPoll = setTimeout(() => {\n this.poll();\n // We block additional polls until the polling interval\n // is done, to prevent overwhelming the poll function\n this._bootstrapPoll = setTimeout(() => {\n // If polling was disabled, something may require a poke\n // since starting the bootstrap poll and it was disabled\n if (!this._poller) {\n this.poll();\n }\n // Clear out the bootstrap so we can do another\n this._bootstrapPoll = null;\n }, this.pollingInterval);\n }, 0);\n }\n }\n else if (!value && this._poller) {\n clearInterval(this._poller);\n this._poller = null;\n }\n }\n get pollingInterval() {\n return this._pollingInterval;\n }\n set pollingInterval(value) {\n if (typeof (value) !== \"number\" || value <= 0 || parseInt(String(value)) != value) {\n throw new Error(\"invalid polling interval\");\n }\n this._pollingInterval = value;\n if (this._poller) {\n clearInterval(this._poller);\n this._poller = setInterval(() => { this.poll(); }, this._pollingInterval);\n }\n }\n _getFastBlockNumber() {\n const now = getTime();\n // Stale block number, request a newer value\n if ((now - this._fastQueryDate) > 2 * this._pollingInterval) {\n this._fastQueryDate = now;\n this._fastBlockNumberPromise = this.getBlockNumber().then((blockNumber) => {\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n }\n return this._fastBlockNumber;\n });\n }\n return this._fastBlockNumberPromise;\n }\n _setFastBlockNumber(blockNumber) {\n // Older block, maybe a stale request\n if (this._fastBlockNumber != null && blockNumber < this._fastBlockNumber) {\n return;\n }\n // Update the time we updated the blocknumber\n this._fastQueryDate = getTime();\n // Newer block number, use it\n if (this._fastBlockNumber == null || blockNumber > this._fastBlockNumber) {\n this._fastBlockNumber = blockNumber;\n this._fastBlockNumberPromise = Promise.resolve(blockNumber);\n }\n }\n waitForTransaction(transactionHash, confirmations, timeout) {\n return __awaiter(this, void 0, void 0, function* () {\n return this._waitForTransaction(transactionHash, (confirmations == null) ? 1 : confirmations, timeout || 0, null);\n });\n }\n _waitForTransaction(transactionHash, confirmations, timeout, replaceable) {\n return __awaiter(this, void 0, void 0, function* () {\n const receipt = yield this.getTransactionReceipt(transactionHash);\n // Receipt is already good\n if ((receipt ? receipt.confirmations : 0) >= confirmations) {\n return receipt;\n }\n // Poll until the receipt is good...\n return new Promise((resolve, reject) => {\n const cancelFuncs = [];\n let done = false;\n const alreadyDone = function () {\n if (done) {\n return true;\n }\n done = true;\n cancelFuncs.forEach((func) => { func(); });\n return false;\n };\n const minedHandler = (receipt) => {\n if (receipt.confirmations < confirmations) {\n return;\n }\n if (alreadyDone()) {\n return;\n }\n resolve(receipt);\n };\n this.on(transactionHash, minedHandler);\n cancelFuncs.push(() => { this.removeListener(transactionHash, minedHandler); });\n if (replaceable) {\n let lastBlockNumber = replaceable.startBlock;\n let scannedBlock = null;\n const replaceHandler = (blockNumber) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n // Wait 1 second; this is only used in the case of a fault, so\n // we will trade off a little bit of latency for more consistent\n // results and fewer JSON-RPC calls\n yield stall(1000);\n this.getTransactionCount(replaceable.from).then((nonce) => __awaiter(this, void 0, void 0, function* () {\n if (done) {\n return;\n }\n if (nonce <= replaceable.nonce) {\n lastBlockNumber = blockNumber;\n }\n else {\n // First check if the transaction was mined\n {\n const mined = yield this.getTransaction(transactionHash);\n if (mined && mined.blockNumber != null) {\n return;\n }\n }\n // First time scanning. We start a little earlier for some\n // wiggle room here to handle the eventually consistent nature\n // of blockchain (e.g. the getTransactionCount was for a\n // different block)\n if (scannedBlock == null) {\n scannedBlock = lastBlockNumber - 3;\n if (scannedBlock < replaceable.startBlock) {\n scannedBlock = replaceable.startBlock;\n }\n }\n while (scannedBlock <= blockNumber) {\n if (done) {\n return;\n }\n const block = yield this.getBlockWithTransactions(scannedBlock);\n for (let ti = 0; ti < block.transactions.length; ti++) {\n const tx = block.transactions[ti];\n // Successfully mined!\n if (tx.hash === transactionHash) {\n return;\n }\n // Matches our transaction from and nonce; its a replacement\n if (tx.from === replaceable.from && tx.nonce === replaceable.nonce) {\n if (done) {\n return;\n }\n // Get the receipt of the replacement\n const receipt = yield this.waitForTransaction(tx.hash, confirmations);\n // Already resolved or rejected (prolly a timeout)\n if (alreadyDone()) {\n return;\n }\n // The reason we were replaced\n let reason = \"replaced\";\n if (tx.data === replaceable.data && tx.to === replaceable.to && tx.value.eq(replaceable.value)) {\n reason = \"repriced\";\n }\n else if (tx.data === \"0x\" && tx.from === tx.to && tx.value.isZero()) {\n reason = \"cancelled\";\n }\n // Explain why we were replaced\n reject(logger.makeError(\"transaction was replaced\", Logger.errors.TRANSACTION_REPLACED, {\n cancelled: (reason === \"replaced\" || reason === \"cancelled\"),\n reason,\n replacement: this._wrapTransaction(tx),\n hash: transactionHash,\n receipt\n }));\n return;\n }\n }\n scannedBlock++;\n }\n }\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n }), (error) => {\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n });\n });\n if (done) {\n return;\n }\n this.once(\"block\", replaceHandler);\n cancelFuncs.push(() => {\n this.removeListener(\"block\", replaceHandler);\n });\n }\n if (typeof (timeout) === \"number\" && timeout > 0) {\n const timer = setTimeout(() => {\n if (alreadyDone()) {\n return;\n }\n reject(logger.makeError(\"timeout exceeded\", Logger.errors.TIMEOUT, { timeout: timeout }));\n }, timeout);\n if (timer.unref) {\n timer.unref();\n }\n cancelFuncs.push(() => { clearTimeout(timer); });\n }\n });\n });\n }\n getBlockNumber() {\n return __awaiter(this, void 0, void 0, function* () {\n return this._getInternalBlockNumber(0);\n });\n }\n getGasPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const result = yield this.perform(\"getGasPrice\", {});\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getGasPrice\",\n result, error\n });\n }\n });\n }\n getBalance(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getBalance\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getBalance\",\n params, result, error\n });\n }\n });\n }\n getTransactionCount(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getTransactionCount\", params);\n try {\n return BigNumber.from(result).toNumber();\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getTransactionCount\",\n params, result, error\n });\n }\n });\n }\n getCode(addressOrName, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag)\n });\n const result = yield this.perform(\"getCode\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getCode\",\n params, result, error\n });\n }\n });\n }\n getStorageAt(addressOrName, position, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n address: this._getAddress(addressOrName),\n blockTag: this._getBlockTag(blockTag),\n position: Promise.resolve(position).then((p) => hexValue(p))\n });\n const result = yield this.perform(\"getStorageAt\", params);\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"getStorageAt\",\n params, result, error\n });\n }\n });\n }\n // This should be called by any subclass wrapping a TransactionResponse\n _wrapTransaction(tx, hash, startBlock) {\n if (hash != null && hexDataLength(hash) !== 32) {\n throw new Error(\"invalid response - sendTransaction\");\n }\n const result = tx;\n // Check the hash we expect is the same as the hash the server reported\n if (hash != null && tx.hash !== hash) {\n logger.throwError(\"Transaction hash mismatch from Provider.sendTransaction.\", Logger.errors.UNKNOWN_ERROR, { expectedHash: tx.hash, returnedHash: hash });\n }\n result.wait = (confirms, timeout) => __awaiter(this, void 0, void 0, function* () {\n if (confirms == null) {\n confirms = 1;\n }\n if (timeout == null) {\n timeout = 0;\n }\n // Get the details to detect replacement\n let replacement = undefined;\n if (confirms !== 0 && startBlock != null) {\n replacement = {\n data: tx.data,\n from: tx.from,\n nonce: tx.nonce,\n to: tx.to,\n value: tx.value,\n startBlock\n };\n }\n const receipt = yield this._waitForTransaction(tx.hash, confirms, timeout, replacement);\n if (receipt == null && confirms === 0) {\n return null;\n }\n // No longer pending, allow the polling loop to garbage collect this\n this._emitted[\"t:\" + tx.hash] = receipt.blockNumber;\n if (receipt.status === 0) {\n logger.throwError(\"transaction failed\", Logger.errors.CALL_EXCEPTION, {\n transactionHash: tx.hash,\n transaction: tx,\n receipt: receipt\n });\n }\n return receipt;\n });\n return result;\n }\n sendTransaction(signedTransaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const hexTx = yield Promise.resolve(signedTransaction).then(t => hexlify(t));\n const tx = this.formatter.transaction(signedTransaction);\n if (tx.confirmations == null) {\n tx.confirmations = 0;\n }\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n try {\n const hash = yield this.perform(\"sendTransaction\", { signedTransaction: hexTx });\n return this._wrapTransaction(tx, hash, blockNumber);\n }\n catch (error) {\n error.transaction = tx;\n error.transactionHash = tx.hash;\n throw error;\n }\n });\n }\n _getTransactionRequest(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n const values = yield transaction;\n const tx = {};\n [\"from\", \"to\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? this._getAddress(v) : null));\n });\n [\"gasLimit\", \"gasPrice\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"value\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? BigNumber.from(v) : null));\n });\n [\"type\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => ((v != null) ? v : null));\n });\n if (values.accessList) {\n tx.accessList = this.formatter.accessList(values.accessList);\n }\n [\"data\"].forEach((key) => {\n if (values[key] == null) {\n return;\n }\n tx[key] = Promise.resolve(values[key]).then((v) => (v ? hexlify(v) : null));\n });\n return this.formatter.transactionRequest(yield resolveProperties(tx));\n });\n }\n _getFilter(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n filter = yield filter;\n const result = {};\n if (filter.address != null) {\n result.address = this._getAddress(filter.address);\n }\n [\"blockHash\", \"topics\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = filter[key];\n });\n [\"fromBlock\", \"toBlock\"].forEach((key) => {\n if (filter[key] == null) {\n return;\n }\n result[key] = this._getBlockTag(filter[key]);\n });\n return this.formatter.filter(yield resolveProperties(result));\n });\n }\n _call(transaction, blockTag, attempt) {\n return __awaiter(this, void 0, void 0, function* () {\n if (attempt >= MAX_CCIP_REDIRECTS) {\n logger.throwError(\"CCIP read exceeded maximum redirections\", Logger.errors.SERVER_ERROR, {\n redirects: attempt, transaction\n });\n }\n const txSender = transaction.to;\n const result = yield this.perform(\"call\", { transaction, blockTag });\n // CCIP Read request via OffchainLookup(address,string[],bytes,bytes4,bytes)\n if (attempt >= 0 && blockTag === \"latest\" && txSender != null && result.substring(0, 10) === \"0x556f1830\" && (hexDataLength(result) % 32 === 4)) {\n try {\n const data = hexDataSlice(result, 4);\n // Check the sender of the OffchainLookup matches the transaction\n const sender = hexDataSlice(data, 0, 32);\n if (!BigNumber.from(sender).eq(txSender)) {\n logger.throwError(\"CCIP Read sender did not match\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n // Read the URLs from the response\n const urls = [];\n const urlsOffset = BigNumber.from(hexDataSlice(data, 32, 64)).toNumber();\n const urlsLength = BigNumber.from(hexDataSlice(data, urlsOffset, urlsOffset + 32)).toNumber();\n const urlsData = hexDataSlice(data, urlsOffset + 32);\n for (let u = 0; u < urlsLength; u++) {\n const url = _parseString(urlsData, u * 32);\n if (url == null) {\n logger.throwError(\"CCIP Read contained corrupt URL string\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n urls.push(url);\n }\n // Get the CCIP calldata to forward\n const calldata = _parseBytes(data, 64);\n // Get the callbackSelector (bytes4)\n if (!BigNumber.from(hexDataSlice(data, 100, 128)).isZero()) {\n logger.throwError(\"CCIP Read callback selector included junk\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const callbackSelector = hexDataSlice(data, 96, 100);\n // Get the extra data to send back to the contract as context\n const extraData = _parseBytes(data, 128);\n const ccipResult = yield this.ccipReadFetch(transaction, calldata, urls);\n if (ccipResult == null) {\n logger.throwError(\"CCIP Read disabled or provided no URLs\", Logger.errors.CALL_EXCEPTION, {\n name: \"OffchainLookup\",\n signature: \"OffchainLookup(address,string[],bytes,bytes4,bytes)\",\n transaction, data: result\n });\n }\n const tx = {\n to: txSender,\n data: hexConcat([callbackSelector, encodeBytes([ccipResult, extraData])])\n };\n return this._call(tx, blockTag, attempt + 1);\n }\n catch (error) {\n if (error.code === Logger.errors.SERVER_ERROR) {\n throw error;\n }\n }\n }\n try {\n return hexlify(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"call\",\n params: { transaction, blockTag }, result, error\n });\n }\n });\n }\n call(transaction, blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const resolved = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction),\n blockTag: this._getBlockTag(blockTag),\n ccipReadEnabled: Promise.resolve(transaction.ccipReadEnabled)\n });\n return this._call(resolved.transaction, resolved.blockTag, resolved.ccipReadEnabled ? 0 : -1);\n });\n }\n estimateGas(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({\n transaction: this._getTransactionRequest(transaction)\n });\n const result = yield this.perform(\"estimateGas\", params);\n try {\n return BigNumber.from(result);\n }\n catch (error) {\n return logger.throwError(\"bad result from backend\", Logger.errors.SERVER_ERROR, {\n method: \"estimateGas\",\n params, result, error\n });\n }\n });\n }\n _getAddress(addressOrName) {\n return __awaiter(this, void 0, void 0, function* () {\n addressOrName = yield addressOrName;\n if (typeof (addressOrName) !== \"string\") {\n logger.throwArgumentError(\"invalid address or ENS name\", \"name\", addressOrName);\n }\n const address = yield this.resolveName(addressOrName);\n if (address == null) {\n logger.throwError(\"ENS name not configured\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: `resolveName(${JSON.stringify(addressOrName)})`\n });\n }\n return address;\n });\n }\n _getBlock(blockHashOrBlockTag, includeTransactions) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n blockHashOrBlockTag = yield blockHashOrBlockTag;\n // If blockTag is a number (not \"latest\", etc), this is the block number\n let blockNumber = -128;\n const params = {\n includeTransactions: !!includeTransactions\n };\n if (isHexString(blockHashOrBlockTag, 32)) {\n params.blockHash = blockHashOrBlockTag;\n }\n else {\n try {\n params.blockTag = yield this._getBlockTag(blockHashOrBlockTag);\n if (isHexString(params.blockTag)) {\n blockNumber = parseInt(params.blockTag.substring(2), 16);\n }\n }\n catch (error) {\n logger.throwArgumentError(\"invalid block hash or block tag\", \"blockHashOrBlockTag\", blockHashOrBlockTag);\n }\n }\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const block = yield this.perform(\"getBlock\", params);\n // Block was not found\n if (block == null) {\n // For blockhashes, if we didn't say it existed, that blockhash may\n // not exist. If we did see it though, perhaps from a log, we know\n // it exists, and this node is just not caught up yet.\n if (params.blockHash != null) {\n if (this._emitted[\"b:\" + params.blockHash] == null) {\n return null;\n }\n }\n // For block tags, if we are asking for a future block, we return null\n if (params.blockTag != null) {\n if (blockNumber > this._emitted.block) {\n return null;\n }\n }\n // Retry on the next block\n return undefined;\n }\n // Add transactions\n if (includeTransactions) {\n let blockNumber = null;\n for (let i = 0; i < block.transactions.length; i++) {\n const tx = block.transactions[i];\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n if (blockNumber == null) {\n blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n }\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n }\n const blockWithTxs = this.formatter.blockWithTransactions(block);\n blockWithTxs.transactions = blockWithTxs.transactions.map((tx) => this._wrapTransaction(tx));\n return blockWithTxs;\n }\n return this.formatter.block(block);\n }), { oncePoll: this });\n });\n }\n getBlock(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, false));\n }\n getBlockWithTransactions(blockHashOrBlockTag) {\n return (this._getBlock(blockHashOrBlockTag, true));\n }\n getTransaction(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransaction\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n const tx = this.formatter.transactionResponse(result);\n if (tx.blockNumber == null) {\n tx.confirmations = 0;\n }\n else if (tx.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - tx.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n tx.confirmations = confirmations;\n }\n return this._wrapTransaction(tx);\n }), { oncePoll: this });\n });\n }\n getTransactionReceipt(transactionHash) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n transactionHash = yield transactionHash;\n const params = { transactionHash: this.formatter.hash(transactionHash, true) };\n return poll(() => __awaiter(this, void 0, void 0, function* () {\n const result = yield this.perform(\"getTransactionReceipt\", params);\n if (result == null) {\n if (this._emitted[\"t:\" + transactionHash] == null) {\n return null;\n }\n return undefined;\n }\n // \"geth-etc\" returns receipts before they are ready\n if (result.blockHash == null) {\n return undefined;\n }\n const receipt = this.formatter.receipt(result);\n if (receipt.blockNumber == null) {\n receipt.confirmations = 0;\n }\n else if (receipt.confirmations == null) {\n const blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n // Add the confirmations using the fast block number (pessimistic)\n let confirmations = (blockNumber - receipt.blockNumber) + 1;\n if (confirmations <= 0) {\n confirmations = 1;\n }\n receipt.confirmations = confirmations;\n }\n return receipt;\n }), { oncePoll: this });\n });\n }\n getLogs(filter) {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n const params = yield resolveProperties({ filter: this._getFilter(filter) });\n const logs = yield this.perform(\"getLogs\", params);\n logs.forEach((log) => {\n if (log.removed == null) {\n log.removed = false;\n }\n });\n return Formatter.arrayOf(this.formatter.filterLog.bind(this.formatter))(logs);\n });\n }\n getEtherPrice() {\n return __awaiter(this, void 0, void 0, function* () {\n yield this.getNetwork();\n return this.perform(\"getEtherPrice\", {});\n });\n }\n _getBlockTag(blockTag) {\n return __awaiter(this, void 0, void 0, function* () {\n blockTag = yield blockTag;\n if (typeof (blockTag) === \"number\" && blockTag < 0) {\n if (blockTag % 1) {\n logger.throwArgumentError(\"invalid BlockTag\", \"blockTag\", blockTag);\n }\n let blockNumber = yield this._getInternalBlockNumber(100 + 2 * this.pollingInterval);\n blockNumber += blockTag;\n if (blockNumber < 0) {\n blockNumber = 0;\n }\n return this.formatter.blockTag(blockNumber);\n }\n return this.formatter.blockTag(blockTag);\n });\n }\n getResolver(name) {\n return __awaiter(this, void 0, void 0, function* () {\n let currentName = name;\n while (true) {\n if (currentName === \"\" || currentName === \".\") {\n return null;\n }\n // Optimization since the eth node cannot change and does\n // not have a wildcard resolver\n if (name !== \"eth\" && currentName === \"eth\") {\n return null;\n }\n // Check the current node for a resolver\n const addr = yield this._getResolver(currentName, \"getResolver\");\n // Found a resolver!\n if (addr != null) {\n const resolver = new Resolver(this, addr, name);\n // Legacy resolver found, using EIP-2544 so it isn't safe to use\n if (currentName !== name && !(yield resolver.supportsWildcard())) {\n return null;\n }\n return resolver;\n }\n // Get the parent node\n currentName = currentName.split(\".\").slice(1).join(\".\");\n }\n });\n }\n _getResolver(name, operation) {\n return __awaiter(this, void 0, void 0, function* () {\n if (operation == null) {\n operation = \"ENS\";\n }\n const network = yield this.getNetwork();\n // No ENS...\n if (!network.ensAddress) {\n logger.throwError(\"network does not support ENS\", Logger.errors.UNSUPPORTED_OPERATION, { operation, network: network.name });\n }\n try {\n // keccak256(\"resolver(bytes32)\")\n const addrData = yield this.call({\n to: network.ensAddress,\n data: (\"0x0178b8bf\" + namehash(name).substring(2))\n });\n return this.formatter.callAddress(addrData);\n }\n catch (error) {\n // ENS registry cannot throw errors on resolver(bytes32)\n }\n return null;\n });\n }\n resolveName(name) {\n return __awaiter(this, void 0, void 0, function* () {\n name = yield name;\n // If it is already an address, nothing to resolve\n try {\n return Promise.resolve(this.formatter.address(name));\n }\n catch (error) {\n // If is is a hexstring, the address is bad (See #694)\n if (isHexString(name)) {\n throw error;\n }\n }\n if (typeof (name) !== \"string\") {\n logger.throwArgumentError(\"invalid ENS name\", \"name\", name);\n }\n // Get the addr from the resolver\n const resolver = yield this.getResolver(name);\n if (!resolver) {\n return null;\n }\n return yield resolver.getAddress();\n });\n }\n lookupAddress(address) {\n return __awaiter(this, void 0, void 0, function* () {\n address = yield address;\n address = this.formatter.address(address);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddr = yield this._getResolver(node, \"lookupAddress\");\n if (resolverAddr == null) {\n return null;\n }\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddr,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n const addr = yield this.resolveName(name);\n if (addr != address) {\n return null;\n }\n return name;\n });\n }\n getAvatar(nameOrAddress) {\n return __awaiter(this, void 0, void 0, function* () {\n let resolver = null;\n if (isHexString(nameOrAddress)) {\n // Address; reverse lookup\n const address = this.formatter.address(nameOrAddress);\n const node = address.substring(2).toLowerCase() + \".addr.reverse\";\n const resolverAddress = yield this._getResolver(node, \"getAvatar\");\n if (!resolverAddress) {\n return null;\n }\n // Try resolving the avatar against the addr.reverse resolver\n resolver = new Resolver(this, resolverAddress, node);\n try {\n const avatar = yield resolver.getAvatar();\n if (avatar) {\n return avatar.url;\n }\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n }\n // Try getting the name and performing forward lookup; allowing wildcards\n try {\n // keccak(\"name(bytes32)\")\n const name = _parseString(yield this.call({\n to: resolverAddress,\n data: (\"0x691f3431\" + namehash(node).substring(2))\n }), 0);\n resolver = yield this.getResolver(name);\n }\n catch (error) {\n if (error.code !== Logger.errors.CALL_EXCEPTION) {\n throw error;\n }\n return null;\n }\n }\n else {\n // ENS name; forward lookup with wildcard\n resolver = yield this.getResolver(nameOrAddress);\n if (!resolver) {\n return null;\n }\n }\n const avatar = yield resolver.getAvatar();\n if (avatar == null) {\n return null;\n }\n return avatar.url;\n });\n }\n perform(method, params) {\n return logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n _startEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _stopEvent(event) {\n this.polling = (this._events.filter((e) => e.pollable()).length > 0);\n }\n _addEventListener(eventName, listener, once) {\n const event = new Event(getEventTag(eventName), listener, once);\n this._events.push(event);\n this._startEvent(event);\n return this;\n }\n on(eventName, listener) {\n return this._addEventListener(eventName, listener, false);\n }\n once(eventName, listener) {\n return this._addEventListener(eventName, listener, true);\n }\n emit(eventName, ...args) {\n let result = false;\n let stopped = [];\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n setTimeout(() => {\n event.listener.apply(this, args);\n }, 0);\n result = true;\n if (event.once) {\n stopped.push(event);\n return false;\n }\n return true;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return result;\n }\n listenerCount(eventName) {\n if (!eventName) {\n return this._events.length;\n }\n let eventTag = getEventTag(eventName);\n return this._events.filter((event) => {\n return (event.tag === eventTag);\n }).length;\n }\n listeners(eventName) {\n if (eventName == null) {\n return this._events.map((event) => event.listener);\n }\n let eventTag = getEventTag(eventName);\n return this._events\n .filter((event) => (event.tag === eventTag))\n .map((event) => event.listener);\n }\n off(eventName, listener) {\n if (listener == null) {\n return this.removeAllListeners(eventName);\n }\n const stopped = [];\n let found = false;\n let eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag || event.listener != listener) {\n return true;\n }\n if (found) {\n return true;\n }\n found = true;\n stopped.push(event);\n return false;\n });\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n removeAllListeners(eventName) {\n let stopped = [];\n if (eventName == null) {\n stopped = this._events;\n this._events = [];\n }\n else {\n const eventTag = getEventTag(eventName);\n this._events = this._events.filter((event) => {\n if (event.tag !== eventTag) {\n return true;\n }\n stopped.push(event);\n return false;\n });\n }\n stopped.forEach((event) => { this._stopEvent(event); });\n return this;\n }\n}\n//# sourceMappingURL=base-provider.js.map","\"use strict\";\nimport { getAddress, getContractAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexDataLength, hexDataSlice, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { AddressZero } from \"@ethersproject/constants\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { accessListify, parse as parseTransaction } from \"@ethersproject/transactions\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class Formatter {\n constructor() {\n this.formats = this.getDefaultFormats();\n }\n getDefaultFormats() {\n const formats = ({});\n const address = this.address.bind(this);\n const bigNumber = this.bigNumber.bind(this);\n const blockTag = this.blockTag.bind(this);\n const data = this.data.bind(this);\n const hash = this.hash.bind(this);\n const hex = this.hex.bind(this);\n const number = this.number.bind(this);\n const type = this.type.bind(this);\n const strictData = (v) => { return this.data(v, true); };\n formats.transaction = {\n hash: hash,\n type: type,\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n blockHash: Formatter.allowNull(hash, null),\n blockNumber: Formatter.allowNull(number, null),\n transactionIndex: Formatter.allowNull(number, null),\n confirmations: Formatter.allowNull(number, null),\n from: address,\n // either (gasPrice) or (maxPriorityFeePerGas + maxFeePerGas)\n // must be set\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n gasLimit: bigNumber,\n to: Formatter.allowNull(address, null),\n value: bigNumber,\n nonce: number,\n data: data,\n r: Formatter.allowNull(this.uint256),\n s: Formatter.allowNull(this.uint256),\n v: Formatter.allowNull(number),\n creates: Formatter.allowNull(address, null),\n raw: Formatter.allowNull(data),\n };\n formats.transactionRequest = {\n from: Formatter.allowNull(address),\n nonce: Formatter.allowNull(number),\n gasLimit: Formatter.allowNull(bigNumber),\n gasPrice: Formatter.allowNull(bigNumber),\n maxPriorityFeePerGas: Formatter.allowNull(bigNumber),\n maxFeePerGas: Formatter.allowNull(bigNumber),\n to: Formatter.allowNull(address),\n value: Formatter.allowNull(bigNumber),\n data: Formatter.allowNull(strictData),\n type: Formatter.allowNull(number),\n accessList: Formatter.allowNull(this.accessList.bind(this), null),\n };\n formats.receiptLog = {\n transactionIndex: number,\n blockNumber: number,\n transactionHash: hash,\n address: address,\n topics: Formatter.arrayOf(hash),\n data: data,\n logIndex: number,\n blockHash: hash,\n };\n formats.receipt = {\n to: Formatter.allowNull(this.address, null),\n from: Formatter.allowNull(this.address, null),\n contractAddress: Formatter.allowNull(address, null),\n transactionIndex: number,\n // should be allowNull(hash), but broken-EIP-658 support is handled in receipt\n root: Formatter.allowNull(hex),\n gasUsed: bigNumber,\n logsBloom: Formatter.allowNull(data),\n blockHash: hash,\n transactionHash: hash,\n logs: Formatter.arrayOf(this.receiptLog.bind(this)),\n blockNumber: number,\n confirmations: Formatter.allowNull(number, null),\n cumulativeGasUsed: bigNumber,\n effectiveGasPrice: Formatter.allowNull(bigNumber),\n status: Formatter.allowNull(number),\n type: type\n };\n formats.block = {\n hash: Formatter.allowNull(hash),\n parentHash: hash,\n number: number,\n timestamp: number,\n nonce: Formatter.allowNull(hex),\n difficulty: this.difficulty.bind(this),\n gasLimit: bigNumber,\n gasUsed: bigNumber,\n miner: Formatter.allowNull(address),\n extraData: data,\n transactions: Formatter.allowNull(Formatter.arrayOf(hash)),\n baseFeePerGas: Formatter.allowNull(bigNumber)\n };\n formats.blockWithTransactions = shallowCopy(formats.block);\n formats.blockWithTransactions.transactions = Formatter.allowNull(Formatter.arrayOf(this.transactionResponse.bind(this)));\n formats.filter = {\n fromBlock: Formatter.allowNull(blockTag, undefined),\n toBlock: Formatter.allowNull(blockTag, undefined),\n blockHash: Formatter.allowNull(hash, undefined),\n address: Formatter.allowNull(address, undefined),\n topics: Formatter.allowNull(this.topics.bind(this), undefined),\n };\n formats.filterLog = {\n blockNumber: Formatter.allowNull(number),\n blockHash: Formatter.allowNull(hash),\n transactionIndex: number,\n removed: Formatter.allowNull(this.boolean.bind(this)),\n address: address,\n data: Formatter.allowFalsish(data, \"0x\"),\n topics: Formatter.arrayOf(hash),\n transactionHash: hash,\n logIndex: number,\n };\n return formats;\n }\n accessList(accessList) {\n return accessListify(accessList || []);\n }\n // Requires a BigNumberish that is within the IEEE754 safe integer range; returns a number\n // Strict! Used on input.\n number(number) {\n if (number === \"0x\") {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n type(number) {\n if (number === \"0x\" || number == null) {\n return 0;\n }\n return BigNumber.from(number).toNumber();\n }\n // Strict! Used on input.\n bigNumber(value) {\n return BigNumber.from(value);\n }\n // Requires a boolean, \"true\" or \"false\"; returns a boolean\n boolean(value) {\n if (typeof (value) === \"boolean\") {\n return value;\n }\n if (typeof (value) === \"string\") {\n value = value.toLowerCase();\n if (value === \"true\") {\n return true;\n }\n if (value === \"false\") {\n return false;\n }\n }\n throw new Error(\"invalid boolean - \" + value);\n }\n hex(value, strict) {\n if (typeof (value) === \"string\") {\n if (!strict && value.substring(0, 2) !== \"0x\") {\n value = \"0x\" + value;\n }\n if (isHexString(value)) {\n return value.toLowerCase();\n }\n }\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n data(value, strict) {\n const result = this.hex(value, strict);\n if ((result.length % 2) !== 0) {\n throw new Error(\"invalid data; odd-length - \" + value);\n }\n return result;\n }\n // Requires an address\n // Strict! Used on input.\n address(value) {\n return getAddress(value);\n }\n callAddress(value) {\n if (!isHexString(value, 32)) {\n return null;\n }\n const address = getAddress(hexDataSlice(value, 12));\n return (address === AddressZero) ? null : address;\n }\n contractAddress(value) {\n return getContractAddress(value);\n }\n // Strict! Used on input.\n blockTag(blockTag) {\n if (blockTag == null) {\n return \"latest\";\n }\n if (blockTag === \"earliest\") {\n return \"0x0\";\n }\n switch (blockTag) {\n case \"earliest\": return \"0x0\";\n case \"latest\":\n case \"pending\":\n case \"safe\":\n case \"finalized\":\n return blockTag;\n }\n if (typeof (blockTag) === \"number\" || isHexString(blockTag)) {\n return hexValue(blockTag);\n }\n throw new Error(\"invalid blockTag\");\n }\n // Requires a hash, optionally requires 0x prefix; returns prefixed lowercase hash.\n hash(value, strict) {\n const result = this.hex(value, strict);\n if (hexDataLength(result) !== 32) {\n return logger.throwArgumentError(\"invalid hash\", \"value\", value);\n }\n return result;\n }\n // Returns the difficulty as a number, or if too large (i.e. PoA network) null\n difficulty(value) {\n if (value == null) {\n return null;\n }\n const v = BigNumber.from(value);\n try {\n return v.toNumber();\n }\n catch (error) { }\n return null;\n }\n uint256(value) {\n if (!isHexString(value)) {\n throw new Error(\"invalid uint256\");\n }\n return hexZeroPad(value, 32);\n }\n _block(value, format) {\n if (value.author != null && value.miner == null) {\n value.miner = value.author;\n }\n // The difficulty may need to come from _difficulty in recursed blocks\n const difficulty = (value._difficulty != null) ? value._difficulty : value.difficulty;\n const result = Formatter.check(format, value);\n result._difficulty = ((difficulty == null) ? null : BigNumber.from(difficulty));\n return result;\n }\n block(value) {\n return this._block(value, this.formats.block);\n }\n blockWithTransactions(value) {\n return this._block(value, this.formats.blockWithTransactions);\n }\n // Strict! Used on input.\n transactionRequest(value) {\n return Formatter.check(this.formats.transactionRequest, value);\n }\n transactionResponse(transaction) {\n // Rename gas to gasLimit\n if (transaction.gas != null && transaction.gasLimit == null) {\n transaction.gasLimit = transaction.gas;\n }\n // Some clients (TestRPC) do strange things like return 0x0 for the\n // 0 address; correct this to be a real address\n if (transaction.to && BigNumber.from(transaction.to).isZero()) {\n transaction.to = \"0x0000000000000000000000000000000000000000\";\n }\n // Rename input to data\n if (transaction.input != null && transaction.data == null) {\n transaction.data = transaction.input;\n }\n // If to and creates are empty, populate the creates from the transaction\n if (transaction.to == null && transaction.creates == null) {\n transaction.creates = this.contractAddress(transaction);\n }\n if ((transaction.type === 1 || transaction.type === 2) && transaction.accessList == null) {\n transaction.accessList = [];\n }\n const result = Formatter.check(this.formats.transaction, transaction);\n if (transaction.chainId != null) {\n let chainId = transaction.chainId;\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n result.chainId = chainId;\n }\n else {\n let chainId = transaction.networkId;\n // geth-etc returns chainId\n if (chainId == null && result.v == null) {\n chainId = transaction.chainId;\n }\n if (isHexString(chainId)) {\n chainId = BigNumber.from(chainId).toNumber();\n }\n if (typeof (chainId) !== \"number\" && result.v != null) {\n chainId = (result.v - 35) / 2;\n if (chainId < 0) {\n chainId = 0;\n }\n chainId = parseInt(chainId);\n }\n if (typeof (chainId) !== \"number\") {\n chainId = 0;\n }\n result.chainId = chainId;\n }\n // 0x0000... should actually be null\n if (result.blockHash && result.blockHash.replace(/0/g, \"\") === \"x\") {\n result.blockHash = null;\n }\n return result;\n }\n transaction(value) {\n return parseTransaction(value);\n }\n receiptLog(value) {\n return Formatter.check(this.formats.receiptLog, value);\n }\n receipt(value) {\n const result = Formatter.check(this.formats.receipt, value);\n // RSK incorrectly implemented EIP-658, so we munge things a bit here for it\n if (result.root != null) {\n if (result.root.length <= 4) {\n // Could be 0x00, 0x0, 0x01 or 0x1\n const value = BigNumber.from(result.root).toNumber();\n if (value === 0 || value === 1) {\n // Make sure if both are specified, they match\n if (result.status != null && (result.status !== value)) {\n logger.throwArgumentError(\"alt-root-status/status mismatch\", \"value\", { root: result.root, status: result.status });\n }\n result.status = value;\n delete result.root;\n }\n else {\n logger.throwArgumentError(\"invalid alt-root-status\", \"value.root\", result.root);\n }\n }\n else if (result.root.length !== 66) {\n // Must be a valid bytes32\n logger.throwArgumentError(\"invalid root hash\", \"value.root\", result.root);\n }\n }\n if (result.status != null) {\n result.byzantium = true;\n }\n return result;\n }\n topics(value) {\n if (Array.isArray(value)) {\n return value.map((v) => this.topics(v));\n }\n else if (value != null) {\n return this.hash(value, true);\n }\n return null;\n }\n filter(value) {\n return Formatter.check(this.formats.filter, value);\n }\n filterLog(value) {\n return Formatter.check(this.formats.filterLog, value);\n }\n static check(format, object) {\n const result = {};\n for (const key in format) {\n try {\n const value = format[key](object[key]);\n if (value !== undefined) {\n result[key] = value;\n }\n }\n catch (error) {\n error.checkKey = key;\n error.checkValue = object[key];\n throw error;\n }\n }\n return result;\n }\n // if value is null-ish, nullValue is returned\n static allowNull(format, nullValue) {\n return (function (value) {\n if (value == null) {\n return nullValue;\n }\n return format(value);\n });\n }\n // If value is false-ish, replaceValue is returned\n static allowFalsish(format, replaceValue) {\n return (function (value) {\n if (!value) {\n return replaceValue;\n }\n return format(value);\n });\n }\n // Requires an Array satisfying check\n static arrayOf(format) {\n return (function (array) {\n if (!Array.isArray(array)) {\n throw new Error(\"not an array\");\n }\n const result = [];\n array.forEach(function (value) {\n result.push(format(value));\n });\n return result;\n });\n }\n}\nexport function isCommunityResourcable(value) {\n return (value && typeof (value.isCommunityResource) === \"function\");\n}\nexport function isCommunityResource(value) {\n return (isCommunityResourcable(value) && value.isCommunityResource());\n}\n// Show the throttle message only once\nlet throttleMessage = false;\nexport function showThrottleMessage() {\n if (throttleMessage) {\n return;\n }\n throttleMessage = true;\n console.log(\"========= NOTICE =========\");\n console.log(\"Request-Rate Exceeded (this message will not be repeated)\");\n console.log(\"\");\n console.log(\"The default API keys for each service are provided as a highly-throttled,\");\n console.log(\"community resource for low-traffic projects and early prototyping.\");\n console.log(\"\");\n console.log(\"While your application will continue to function, we highly recommended\");\n console.log(\"signing up for your own API keys to improve performance, increase your\");\n console.log(\"request rate/limit and enable other perks, such as metrics and advanced APIs.\");\n console.log(\"\");\n console.log(\"For more details: https:/\\/docs.ethers.io/api-keys/\");\n console.log(\"==========================\");\n}\n//# sourceMappingURL=formatter.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nlet WS = null;\ntry {\n WS = WebSocket;\n if (WS == null) {\n throw new Error(\"inject please\");\n }\n}\ncatch (error) {\n const logger = new Logger(version);\n WS = function () {\n logger.throwError(\"WebSockets not supported in this environment\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"new WebSocket()\"\n });\n };\n}\n//export default WS;\n//module.exports = WS;\nexport { WS as WebSocket };\n//# sourceMappingURL=ws.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nimport { WebSocket } from \"./ws\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n/**\n * Notes:\n *\n * This provider differs a bit from the polling providers. One main\n * difference is how it handles consistency. The polling providers\n * will stall responses to ensure a consistent state, while this\n * WebSocket provider assumes the connected backend will manage this.\n *\n * For example, if a polling provider emits an event which indicates\n * the event occurred in blockhash XXX, a call to fetch that block by\n * its hash XXX, if not present will retry until it is present. This\n * can occur when querying a pool of nodes that are mildly out of sync\n * with each other.\n */\nlet NextId = 1;\n// For more info about the Real-time Event API see:\n// https://geth.ethereum.org/docs/rpc/pubsub\nexport class WebSocketProvider extends JsonRpcProvider {\n constructor(url, network) {\n // This will be added in the future; please open an issue to expedite\n if (network === \"any\") {\n logger.throwError(\"WebSocketProvider does not support 'any' network yet\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"network:any\"\n });\n }\n if (typeof (url) === \"string\") {\n super(url, network);\n }\n else {\n super(\"_websocket\", network);\n }\n this._pollingInterval = -1;\n this._wsReady = false;\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"_websocket\", new WebSocket(this.connection.url));\n }\n else {\n defineReadOnly(this, \"_websocket\", url);\n }\n defineReadOnly(this, \"_requests\", {});\n defineReadOnly(this, \"_subs\", {});\n defineReadOnly(this, \"_subIds\", {});\n defineReadOnly(this, \"_detectNetwork\", super.detectNetwork());\n // Stall sending requests until the socket is open...\n this.websocket.onopen = () => {\n this._wsReady = true;\n Object.keys(this._requests).forEach((id) => {\n this.websocket.send(this._requests[id].payload);\n });\n };\n this.websocket.onmessage = (messageEvent) => {\n const data = messageEvent.data;\n const result = JSON.parse(data);\n if (result.id != null) {\n const id = String(result.id);\n const request = this._requests[id];\n delete this._requests[id];\n if (result.result !== undefined) {\n request.callback(null, result.result);\n this.emit(\"debug\", {\n action: \"response\",\n request: JSON.parse(request.payload),\n response: result.result,\n provider: this\n });\n }\n else {\n let error = null;\n if (result.error) {\n error = new Error(result.error.message || \"unknown error\");\n defineReadOnly(error, \"code\", result.error.code || null);\n defineReadOnly(error, \"response\", data);\n }\n else {\n error = new Error(\"unknown error\");\n }\n request.callback(error, undefined);\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: JSON.parse(request.payload),\n provider: this\n });\n }\n }\n else if (result.method === \"eth_subscription\") {\n // Subscription...\n const sub = this._subs[result.params.subscription];\n if (sub) {\n //this.emit.apply(this, );\n sub.processFunc(result.params.result);\n }\n }\n else {\n console.warn(\"this should not happen\");\n }\n };\n // This Provider does not actually poll, but we want to trigger\n // poll events for things that depend on them (like stalling for\n // block and transaction lookups)\n const fauxPoll = setInterval(() => {\n this.emit(\"poll\");\n }, 1000);\n if (fauxPoll.unref) {\n fauxPoll.unref();\n }\n }\n // Cannot narrow the type of _websocket, as that is not backwards compatible\n // so we add a getter and let the WebSocket be a public API.\n get websocket() { return this._websocket; }\n detectNetwork() {\n return this._detectNetwork;\n }\n get pollingInterval() {\n return 0;\n }\n resetEventsBlock(blockNumber) {\n logger.throwError(\"cannot reset events block on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"resetEventBlock\"\n });\n }\n set pollingInterval(value) {\n logger.throwError(\"cannot set polling interval on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPollingInterval\"\n });\n }\n poll() {\n return __awaiter(this, void 0, void 0, function* () {\n return null;\n });\n }\n set polling(value) {\n if (!value) {\n return;\n }\n logger.throwError(\"cannot set polling on WebSocketProvider\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"setPolling\"\n });\n }\n send(method, params) {\n const rid = NextId++;\n return new Promise((resolve, reject) => {\n function callback(error, result) {\n if (error) {\n return reject(error);\n }\n return resolve(result);\n }\n const payload = JSON.stringify({\n method: method,\n params: params,\n id: rid,\n jsonrpc: \"2.0\"\n });\n this.emit(\"debug\", {\n action: \"request\",\n request: JSON.parse(payload),\n provider: this\n });\n this._requests[String(rid)] = { callback, payload };\n if (this._wsReady) {\n this.websocket.send(payload);\n }\n });\n }\n static defaultUrl() {\n return \"ws:/\\/localhost:8546\";\n }\n _subscribe(tag, param, processFunc) {\n return __awaiter(this, void 0, void 0, function* () {\n let subIdPromise = this._subIds[tag];\n if (subIdPromise == null) {\n subIdPromise = Promise.all(param).then((param) => {\n return this.send(\"eth_subscribe\", param);\n });\n this._subIds[tag] = subIdPromise;\n }\n const subId = yield subIdPromise;\n this._subs[subId] = { tag, processFunc };\n });\n }\n _startEvent(event) {\n switch (event.type) {\n case \"block\":\n this._subscribe(\"block\", [\"newHeads\"], (result) => {\n const blockNumber = BigNumber.from(result.number).toNumber();\n this._emitted.block = blockNumber;\n this.emit(\"block\", blockNumber);\n });\n break;\n case \"pending\":\n this._subscribe(\"pending\", [\"newPendingTransactions\"], (result) => {\n this.emit(\"pending\", result);\n });\n break;\n case \"filter\":\n this._subscribe(event.tag, [\"logs\", this._getFilter(event.filter)], (result) => {\n if (result.removed == null) {\n result.removed = false;\n }\n this.emit(event.filter, this.formatter.filterLog(result));\n });\n break;\n case \"tx\": {\n const emitReceipt = (event) => {\n const hash = event.hash;\n this.getTransactionReceipt(hash).then((receipt) => {\n if (!receipt) {\n return;\n }\n this.emit(hash, receipt);\n });\n };\n // In case it is already mined\n emitReceipt(event);\n // To keep things simple, we start up a single newHeads subscription\n // to keep an eye out for transactions we are watching for.\n // Starting a subscription for an event (i.e. \"tx\") that is already\n // running is (basically) a nop.\n this._subscribe(\"tx\", [\"newHeads\"], (result) => {\n this._events.filter((e) => (e.type === \"tx\")).forEach(emitReceipt);\n });\n break;\n }\n // Nothing is needed\n case \"debug\":\n case \"poll\":\n case \"willPoll\":\n case \"didPoll\":\n case \"error\":\n break;\n default:\n console.log(\"unhandled:\", event);\n break;\n }\n }\n _stopEvent(event) {\n let tag = event.tag;\n if (event.type === \"tx\") {\n // There are remaining transaction event listeners\n if (this._events.filter((e) => (e.type === \"tx\")).length) {\n return;\n }\n tag = \"tx\";\n }\n else if (this.listenerCount(event.event)) {\n // There are remaining event listeners\n return;\n }\n const subId = this._subIds[tag];\n if (!subId) {\n return;\n }\n delete this._subIds[tag];\n subId.then((subId) => {\n if (!this._subs[subId]) {\n return;\n }\n delete this._subs[subId];\n this.send(\"eth_unsubscribe\", [subId]);\n });\n }\n destroy() {\n return __awaiter(this, void 0, void 0, function* () {\n // Wait until we have connected before trying to disconnect\n if (this.websocket.readyState === WebSocket.CONNECTING) {\n yield (new Promise((resolve) => {\n this.websocket.onopen = function () {\n resolve(true);\n };\n this.websocket.onerror = function () {\n resolve(false);\n };\n }));\n }\n // Hangup\n // See: https://developer.mozilla.org/en-US/docs/Web/API/CloseEvent#Status_codes\n this.websocket.close(1000);\n });\n }\n}\n//# sourceMappingURL=websocket-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\n// This key was provided to ethers.js by Alchemy to be used by the\n// default provider, but it is recommended that for your own\n// production environments, that you acquire your own API key at:\n// https://dashboard.alchemyapi.io\nconst defaultApiKey = \"_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC\";\nexport class AlchemyWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new AlchemyProvider(network, apiKey);\n const url = provider.connection.url.replace(/^http/i, \"ws\")\n .replace(\".alchemyapi.\", \".ws.alchemyapi.\");\n super(url, provider.network);\n defineReadOnly(this, \"apiKey\", provider.apiKey);\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\nexport class AlchemyProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new AlchemyWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"eth-mainnet.alchemyapi.io/v2/\";\n break;\n case \"goerli\":\n host = \"eth-goerli.g.alchemy.com/v2/\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.g.alchemy.com/v2/\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.g.alchemy.com/v2/\";\n break;\n case \"arbitrum\":\n host = \"arb-mainnet.g.alchemy.com/v2/\";\n break;\n case \"arbitrum-goerli\":\n host = \"arb-goerli.g.alchemy.com/v2/\";\n break;\n case \"optimism\":\n host = \"opt-mainnet.g.alchemy.com/v2/\";\n break;\n case \"optimism-goerli\":\n host = \"opt-goerli.g.alchemy.com/v2/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n }\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n}\n//# sourceMappingURL=alchemy-provider.js.map","import { showThrottleMessage } from \"./formatter\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst defaultApiKey = \"9f7d929b018cdffb338517efa06f58359e86ff1ffd350bc889738523659e7972\";\nfunction getHost(name) {\n switch (name) {\n case \"homestead\":\n return \"rpc.ankr.com/eth/\";\n case \"ropsten\":\n return \"rpc.ankr.com/eth_ropsten/\";\n case \"rinkeby\":\n return \"rpc.ankr.com/eth_rinkeby/\";\n case \"goerli\":\n return \"rpc.ankr.com/eth_goerli/\";\n case \"matic\":\n return \"rpc.ankr.com/polygon/\";\n case \"arbitrum\":\n return \"rpc.ankr.com/arbitrum/\";\n }\n return logger.throwArgumentError(\"unsupported network\", \"name\", name);\n}\nexport class AnkrProvider extends UrlJsonRpcProvider {\n isCommunityResource() {\n return (this.apiKey === defaultApiKey);\n }\n static getApiKey(apiKey) {\n if (apiKey == null) {\n return defaultApiKey;\n }\n return apiKey;\n }\n static getUrl(network, apiKey) {\n if (apiKey == null) {\n apiKey = defaultApiKey;\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\\/\" + getHost(network.name) + apiKey),\n throttleCallback: (attempt, url) => {\n if (apiKey.apiKey === defaultApiKey) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n}\n//# sourceMappingURL=ankr-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport class CloudflareProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey != null) {\n logger.throwArgumentError(\"apiKey not supported for cloudflare\", \"apiKey\", apiKey);\n }\n return null;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://cloudflare-eth.com/\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return host;\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n // The Cloudflare provider does not support eth_blockNumber,\n // so we get the latest block and pull it from that\n if (method === \"getBlockNumber\") {\n const block = yield _super.perform.call(this, \"getBlock\", { blockTag: \"latest\" });\n return block.number;\n }\n return _super.perform.call(this, method, params);\n });\n }\n}\n//# sourceMappingURL=cloudflare-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { hexlify, hexValue, isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\n// The transaction has already been sanitized by the calls in Provider\nfunction getTransactionPostData(transaction) {\n const result = {};\n for (let key in transaction) {\n if (transaction[key] == null) {\n continue;\n }\n let value = transaction[key];\n if (key === \"type\" && value === 0) {\n continue;\n }\n // Quantity-types require no leading zero, unless 0\n if ({ type: true, gasLimit: true, gasPrice: true, maxFeePerGs: true, maxPriorityFeePerGas: true, nonce: true, value: true }[key]) {\n value = hexValue(hexlify(value));\n }\n else if (key === \"accessList\") {\n value = \"[\" + accessListify(value).map((set) => {\n return `{address:\"${set.address}\",storageKeys:[\"${set.storageKeys.join('\",\"')}\"]}`;\n }).join(\",\") + \"]\";\n }\n else {\n value = hexlify(value);\n }\n result[key] = value;\n }\n return result;\n}\nfunction getResult(result) {\n // getLogs, getHistory have weird success responses\n if (result.status == 0 && (result.message === \"No records found\" || result.message === \"No transactions found\")) {\n return result.result;\n }\n if (result.status != 1 || typeof (result.message) !== \"string\" || !result.message.match(/^OK/)) {\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n if ((result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n error.throttleRetry = true;\n }\n throw error;\n }\n return result.result;\n}\nfunction getJsonResult(result) {\n // This response indicates we are being throttled\n if (result && result.status == 0 && result.message == \"NOTOK\" && (result.result || \"\").toLowerCase().indexOf(\"rate limit\") >= 0) {\n const error = new Error(\"throttled response\");\n error.result = JSON.stringify(result);\n error.throttleRetry = true;\n throw error;\n }\n if (result.jsonrpc != \"2.0\") {\n // @TODO: not any\n const error = new Error(\"invalid response\");\n error.result = JSON.stringify(result);\n throw error;\n }\n if (result.error) {\n // @TODO: not any\n const error = new Error(result.error.message || \"unknown error\");\n if (result.error.code) {\n error.code = result.error.code;\n }\n if (result.error.data) {\n error.data = result.error.data;\n }\n throw error;\n }\n return result.result;\n}\n// The blockTag was normalized as a string by the Provider pre-perform operations\nfunction checkLogTag(blockTag) {\n if (blockTag === \"pending\") {\n throw new Error(\"pending not supported\");\n }\n if (blockTag === \"latest\") {\n return blockTag;\n }\n return parseInt(blockTag.substring(2), 16);\n}\nfunction checkError(method, error, transaction) {\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\" && error.code === Logger.errors.SERVER_ERROR) {\n const e = error.error;\n // Etherscan keeps changing their string\n if (e && (e.message.match(/reverted/i) || e.message.match(/VM execution error/i))) {\n // Etherscan prefixes the data like \"Reverted 0x1234\"\n let data = e.data;\n if (data) {\n data = \"0x\" + data.replace(/^.*0x/i, \"\");\n }\n if (isHexString(data)) {\n return data;\n }\n logger.throwError(\"missing revert data in call exception\", Logger.errors.CALL_EXCEPTION, {\n error, data: \"0x\"\n });\n }\n }\n // Get the message from any nested error structure\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR) {\n if (error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n }\n message = (message || \"\").toLowerCase();\n // \"Insufficient funds. The account you tried to send transaction from does not have enough funds. Required 21464000000000 and got: 0\"\n if (message.match(/insufficient funds/)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"Transaction with the same hash was already imported.\"\n if (message.match(/same hash was already imported|transaction nonce is too low|nonce too low/)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"Transaction gas price is too low. There is another transaction with same nonce in the queue. Try increasing the gas price or incrementing the nonce.\"\n if (message.match(/another transaction with same nonce/)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n if (message.match(/execution failed due to an exception|execution reverted/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nexport class EtherscanProvider extends BaseProvider {\n constructor(network, apiKey) {\n super(network);\n defineReadOnly(this, \"baseUrl\", this.getBaseUrl());\n defineReadOnly(this, \"apiKey\", apiKey || null);\n }\n getBaseUrl() {\n switch (this.network ? this.network.name : \"invalid\") {\n case \"homestead\":\n return \"https:/\\/api.etherscan.io\";\n case \"goerli\":\n return \"https:/\\/api-goerli.etherscan.io\";\n case \"sepolia\":\n return \"https:/\\/api-sepolia.etherscan.io\";\n case \"matic\":\n return \"https:/\\/api.polygonscan.com\";\n case \"maticmum\":\n return \"https:/\\/api-testnet.polygonscan.com\";\n case \"arbitrum\":\n return \"https:/\\/api.arbiscan.io\";\n case \"arbitrum-goerli\":\n return \"https:/\\/api-goerli.arbiscan.io\";\n case \"optimism\":\n return \"https:/\\/api-optimistic.etherscan.io\";\n case \"optimism-goerli\":\n return \"https:/\\/api-goerli-optimistic.etherscan.io\";\n default:\n }\n return logger.throwArgumentError(\"unsupported network\", \"network\", this.network.name);\n }\n getUrl(module, params) {\n const query = Object.keys(params).reduce((accum, key) => {\n const value = params[key];\n if (value != null) {\n accum += `&${key}=${value}`;\n }\n return accum;\n }, \"\");\n const apiKey = ((this.apiKey) ? `&apikey=${this.apiKey}` : \"\");\n return `${this.baseUrl}/api?module=${module}${query}${apiKey}`;\n }\n getPostUrl() {\n return `${this.baseUrl}/api`;\n }\n getPostData(module, params) {\n params.module = module;\n params.apikey = this.apiKey;\n return params;\n }\n fetch(module, params, post) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = (post ? this.getPostUrl() : this.getUrl(module, params));\n const payload = (post ? this.getPostData(module, params) : null);\n const procFunc = (module === \"proxy\") ? getJsonResult : getResult;\n this.emit(\"debug\", {\n action: \"request\",\n request: url,\n provider: this\n });\n const connection = {\n url: url,\n throttleSlotInterval: 1000,\n throttleCallback: (attempt, url) => {\n if (this.isCommunityResource()) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n let payloadStr = null;\n if (payload) {\n connection.headers = { \"content-type\": \"application/x-www-form-urlencoded; charset=UTF-8\" };\n payloadStr = Object.keys(payload).map((key) => {\n return `${key}=${payload[key]}`;\n }).join(\"&\");\n }\n const result = yield fetchJson(connection, payloadStr, procFunc || getJsonResult);\n this.emit(\"debug\", {\n action: \"response\",\n request: url,\n response: deepCopy(result),\n provider: this\n });\n return result;\n });\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n return this.network;\n });\n }\n perform(method, params) {\n const _super = Object.create(null, {\n perform: { get: () => super.perform }\n });\n return __awaiter(this, void 0, void 0, function* () {\n switch (method) {\n case \"getBlockNumber\":\n return this.fetch(\"proxy\", { action: \"eth_blockNumber\" });\n case \"getGasPrice\":\n return this.fetch(\"proxy\", { action: \"eth_gasPrice\" });\n case \"getBalance\":\n // Returns base-10 result\n return this.fetch(\"account\", {\n action: \"balance\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getTransactionCount\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionCount\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getCode\":\n return this.fetch(\"proxy\", {\n action: \"eth_getCode\",\n address: params.address,\n tag: params.blockTag\n });\n case \"getStorageAt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getStorageAt\",\n address: params.address,\n position: params.position,\n tag: params.blockTag\n });\n case \"sendTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_sendRawTransaction\",\n hex: params.signedTransaction\n }, true).catch((error) => {\n return checkError(\"sendTransaction\", error, params.signedTransaction);\n });\n case \"getBlock\":\n if (params.blockTag) {\n return this.fetch(\"proxy\", {\n action: \"eth_getBlockByNumber\",\n tag: params.blockTag,\n boolean: (params.includeTransactions ? \"true\" : \"false\")\n });\n }\n throw new Error(\"getBlock by blockHash not implemented\");\n case \"getTransaction\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionByHash\",\n txhash: params.transactionHash\n });\n case \"getTransactionReceipt\":\n return this.fetch(\"proxy\", {\n action: \"eth_getTransactionReceipt\",\n txhash: params.transactionHash\n });\n case \"call\": {\n if (params.blockTag !== \"latest\") {\n throw new Error(\"EtherscanProvider does not support blockTag for call\");\n }\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_call\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"call\", error, params.transaction);\n }\n }\n case \"estimateGas\": {\n const postData = getTransactionPostData(params.transaction);\n postData.module = \"proxy\";\n postData.action = \"eth_estimateGas\";\n try {\n return yield this.fetch(\"proxy\", postData, true);\n }\n catch (error) {\n return checkError(\"estimateGas\", error, params.transaction);\n }\n }\n case \"getLogs\": {\n const args = { action: \"getLogs\" };\n if (params.filter.fromBlock) {\n args.fromBlock = checkLogTag(params.filter.fromBlock);\n }\n if (params.filter.toBlock) {\n args.toBlock = checkLogTag(params.filter.toBlock);\n }\n if (params.filter.address) {\n args.address = params.filter.address;\n }\n // @TODO: We can handle slightly more complicated logs using the logs API\n if (params.filter.topics && params.filter.topics.length > 0) {\n if (params.filter.topics.length > 1) {\n logger.throwError(\"unsupported topic count\", Logger.errors.UNSUPPORTED_OPERATION, { topics: params.filter.topics });\n }\n if (params.filter.topics.length === 1) {\n const topic0 = params.filter.topics[0];\n if (typeof (topic0) !== \"string\" || topic0.length !== 66) {\n logger.throwError(\"unsupported topic format\", Logger.errors.UNSUPPORTED_OPERATION, { topic0: topic0 });\n }\n args.topic0 = topic0;\n }\n }\n const logs = yield this.fetch(\"logs\", args);\n // Cache txHash => blockHash\n let blocks = {};\n // Add any missing blockHash to the logs\n for (let i = 0; i < logs.length; i++) {\n const log = logs[i];\n if (log.blockHash != null) {\n continue;\n }\n if (blocks[log.blockNumber] == null) {\n const block = yield this.getBlock(log.blockNumber);\n if (block) {\n blocks[log.blockNumber] = block.hash;\n }\n }\n log.blockHash = blocks[log.blockNumber];\n }\n return logs;\n }\n case \"getEtherPrice\":\n if (this.network.name !== \"homestead\") {\n return 0.0;\n }\n return parseFloat((yield this.fetch(\"stats\", { action: \"ethprice\" })).ethusd);\n default:\n break;\n }\n return _super.perform.call(this, method, params);\n });\n }\n // Note: The `page` page parameter only allows pagination within the\n // 10,000 window available without a page and offset parameter\n // Error: Result window is too large, PageNo x Offset size must\n // be less than or equal to 10000\n getHistory(addressOrName, startBlock, endBlock) {\n return __awaiter(this, void 0, void 0, function* () {\n const params = {\n action: \"txlist\",\n address: (yield this.resolveName(addressOrName)),\n startblock: ((startBlock == null) ? 0 : startBlock),\n endblock: ((endBlock == null) ? 99999999 : endBlock),\n sort: \"asc\"\n };\n const result = yield this.fetch(\"account\", params);\n return result.map((tx) => {\n [\"contractAddress\", \"to\"].forEach(function (key) {\n if (tx[key] == \"\") {\n delete tx[key];\n }\n });\n if (tx.creates == null && tx.contractAddress != null) {\n tx.creates = tx.contractAddress;\n }\n const item = this.formatter.transactionResponse(tx);\n if (tx.timeStamp) {\n item.timestamp = parseInt(tx.timeStamp);\n }\n return item;\n });\n });\n }\n isCommunityResource() {\n return (this.apiKey == null);\n }\n}\n//# sourceMappingURL=etherscan-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { isHexString } from \"@ethersproject/bytes\";\nimport { deepCopy, defineReadOnly, shallowCopy } from \"@ethersproject/properties\";\nimport { shuffled } from \"@ethersproject/random\";\nimport { poll } from \"@ethersproject/web\";\nimport { BaseProvider } from \"./base-provider\";\nimport { isCommunityResource } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction now() { return (new Date()).getTime(); }\n// Returns to network as long as all agree, or null if any is null.\n// Throws an error if any two networks do not match.\nfunction checkNetworks(networks) {\n let result = null;\n for (let i = 0; i < networks.length; i++) {\n const network = networks[i];\n // Null! We do not know our network; bail.\n if (network == null) {\n return null;\n }\n if (result) {\n // Make sure the network matches the previous networks\n if (!(result.name === network.name && result.chainId === network.chainId &&\n ((result.ensAddress === network.ensAddress) || (result.ensAddress == null && network.ensAddress == null)))) {\n logger.throwArgumentError(\"provider mismatch\", \"networks\", networks);\n }\n }\n else {\n result = network;\n }\n }\n return result;\n}\nfunction median(values, maxDelta) {\n values = values.slice().sort();\n const middle = Math.floor(values.length / 2);\n // Odd length; take the middle\n if (values.length % 2) {\n return values[middle];\n }\n // Even length; take the average of the two middle\n const a = values[middle - 1], b = values[middle];\n if (maxDelta != null && Math.abs(a - b) > maxDelta) {\n return null;\n }\n return (a + b) / 2;\n}\nfunction serialize(value) {\n if (value === null) {\n return \"null\";\n }\n else if (typeof (value) === \"number\" || typeof (value) === \"boolean\") {\n return JSON.stringify(value);\n }\n else if (typeof (value) === \"string\") {\n return value;\n }\n else if (BigNumber.isBigNumber(value)) {\n return value.toString();\n }\n else if (Array.isArray(value)) {\n return JSON.stringify(value.map((i) => serialize(i)));\n }\n else if (typeof (value) === \"object\") {\n const keys = Object.keys(value);\n keys.sort();\n return \"{\" + keys.map((key) => {\n let v = value[key];\n if (typeof (v) === \"function\") {\n v = \"[function]\";\n }\n else {\n v = serialize(v);\n }\n return JSON.stringify(key) + \":\" + v;\n }).join(\",\") + \"}\";\n }\n throw new Error(\"unknown value type: \" + typeof (value));\n}\n// Next request ID to use for emitting debug info\nlet nextRid = 1;\n;\nfunction stall(duration) {\n let cancel = null;\n let timer = null;\n let promise = (new Promise((resolve) => {\n cancel = function () {\n if (timer) {\n clearTimeout(timer);\n timer = null;\n }\n resolve();\n };\n timer = setTimeout(cancel, duration);\n }));\n const wait = (func) => {\n promise = promise.then(func);\n return promise;\n };\n function getPromise() {\n return promise;\n }\n return { cancel, getPromise, wait };\n}\nconst ForwardErrors = [\n Logger.errors.CALL_EXCEPTION,\n Logger.errors.INSUFFICIENT_FUNDS,\n Logger.errors.NONCE_EXPIRED,\n Logger.errors.REPLACEMENT_UNDERPRICED,\n Logger.errors.UNPREDICTABLE_GAS_LIMIT\n];\nconst ForwardProperties = [\n \"address\",\n \"args\",\n \"errorArgs\",\n \"errorSignature\",\n \"method\",\n \"transaction\",\n];\n;\nfunction exposeDebugConfig(config, now) {\n const result = {\n weight: config.weight\n };\n Object.defineProperty(result, \"provider\", { get: () => config.provider });\n if (config.start) {\n result.start = config.start;\n }\n if (now) {\n result.duration = (now - config.start);\n }\n if (config.done) {\n if (config.error) {\n result.error = config.error;\n }\n else {\n result.result = config.result || null;\n }\n }\n return result;\n}\nfunction normalizedTally(normalize, quorum) {\n return function (configs) {\n // Count the votes for each result\n const tally = {};\n configs.forEach((c) => {\n const value = normalize(c.result);\n if (!tally[value]) {\n tally[value] = { count: 0, result: c.result };\n }\n tally[value].count++;\n });\n // Check for a quorum on any given result\n const keys = Object.keys(tally);\n for (let i = 0; i < keys.length; i++) {\n const check = tally[keys[i]];\n if (check.count >= quorum) {\n return check.result;\n }\n }\n // No quroum\n return undefined;\n };\n}\nfunction getProcessFunc(provider, method, params) {\n let normalize = serialize;\n switch (method) {\n case \"getBlockNumber\":\n // Return the median value, unless there is (median + 1) is also\n // present, in which case that is probably true and the median\n // is going to be stale soon. In the event of a malicious node,\n // the lie will be true soon enough.\n return function (configs) {\n const values = configs.map((c) => c.result);\n // Get the median block number\n let blockNumber = median(configs.map((c) => c.result), 2);\n if (blockNumber == null) {\n return undefined;\n }\n blockNumber = Math.ceil(blockNumber);\n // If the next block height is present, its prolly safe to use\n if (values.indexOf(blockNumber + 1) >= 0) {\n blockNumber++;\n }\n // Don't ever roll back the blockNumber\n if (blockNumber >= provider._highestBlockNumber) {\n provider._highestBlockNumber = blockNumber;\n }\n return provider._highestBlockNumber;\n };\n case \"getGasPrice\":\n // Return the middle (round index up) value, similar to median\n // but do not average even entries and choose the higher.\n // Malicious actors must compromise 50% of the nodes to lie.\n return function (configs) {\n const values = configs.map((c) => c.result);\n values.sort();\n return values[Math.floor(values.length / 2)];\n };\n case \"getEtherPrice\":\n // Returns the median price. Malicious actors must compromise at\n // least 50% of the nodes to lie (in a meaningful way).\n return function (configs) {\n return median(configs.map((c) => c.result));\n };\n // No additional normalizing required; serialize is enough\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n case \"getStorageAt\":\n case \"call\":\n case \"estimateGas\":\n case \"getLogs\":\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n normalize = function (tx) {\n if (tx == null) {\n return null;\n }\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return serialize(tx);\n };\n break;\n // We drop the confirmations from transactions as it is approximate\n case \"getBlock\":\n // We drop the confirmations from transactions as it is approximate\n if (params.includeTransactions) {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n block = shallowCopy(block);\n block.transactions = block.transactions.map((tx) => {\n tx = shallowCopy(tx);\n tx.confirmations = -1;\n return tx;\n });\n return serialize(block);\n };\n }\n else {\n normalize = function (block) {\n if (block == null) {\n return null;\n }\n return serialize(block);\n };\n }\n break;\n default:\n throw new Error(\"unknown method: \" + method);\n }\n // Return the result if and only if the expected quorum is\n // satisfied and agreed upon for the final result.\n return normalizedTally(normalize, provider.quorum);\n}\n// If we are doing a blockTag query, we need to make sure the backend is\n// caught up to the FallbackProvider, before sending a request to it.\nfunction waitForSync(config, blockNumber) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = (config.provider);\n if ((provider.blockNumber != null && provider.blockNumber >= blockNumber) || blockNumber === -1) {\n return provider;\n }\n return poll(() => {\n return new Promise((resolve, reject) => {\n setTimeout(function () {\n // We are synced\n if (provider.blockNumber >= blockNumber) {\n return resolve(provider);\n }\n // We're done; just quit\n if (config.cancelled) {\n return resolve(null);\n }\n // Try again, next block\n return resolve(undefined);\n }, 0);\n });\n }, { oncePoll: provider });\n });\n}\nfunction getRunner(config, currentBlockNumber, method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n let provider = config.provider;\n switch (method) {\n case \"getBlockNumber\":\n case \"getGasPrice\":\n return provider[method]();\n case \"getEtherPrice\":\n if (provider.getEtherPrice) {\n return provider.getEtherPrice();\n }\n break;\n case \"getBalance\":\n case \"getTransactionCount\":\n case \"getCode\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[method](params.address, params.blockTag || \"latest\");\n case \"getStorageAt\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getStorageAt(params.address, params.position, params.blockTag || \"latest\");\n case \"getBlock\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider[(params.includeTransactions ? \"getBlockWithTransactions\" : \"getBlock\")](params.blockTag || params.blockHash);\n case \"call\":\n case \"estimateGas\":\n if (params.blockTag && isHexString(params.blockTag)) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n if (method === \"call\" && params.blockTag) {\n return provider[method](params.transaction, params.blockTag);\n }\n return provider[method](params.transaction);\n case \"getTransaction\":\n case \"getTransactionReceipt\":\n return provider[method](params.transactionHash);\n case \"getLogs\": {\n let filter = params.filter;\n if ((filter.fromBlock && isHexString(filter.fromBlock)) || (filter.toBlock && isHexString(filter.toBlock))) {\n provider = yield waitForSync(config, currentBlockNumber);\n }\n return provider.getLogs(filter);\n }\n }\n return logger.throwError(\"unknown method error\", Logger.errors.UNKNOWN_ERROR, {\n method: method,\n params: params\n });\n });\n}\nexport class FallbackProvider extends BaseProvider {\n constructor(providers, quorum) {\n if (providers.length === 0) {\n logger.throwArgumentError(\"missing providers\", \"providers\", providers);\n }\n const providerConfigs = providers.map((configOrProvider, index) => {\n if (Provider.isProvider(configOrProvider)) {\n const stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n const priority = 1;\n return Object.freeze({ provider: configOrProvider, weight: 1, stallTimeout, priority });\n }\n const config = shallowCopy(configOrProvider);\n if (config.priority == null) {\n config.priority = 1;\n }\n if (config.stallTimeout == null) {\n config.stallTimeout = isCommunityResource(configOrProvider) ? 2000 : 750;\n }\n if (config.weight == null) {\n config.weight = 1;\n }\n const weight = config.weight;\n if (weight % 1 || weight > 512 || weight < 1) {\n logger.throwArgumentError(\"invalid weight; must be integer in [1, 512]\", `providers[${index}].weight`, weight);\n }\n return Object.freeze(config);\n });\n const total = providerConfigs.reduce((accum, c) => (accum + c.weight), 0);\n if (quorum == null) {\n quorum = total / 2;\n }\n else if (quorum > total) {\n logger.throwArgumentError(\"quorum will always fail; larger than total weight\", \"quorum\", quorum);\n }\n // Are all providers' networks are known\n let networkOrReady = checkNetworks(providerConfigs.map((c) => (c.provider).network));\n // Not all networks are known; we must stall\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then(resolve, reject);\n }, 0);\n });\n }\n super(networkOrReady);\n // Preserve a copy, so we do not get mutated\n defineReadOnly(this, \"providerConfigs\", Object.freeze(providerConfigs));\n defineReadOnly(this, \"quorum\", quorum);\n this._highestBlockNumber = -1;\n }\n detectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n const networks = yield Promise.all(this.providerConfigs.map((c) => c.provider.getNetwork()));\n return checkNetworks(networks);\n });\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Sending transactions is special; always broadcast it to all backends\n if (method === \"sendTransaction\") {\n const results = yield Promise.all(this.providerConfigs.map((c) => {\n return c.provider.sendTransaction(params.signedTransaction).then((result) => {\n return result.hash;\n }, (error) => {\n return error;\n });\n }));\n // Any success is good enough (other errors are likely \"already seen\" errors\n for (let i = 0; i < results.length; i++) {\n const result = results[i];\n if (typeof (result) === \"string\") {\n return result;\n }\n }\n // They were all an error; pick the first error\n throw results[0];\n }\n // We need to make sure we are in sync with our backends, so we need\n // to know this before we can make a lot of calls\n if (this._highestBlockNumber === -1 && method !== \"getBlockNumber\") {\n yield this.getBlockNumber();\n }\n const processFunc = getProcessFunc(this, method, params);\n // Shuffle the providers and then sort them by their priority; we\n // shallowCopy them since we will store the result in them too\n const configs = shuffled(this.providerConfigs.map(shallowCopy));\n configs.sort((a, b) => (a.priority - b.priority));\n const currentBlockNumber = this._highestBlockNumber;\n let i = 0;\n let first = true;\n while (true) {\n const t0 = now();\n // Compute the inflight weight (exclude anything past)\n let inflightWeight = configs.filter((c) => (c.runner && ((t0 - c.start) < c.stallTimeout)))\n .reduce((accum, c) => (accum + c.weight), 0);\n // Start running enough to meet quorum\n while (inflightWeight < this.quorum && i < configs.length) {\n const config = configs[i++];\n const rid = nextRid++;\n config.start = now();\n config.staller = stall(config.stallTimeout);\n config.staller.wait(() => { config.staller = null; });\n config.runner = getRunner(config, currentBlockNumber, method, params).then((result) => {\n config.done = true;\n config.result = result;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n }, (error) => {\n config.done = true;\n config.error = error;\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, now()),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n });\n if (this.listenerCount(\"debug\")) {\n this.emit(\"debug\", {\n action: \"request\",\n rid: rid,\n backend: exposeDebugConfig(config, null),\n request: { method: method, params: deepCopy(params) },\n provider: this\n });\n }\n inflightWeight += config.weight;\n }\n // Wait for anything meaningful to finish or stall out\n const waiting = [];\n configs.forEach((c) => {\n if (c.done || !c.runner) {\n return;\n }\n waiting.push(c.runner);\n if (c.staller) {\n waiting.push(c.staller.getPromise());\n }\n });\n if (waiting.length) {\n yield Promise.race(waiting);\n }\n // Check the quorum and process the results; the process function\n // may additionally decide the quorum is not met\n const results = configs.filter((c) => (c.done && c.error == null));\n if (results.length >= this.quorum) {\n const result = processFunc(results);\n if (result !== undefined) {\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return result;\n }\n if (!first) {\n yield stall(100).getPromise();\n }\n first = false;\n }\n // No result, check for errors that should be forwarded\n const errors = configs.reduce((accum, c) => {\n if (!c.done || c.error == null) {\n return accum;\n }\n const code = (c.error).code;\n if (ForwardErrors.indexOf(code) >= 0) {\n if (!accum[code]) {\n accum[code] = { error: c.error, weight: 0 };\n }\n accum[code].weight += c.weight;\n }\n return accum;\n }, ({}));\n Object.keys(errors).forEach((errorCode) => {\n const tally = errors[errorCode];\n if (tally.weight < this.quorum) {\n return;\n }\n // Shut down any stallers\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n const e = (tally.error);\n const props = {};\n ForwardProperties.forEach((name) => {\n if (e[name] == null) {\n return;\n }\n props[name] = e[name];\n });\n logger.throwError(e.reason || e.message, errorCode, props);\n });\n // All configs have run to completion; we will never get more data\n if (configs.filter((c) => !c.done).length === 0) {\n break;\n }\n }\n // Shut down any stallers; shouldn't be any\n configs.forEach(c => {\n if (c.staller) {\n c.staller.cancel();\n }\n c.cancelled = true;\n });\n return logger.throwError(\"failed to meet quorum\", Logger.errors.SERVER_ERROR, {\n method: method,\n params: params,\n //results: configs.map((c) => c.result),\n //errors: configs.map((c) => c.error),\n results: configs.map((c) => exposeDebugConfig(c)),\n provider: this\n });\n });\n }\n}\n//# sourceMappingURL=fallback-provider.js.map","\"use strict\";\nconst IpcProvider = null;\nexport { IpcProvider };\n//# sourceMappingURL=ipc-provider.js.map","\"use strict\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nconst defaultProjectId = \"84842078b09946638c03157f83405213\";\nexport class InfuraWebSocketProvider extends WebSocketProvider {\n constructor(network, apiKey) {\n const provider = new InfuraProvider(network, apiKey);\n const connection = provider.connection;\n if (connection.password) {\n logger.throwError(\"INFURA WebSocket project secrets unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"InfuraProvider.getWebSocketProvider()\"\n });\n }\n const url = connection.url.replace(/^http/i, \"ws\").replace(\"/v3/\", \"/ws/v3/\");\n super(url, network);\n defineReadOnly(this, \"apiKey\", provider.projectId);\n defineReadOnly(this, \"projectId\", provider.projectId);\n defineReadOnly(this, \"projectSecret\", provider.projectSecret);\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\nexport class InfuraProvider extends UrlJsonRpcProvider {\n static getWebSocketProvider(network, apiKey) {\n return new InfuraWebSocketProvider(network, apiKey);\n }\n static getApiKey(apiKey) {\n const apiKeyObj = {\n apiKey: defaultProjectId,\n projectId: defaultProjectId,\n projectSecret: null\n };\n if (apiKey == null) {\n return apiKeyObj;\n }\n if (typeof (apiKey) === \"string\") {\n apiKeyObj.projectId = apiKey;\n }\n else if (apiKey.projectSecret != null) {\n logger.assertArgument((typeof (apiKey.projectId) === \"string\"), \"projectSecret requires a projectId\", \"projectId\", apiKey.projectId);\n logger.assertArgument((typeof (apiKey.projectSecret) === \"string\"), \"invalid projectSecret\", \"projectSecret\", \"[REDACTED]\");\n apiKeyObj.projectId = apiKey.projectId;\n apiKeyObj.projectSecret = apiKey.projectSecret;\n }\n else if (apiKey.projectId) {\n apiKeyObj.projectId = apiKey.projectId;\n }\n apiKeyObj.apiKey = apiKeyObj.projectId;\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"homestead\":\n host = \"mainnet.infura.io\";\n break;\n case \"goerli\":\n host = \"goerli.infura.io\";\n break;\n case \"sepolia\":\n host = \"sepolia.infura.io\";\n break;\n case \"matic\":\n host = \"polygon-mainnet.infura.io\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai.infura.io\";\n break;\n case \"optimism\":\n host = \"optimism-mainnet.infura.io\";\n break;\n case \"optimism-goerli\":\n host = \"optimism-goerli.infura.io\";\n break;\n case \"arbitrum\":\n host = \"arbitrum-mainnet.infura.io\";\n break;\n case \"arbitrum-goerli\":\n host = \"arbitrum-goerli.infura.io\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n const connection = {\n allowGzip: true,\n url: (\"https:/\" + \"/\" + host + \"/v3/\" + apiKey.projectId),\n throttleCallback: (attempt, url) => {\n if (apiKey.projectId === defaultProjectId) {\n showThrottleMessage();\n }\n return Promise.resolve(true);\n }\n };\n if (apiKey.projectSecret != null) {\n connection.user = \"\";\n connection.password = apiKey.projectSecret;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.projectId === defaultProjectId);\n }\n}\n//# sourceMappingURL=infura-provider.js.map","import { deepCopy } from \"@ethersproject/properties\";\nimport { fetchJson } from \"@ethersproject/web\";\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// Experimental\nexport class JsonRpcBatchProvider extends JsonRpcProvider {\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n if (this._pendingBatch == null) {\n this._pendingBatch = [];\n }\n const inflightRequest = { request, resolve: null, reject: null };\n const promise = new Promise((resolve, reject) => {\n inflightRequest.resolve = resolve;\n inflightRequest.reject = reject;\n });\n this._pendingBatch.push(inflightRequest);\n if (!this._pendingBatchAggregator) {\n // Schedule batch for next event loop + short duration\n this._pendingBatchAggregator = setTimeout(() => {\n // Get teh current batch and clear it, so new requests\n // go into the next batch\n const batch = this._pendingBatch;\n this._pendingBatch = null;\n this._pendingBatchAggregator = null;\n // Get the request as an array of requests\n const request = batch.map((inflight) => inflight.request);\n this.emit(\"debug\", {\n action: \"requestBatch\",\n request: deepCopy(request),\n provider: this\n });\n return fetchJson(this.connection, JSON.stringify(request)).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n // For each result, feed it to the correct Promise, depending\n // on whether it was a success or error\n batch.forEach((inflightRequest, index) => {\n const payload = result[index];\n if (payload.error) {\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n inflightRequest.reject(error);\n }\n else {\n inflightRequest.resolve(payload.result);\n }\n });\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n batch.forEach((inflightRequest) => {\n inflightRequest.reject(error);\n });\n });\n }, 10);\n }\n return promise;\n }\n}\n//# sourceMappingURL=json-rpc-batch-provider.js.map","/* istanbul ignore file */\n\"use strict\";\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n// Special API key provided by Nodesmith for ethers.js\nconst defaultApiKey = \"ETHERS_JS_SHARED\";\nexport class NodesmithProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n if (apiKey && typeof (apiKey) !== \"string\") {\n logger.throwArgumentError(\"invalid apiKey\", \"apiKey\", apiKey);\n }\n return apiKey || defaultApiKey;\n }\n static getUrl(network, apiKey) {\n logger.warn(\"NodeSmith will be discontinued on 2019-12-20; please migrate to another platform.\");\n let host = null;\n switch (network.name) {\n case \"homestead\":\n host = \"https://ethereum.api.nodesmith.io/v1/mainnet/jsonrpc\";\n break;\n case \"ropsten\":\n host = \"https://ethereum.api.nodesmith.io/v1/ropsten/jsonrpc\";\n break;\n case \"rinkeby\":\n host = \"https://ethereum.api.nodesmith.io/v1/rinkeby/jsonrpc\";\n break;\n case \"goerli\":\n host = \"https://ethereum.api.nodesmith.io/v1/goerli/jsonrpc\";\n break;\n case \"kovan\":\n host = \"https://ethereum.api.nodesmith.io/v1/kovan/jsonrpc\";\n break;\n default:\n logger.throwArgumentError(\"unsupported network\", \"network\", arguments[0]);\n }\n return (host + \"?apiKey=\" + apiKey);\n }\n}\n//# sourceMappingURL=nodesmith-provider.js.map","\"use strict\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nconst defaultApplicationId = \"62e1ad51b37b8e00394bda3b\";\nexport class PocketProvider extends UrlJsonRpcProvider {\n static getApiKey(apiKey) {\n const apiKeyObj = {\n applicationId: null,\n loadBalancer: true,\n applicationSecretKey: null\n };\n // Parse applicationId and applicationSecretKey\n if (apiKey == null) {\n apiKeyObj.applicationId = defaultApplicationId;\n }\n else if (typeof (apiKey) === \"string\") {\n apiKeyObj.applicationId = apiKey;\n }\n else if (apiKey.applicationSecretKey != null) {\n apiKeyObj.applicationId = apiKey.applicationId;\n apiKeyObj.applicationSecretKey = apiKey.applicationSecretKey;\n }\n else if (apiKey.applicationId) {\n apiKeyObj.applicationId = apiKey.applicationId;\n }\n else {\n logger.throwArgumentError(\"unsupported PocketProvider apiKey\", \"apiKey\", apiKey);\n }\n return apiKeyObj;\n }\n static getUrl(network, apiKey) {\n let host = null;\n switch (network ? network.name : \"unknown\") {\n case \"goerli\":\n host = \"eth-goerli.gateway.pokt.network\";\n break;\n case \"homestead\":\n host = \"eth-mainnet.gateway.pokt.network\";\n break;\n case \"kovan\":\n host = \"poa-kovan.gateway.pokt.network\";\n break;\n case \"matic\":\n host = \"poly-mainnet.gateway.pokt.network\";\n break;\n case \"maticmum\":\n host = \"polygon-mumbai-rpc.gateway.pokt.network\";\n break;\n case \"rinkeby\":\n host = \"eth-rinkeby.gateway.pokt.network\";\n break;\n case \"ropsten\":\n host = \"eth-ropsten.gateway.pokt.network\";\n break;\n default:\n logger.throwError(\"unsupported network\", Logger.errors.INVALID_ARGUMENT, {\n argument: \"network\",\n value: network\n });\n }\n const url = `https:/\\/${host}/v1/lb/${apiKey.applicationId}`;\n const connection = { headers: {}, url };\n if (apiKey.applicationSecretKey != null) {\n connection.user = \"\";\n connection.password = apiKey.applicationSecretKey;\n }\n return connection;\n }\n isCommunityResource() {\n return (this.applicationId === defaultApplicationId);\n }\n}\n//# sourceMappingURL=pocket-provider.js.map","\"use strict\";\nimport { Provider } from \"@ethersproject/abstract-provider\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { BaseProvider, Resolver } from \"./base-provider\";\nimport { AlchemyProvider, AlchemyWebSocketProvider } from \"./alchemy-provider\";\nimport { AnkrProvider } from \"./ankr-provider\";\nimport { CloudflareProvider } from \"./cloudflare-provider\";\nimport { EtherscanProvider } from \"./etherscan-provider\";\nimport { FallbackProvider } from \"./fallback-provider\";\nimport { IpcProvider } from \"./ipc-provider\";\nimport { InfuraProvider, InfuraWebSocketProvider } from \"./infura-provider\";\nimport { JsonRpcProvider, JsonRpcSigner } from \"./json-rpc-provider\";\nimport { JsonRpcBatchProvider } from \"./json-rpc-batch-provider\";\nimport { NodesmithProvider } from \"./nodesmith-provider\";\nimport { PocketProvider } from \"./pocket-provider\";\nimport { StaticJsonRpcProvider, UrlJsonRpcProvider } from \"./url-json-rpc-provider\";\nimport { Web3Provider } from \"./web3-provider\";\nimport { WebSocketProvider } from \"./websocket-provider\";\nimport { Formatter, isCommunityResourcable, isCommunityResource, showThrottleMessage } from \"./formatter\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n////////////////////////\n// Helper Functions\nfunction getDefaultProvider(network, options) {\n if (network == null) {\n network = \"homestead\";\n }\n // If passed a URL, figure out the right type of provider based on the scheme\n if (typeof (network) === \"string\") {\n // @TODO: Add support for IpcProvider; maybe if it ends in \".ipc\"?\n // Handle http and ws (and their secure variants)\n const match = network.match(/^(ws|http)s?:/i);\n if (match) {\n switch (match[1].toLowerCase()) {\n case \"http\":\n case \"https\":\n return new JsonRpcProvider(network);\n case \"ws\":\n case \"wss\":\n return new WebSocketProvider(network);\n default:\n logger.throwArgumentError(\"unsupported URL scheme\", \"network\", network);\n }\n }\n }\n const n = getNetwork(network);\n if (!n || !n._defaultProvider) {\n logger.throwError(\"unsupported getDefaultProvider network\", Logger.errors.NETWORK_ERROR, {\n operation: \"getDefaultProvider\",\n network: network\n });\n }\n return n._defaultProvider({\n FallbackProvider,\n AlchemyProvider,\n AnkrProvider,\n CloudflareProvider,\n EtherscanProvider,\n InfuraProvider,\n JsonRpcProvider,\n NodesmithProvider,\n PocketProvider,\n Web3Provider,\n IpcProvider,\n }, options);\n}\n////////////////////////\n// Exports\nexport { \n// Abstract Providers (or Abstract-ish)\nProvider, BaseProvider, Resolver, UrlJsonRpcProvider, \n///////////////////////\n// Concrete Providers\nFallbackProvider, AlchemyProvider, AlchemyWebSocketProvider, AnkrProvider, CloudflareProvider, EtherscanProvider, InfuraProvider, InfuraWebSocketProvider, JsonRpcProvider, JsonRpcBatchProvider, NodesmithProvider, PocketProvider, StaticJsonRpcProvider, Web3Provider, WebSocketProvider, IpcProvider, \n///////////////////////\n// Signer\nJsonRpcSigner, \n///////////////////////\n// Functions\ngetDefaultProvider, getNetwork, isCommunityResource, isCommunityResourcable, showThrottleMessage, \n///////////////////////\n// Objects\nFormatter };\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { Signer } from \"@ethersproject/abstract-signer\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { hexlify, hexValue, hexZeroPad, isHexString } from \"@ethersproject/bytes\";\nimport { _TypedDataEncoder } from \"@ethersproject/hash\";\nimport { checkProperties, deepCopy, defineReadOnly, getStatic, resolveProperties, shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nimport { accessListify } from \"@ethersproject/transactions\";\nimport { fetchJson, poll } from \"@ethersproject/web\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { BaseProvider } from \"./base-provider\";\nconst errorGas = [\"call\", \"estimateGas\"];\nfunction spelunk(value, requireData) {\n if (value == null) {\n return null;\n }\n // These *are* the droids we're looking for.\n if (typeof (value.message) === \"string\" && value.message.match(\"reverted\")) {\n const data = isHexString(value.data) ? value.data : null;\n if (!requireData || data) {\n return { message: value.message, data };\n }\n }\n // Spelunk further...\n if (typeof (value) === \"object\") {\n for (const key in value) {\n const result = spelunk(value[key], requireData);\n if (result) {\n return result;\n }\n }\n return null;\n }\n // Might be a JSON string we can further descend...\n if (typeof (value) === \"string\") {\n try {\n return spelunk(JSON.parse(value), requireData);\n }\n catch (error) { }\n }\n return null;\n}\nfunction checkError(method, error, params) {\n const transaction = params.transaction || params.signedTransaction;\n // Undo the \"convenience\" some nodes are attempting to prevent backwards\n // incompatibility; maybe for v6 consider forwarding reverts as errors\n if (method === \"call\") {\n const result = spelunk(error, true);\n if (result) {\n return result.data;\n }\n // Nothing descriptive..\n logger.throwError(\"missing revert data in call exception; Transaction reverted without a reason string\", Logger.errors.CALL_EXCEPTION, {\n data: \"0x\", transaction, error\n });\n }\n if (method === \"estimateGas\") {\n // Try to find something, with a preference on SERVER_ERROR body\n let result = spelunk(error.body, false);\n if (result == null) {\n result = spelunk(error, false);\n }\n // Found \"reverted\", this is a CALL_EXCEPTION\n if (result) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n reason: result.message, method, transaction, error\n });\n }\n }\n // @TODO: Should we spelunk for message too?\n let message = error.message;\n if (error.code === Logger.errors.SERVER_ERROR && error.error && typeof (error.error.message) === \"string\") {\n message = error.error.message;\n }\n else if (typeof (error.body) === \"string\") {\n message = error.body;\n }\n else if (typeof (error.responseText) === \"string\") {\n message = error.responseText;\n }\n message = (message || \"\").toLowerCase();\n // \"insufficient funds for gas * price + value + cost(data)\"\n if (message.match(/insufficient funds|base fee exceeds gas limit|InsufficientFunds/i)) {\n logger.throwError(\"insufficient funds for intrinsic transaction cost\", Logger.errors.INSUFFICIENT_FUNDS, {\n error, method, transaction\n });\n }\n // \"nonce too low\"\n if (message.match(/nonce (is )?too low/i)) {\n logger.throwError(\"nonce has already been used\", Logger.errors.NONCE_EXPIRED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/replacement transaction underpriced|transaction gas price.*too low/i)) {\n logger.throwError(\"replacement fee too low\", Logger.errors.REPLACEMENT_UNDERPRICED, {\n error, method, transaction\n });\n }\n // \"replacement transaction underpriced\"\n if (message.match(/only replay-protected/i)) {\n logger.throwError(\"legacy pre-eip-155 transactions not supported\", Logger.errors.UNSUPPORTED_OPERATION, {\n error, method, transaction\n });\n }\n if (errorGas.indexOf(method) >= 0 && message.match(/gas required exceeds allowance|always failing transaction|execution reverted|revert/)) {\n logger.throwError(\"cannot estimate gas; transaction may fail or may require manual gas limit\", Logger.errors.UNPREDICTABLE_GAS_LIMIT, {\n error, method, transaction\n });\n }\n throw error;\n}\nfunction timer(timeout) {\n return new Promise(function (resolve) {\n setTimeout(resolve, timeout);\n });\n}\nfunction getResult(payload) {\n if (payload.error) {\n // @TODO: not any\n const error = new Error(payload.error.message);\n error.code = payload.error.code;\n error.data = payload.error.data;\n throw error;\n }\n return payload.result;\n}\nfunction getLowerCase(value) {\n if (value) {\n return value.toLowerCase();\n }\n return value;\n}\nconst _constructorGuard = {};\nexport class JsonRpcSigner extends Signer {\n constructor(constructorGuard, provider, addressOrIndex) {\n super();\n if (constructorGuard !== _constructorGuard) {\n throw new Error(\"do not call the JsonRpcSigner constructor directly; use provider.getSigner\");\n }\n defineReadOnly(this, \"provider\", provider);\n if (addressOrIndex == null) {\n addressOrIndex = 0;\n }\n if (typeof (addressOrIndex) === \"string\") {\n defineReadOnly(this, \"_address\", this.provider.formatter.address(addressOrIndex));\n defineReadOnly(this, \"_index\", null);\n }\n else if (typeof (addressOrIndex) === \"number\") {\n defineReadOnly(this, \"_index\", addressOrIndex);\n defineReadOnly(this, \"_address\", null);\n }\n else {\n logger.throwArgumentError(\"invalid address or index\", \"addressOrIndex\", addressOrIndex);\n }\n }\n connect(provider) {\n return logger.throwError(\"cannot alter JSON-RPC Signer connection\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"connect\"\n });\n }\n connectUnchecked() {\n return new UncheckedJsonRpcSigner(_constructorGuard, this.provider, this._address || this._index);\n }\n getAddress() {\n if (this._address) {\n return Promise.resolve(this._address);\n }\n return this.provider.send(\"eth_accounts\", []).then((accounts) => {\n if (accounts.length <= this._index) {\n logger.throwError(\"unknown account #\" + this._index, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"getAddress\"\n });\n }\n return this.provider.formatter.address(accounts[this._index]);\n });\n }\n sendUncheckedTransaction(transaction) {\n transaction = shallowCopy(transaction);\n const fromAddress = this.getAddress().then((address) => {\n if (address) {\n address = address.toLowerCase();\n }\n return address;\n });\n // The JSON-RPC for eth_sendTransaction uses 90000 gas; if the user\n // wishes to use this, it is easy to specify explicitly, otherwise\n // we look it up for them.\n if (transaction.gasLimit == null) {\n const estimate = shallowCopy(transaction);\n estimate.from = fromAddress;\n transaction.gasLimit = this.provider.estimateGas(estimate);\n }\n if (transaction.to != null) {\n transaction.to = Promise.resolve(transaction.to).then((to) => __awaiter(this, void 0, void 0, function* () {\n if (to == null) {\n return null;\n }\n const address = yield this.provider.resolveName(to);\n if (address == null) {\n logger.throwArgumentError(\"provided ENS name resolves to null\", \"tx.to\", to);\n }\n return address;\n }));\n }\n return resolveProperties({\n tx: resolveProperties(transaction),\n sender: fromAddress\n }).then(({ tx, sender }) => {\n if (tx.from != null) {\n if (tx.from.toLowerCase() !== sender) {\n logger.throwArgumentError(\"from address mismatch\", \"transaction\", transaction);\n }\n }\n else {\n tx.from = sender;\n }\n const hexTx = this.provider.constructor.hexlifyTransaction(tx, { from: true });\n return this.provider.send(\"eth_sendTransaction\", [hexTx]).then((hash) => {\n return hash;\n }, (error) => {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected transaction\", Logger.errors.ACTION_REJECTED, {\n action: \"sendTransaction\",\n transaction: tx\n });\n }\n return checkError(\"sendTransaction\", error, hexTx);\n });\n });\n }\n signTransaction(transaction) {\n return logger.throwError(\"signing transactions is unsupported\", Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"signTransaction\"\n });\n }\n sendTransaction(transaction) {\n return __awaiter(this, void 0, void 0, function* () {\n // This cannot be mined any earlier than any recent block\n const blockNumber = yield this.provider._getInternalBlockNumber(100 + 2 * this.provider.pollingInterval);\n // Send the transaction\n const hash = yield this.sendUncheckedTransaction(transaction);\n try {\n // Unfortunately, JSON-RPC only provides and opaque transaction hash\n // for a response, and we need the actual transaction, so we poll\n // for it; it should show up very quickly\n return yield poll(() => __awaiter(this, void 0, void 0, function* () {\n const tx = yield this.provider.getTransaction(hash);\n if (tx === null) {\n return undefined;\n }\n return this.provider._wrapTransaction(tx, hash, blockNumber);\n }), { oncePoll: this.provider });\n }\n catch (error) {\n error.transactionHash = hash;\n throw error;\n }\n });\n }\n signMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"personal_sign\", [hexlify(data), address.toLowerCase()]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"signMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _legacySignMessage(message) {\n return __awaiter(this, void 0, void 0, function* () {\n const data = ((typeof (message) === \"string\") ? toUtf8Bytes(message) : message);\n const address = yield this.getAddress();\n try {\n // https://github.com/ethereum/wiki/wiki/JSON-RPC#eth_sign\n return yield this.provider.send(\"eth_sign\", [address.toLowerCase(), hexlify(data)]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_legacySignMessage\",\n from: address,\n messageData: message\n });\n }\n throw error;\n }\n });\n }\n _signTypedData(domain, types, value) {\n return __awaiter(this, void 0, void 0, function* () {\n // Populate any ENS names (in-place)\n const populated = yield _TypedDataEncoder.resolveNames(domain, types, value, (name) => {\n return this.provider.resolveName(name);\n });\n const address = yield this.getAddress();\n try {\n return yield this.provider.send(\"eth_signTypedData_v4\", [\n address.toLowerCase(),\n JSON.stringify(_TypedDataEncoder.getPayload(populated.domain, types, populated.value))\n ]);\n }\n catch (error) {\n if (typeof (error.message) === \"string\" && error.message.match(/user denied/i)) {\n logger.throwError(\"user rejected signing\", Logger.errors.ACTION_REJECTED, {\n action: \"_signTypedData\",\n from: address,\n messageData: { domain: populated.domain, types, value: populated.value }\n });\n }\n throw error;\n }\n });\n }\n unlock(password) {\n return __awaiter(this, void 0, void 0, function* () {\n const provider = this.provider;\n const address = yield this.getAddress();\n return provider.send(\"personal_unlockAccount\", [address.toLowerCase(), password, null]);\n });\n }\n}\nclass UncheckedJsonRpcSigner extends JsonRpcSigner {\n sendTransaction(transaction) {\n return this.sendUncheckedTransaction(transaction).then((hash) => {\n return {\n hash: hash,\n nonce: null,\n gasLimit: null,\n gasPrice: null,\n data: null,\n value: null,\n chainId: null,\n confirmations: 0,\n from: null,\n wait: (confirmations) => { return this.provider.waitForTransaction(hash, confirmations); }\n };\n });\n }\n}\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, value: true,\n type: true, accessList: true,\n maxFeePerGas: true, maxPriorityFeePerGas: true\n};\nexport class JsonRpcProvider extends BaseProvider {\n constructor(url, network) {\n let networkOrReady = network;\n // The network is unknown, query the JSON-RPC for it\n if (networkOrReady == null) {\n networkOrReady = new Promise((resolve, reject) => {\n setTimeout(() => {\n this.detectNetwork().then((network) => {\n resolve(network);\n }, (error) => {\n reject(error);\n });\n }, 0);\n });\n }\n super(networkOrReady);\n // Default URL\n if (!url) {\n url = getStatic(this.constructor, \"defaultUrl\")();\n }\n if (typeof (url) === \"string\") {\n defineReadOnly(this, \"connection\", Object.freeze({\n url: url\n }));\n }\n else {\n defineReadOnly(this, \"connection\", Object.freeze(shallowCopy(url)));\n }\n this._nextId = 42;\n }\n get _cache() {\n if (this._eventLoopCache == null) {\n this._eventLoopCache = {};\n }\n return this._eventLoopCache;\n }\n static defaultUrl() {\n return \"http:/\\/localhost:8545\";\n }\n detectNetwork() {\n if (!this._cache[\"detectNetwork\"]) {\n this._cache[\"detectNetwork\"] = this._uncachedDetectNetwork();\n // Clear this cache at the beginning of the next event loop\n setTimeout(() => {\n this._cache[\"detectNetwork\"] = null;\n }, 0);\n }\n return this._cache[\"detectNetwork\"];\n }\n _uncachedDetectNetwork() {\n return __awaiter(this, void 0, void 0, function* () {\n yield timer(0);\n let chainId = null;\n try {\n chainId = yield this.send(\"eth_chainId\", []);\n }\n catch (error) {\n try {\n chainId = yield this.send(\"net_version\", []);\n }\n catch (error) { }\n }\n if (chainId != null) {\n const getNetwork = getStatic(this.constructor, \"getNetwork\");\n try {\n return getNetwork(BigNumber.from(chainId).toNumber());\n }\n catch (error) {\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n chainId: chainId,\n event: \"invalidNetwork\",\n serverError: error\n });\n }\n }\n return logger.throwError(\"could not detect network\", Logger.errors.NETWORK_ERROR, {\n event: \"noNetwork\"\n });\n });\n }\n getSigner(addressOrIndex) {\n return new JsonRpcSigner(_constructorGuard, this, addressOrIndex);\n }\n getUncheckedSigner(addressOrIndex) {\n return this.getSigner(addressOrIndex).connectUnchecked();\n }\n listAccounts() {\n return this.send(\"eth_accounts\", []).then((accounts) => {\n return accounts.map((a) => this.formatter.address(a));\n });\n }\n send(method, params) {\n const request = {\n method: method,\n params: params,\n id: (this._nextId++),\n jsonrpc: \"2.0\"\n };\n this.emit(\"debug\", {\n action: \"request\",\n request: deepCopy(request),\n provider: this\n });\n // We can expand this in the future to any call, but for now these\n // are the biggest wins and do not require any serializing parameters.\n const cache = ([\"eth_chainId\", \"eth_blockNumber\"].indexOf(method) >= 0);\n if (cache && this._cache[method]) {\n return this._cache[method];\n }\n const result = fetchJson(this.connection, JSON.stringify(request), getResult).then((result) => {\n this.emit(\"debug\", {\n action: \"response\",\n request: request,\n response: result,\n provider: this\n });\n return result;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n error: error,\n request: request,\n provider: this\n });\n throw error;\n });\n // Cache the fetch, but clear it on the next event loop\n if (cache) {\n this._cache[method] = result;\n setTimeout(() => {\n this._cache[method] = null;\n }, 0);\n }\n return result;\n }\n prepareRequest(method, params) {\n switch (method) {\n case \"getBlockNumber\":\n return [\"eth_blockNumber\", []];\n case \"getGasPrice\":\n return [\"eth_gasPrice\", []];\n case \"getBalance\":\n return [\"eth_getBalance\", [getLowerCase(params.address), params.blockTag]];\n case \"getTransactionCount\":\n return [\"eth_getTransactionCount\", [getLowerCase(params.address), params.blockTag]];\n case \"getCode\":\n return [\"eth_getCode\", [getLowerCase(params.address), params.blockTag]];\n case \"getStorageAt\":\n return [\"eth_getStorageAt\", [getLowerCase(params.address), hexZeroPad(params.position, 32), params.blockTag]];\n case \"sendTransaction\":\n return [\"eth_sendRawTransaction\", [params.signedTransaction]];\n case \"getBlock\":\n if (params.blockTag) {\n return [\"eth_getBlockByNumber\", [params.blockTag, !!params.includeTransactions]];\n }\n else if (params.blockHash) {\n return [\"eth_getBlockByHash\", [params.blockHash, !!params.includeTransactions]];\n }\n return null;\n case \"getTransaction\":\n return [\"eth_getTransactionByHash\", [params.transactionHash]];\n case \"getTransactionReceipt\":\n return [\"eth_getTransactionReceipt\", [params.transactionHash]];\n case \"call\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_call\", [hexlifyTransaction(params.transaction, { from: true }), params.blockTag]];\n }\n case \"estimateGas\": {\n const hexlifyTransaction = getStatic(this.constructor, \"hexlifyTransaction\");\n return [\"eth_estimateGas\", [hexlifyTransaction(params.transaction, { from: true })]];\n }\n case \"getLogs\":\n if (params.filter && params.filter.address != null) {\n params.filter.address = getLowerCase(params.filter.address);\n }\n return [\"eth_getLogs\", [params.filter]];\n default:\n break;\n }\n return null;\n }\n perform(method, params) {\n return __awaiter(this, void 0, void 0, function* () {\n // Legacy networks do not like the type field being passed along (which\n // is fair), so we delete type if it is 0 and a non-EIP-1559 network\n if (method === \"call\" || method === \"estimateGas\") {\n const tx = params.transaction;\n if (tx && tx.type != null && BigNumber.from(tx.type).isZero()) {\n // If there are no EIP-1559 properties, it might be non-EIP-1559\n if (tx.maxFeePerGas == null && tx.maxPriorityFeePerGas == null) {\n const feeData = yield this.getFeeData();\n if (feeData.maxFeePerGas == null && feeData.maxPriorityFeePerGas == null) {\n // Network doesn't know about EIP-1559 (and hence type)\n params = shallowCopy(params);\n params.transaction = shallowCopy(tx);\n delete params.transaction.type;\n }\n }\n }\n }\n const args = this.prepareRequest(method, params);\n if (args == null) {\n logger.throwError(method + \" not implemented\", Logger.errors.NOT_IMPLEMENTED, { operation: method });\n }\n try {\n return yield this.send(args[0], args[1]);\n }\n catch (error) {\n return checkError(method, error, params);\n }\n });\n }\n _startEvent(event) {\n if (event.tag === \"pending\") {\n this._startPending();\n }\n super._startEvent(event);\n }\n _startPending() {\n if (this._pendingFilter != null) {\n return;\n }\n const self = this;\n const pendingFilter = this.send(\"eth_newPendingTransactionFilter\", []);\n this._pendingFilter = pendingFilter;\n pendingFilter.then(function (filterId) {\n function poll() {\n self.send(\"eth_getFilterChanges\", [filterId]).then(function (hashes) {\n if (self._pendingFilter != pendingFilter) {\n return null;\n }\n let seq = Promise.resolve();\n hashes.forEach(function (hash) {\n // @TODO: This should be garbage collected at some point... How? When?\n self._emitted[\"t:\" + hash.toLowerCase()] = \"pending\";\n seq = seq.then(function () {\n return self.getTransaction(hash).then(function (tx) {\n self.emit(\"pending\", tx);\n return null;\n });\n });\n });\n return seq.then(function () {\n return timer(1000);\n });\n }).then(function () {\n if (self._pendingFilter != pendingFilter) {\n self.send(\"eth_uninstallFilter\", [filterId]);\n return;\n }\n setTimeout(function () { poll(); }, 0);\n return null;\n }).catch((error) => { });\n }\n poll();\n return filterId;\n }).catch((error) => { });\n }\n _stopEvent(event) {\n if (event.tag === \"pending\" && this.listenerCount(\"pending\") === 0) {\n this._pendingFilter = null;\n }\n super._stopEvent(event);\n }\n // Convert an ethers.js transaction into a JSON-RPC transaction\n // - gasLimit => gas\n // - All values hexlified\n // - All numeric values zero-striped\n // - All addresses are lowercased\n // NOTE: This allows a TransactionRequest, but all values should be resolved\n // before this is called\n // @TODO: This will likely be removed in future versions and prepareRequest\n // will be the preferred method for this.\n static hexlifyTransaction(transaction, allowExtra) {\n // Check only allowed properties are given\n const allowed = shallowCopy(allowedTransactionKeys);\n if (allowExtra) {\n for (const key in allowExtra) {\n if (allowExtra[key]) {\n allowed[key] = true;\n }\n }\n }\n checkProperties(transaction, allowed);\n const result = {};\n // JSON-RPC now requires numeric values to be \"quantity\" values\n [\"chainId\", \"gasLimit\", \"gasPrice\", \"type\", \"maxFeePerGas\", \"maxPriorityFeePerGas\", \"nonce\", \"value\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n const value = hexValue(BigNumber.from(transaction[key]));\n if (key === \"gasLimit\") {\n key = \"gas\";\n }\n result[key] = value;\n });\n [\"from\", \"to\", \"data\"].forEach(function (key) {\n if (transaction[key] == null) {\n return;\n }\n result[key] = hexlify(transaction[key]);\n });\n if (transaction.accessList) {\n result[\"accessList\"] = accessListify(transaction.accessList);\n }\n return result;\n }\n}\n//# sourceMappingURL=json-rpc-provider.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { defineReadOnly, getStatic } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\n// A StaticJsonRpcProvider is useful when you *know* for certain that\n// the backend will never change, as it never calls eth_chainId to\n// verify its backend. However, if the backend does change, the effects\n// are undefined and may include:\n// - inconsistent results\n// - locking up the UI\n// - block skew warnings\n// - wrong results\n// If the network is not explicit (i.e. auto-detection is expected), the\n// node MUST be running and available to respond to requests BEFORE this\n// is instantiated.\nexport class StaticJsonRpcProvider extends JsonRpcProvider {\n detectNetwork() {\n const _super = Object.create(null, {\n detectNetwork: { get: () => super.detectNetwork }\n });\n return __awaiter(this, void 0, void 0, function* () {\n let network = this.network;\n if (network == null) {\n network = yield _super.detectNetwork.call(this);\n if (!network) {\n logger.throwError(\"no network detected\", Logger.errors.UNKNOWN_ERROR, {});\n }\n // If still not set, set it\n if (this._network == null) {\n // A static network does not support \"any\"\n defineReadOnly(this, \"_network\", network);\n this.emit(\"network\", network, null);\n }\n }\n return network;\n });\n }\n}\nexport class UrlJsonRpcProvider extends StaticJsonRpcProvider {\n constructor(network, apiKey) {\n logger.checkAbstract(new.target, UrlJsonRpcProvider);\n // Normalize the Network and API Key\n network = getStatic(new.target, \"getNetwork\")(network);\n apiKey = getStatic(new.target, \"getApiKey\")(apiKey);\n const connection = getStatic(new.target, \"getUrl\")(network, apiKey);\n super(connection, network);\n if (typeof (apiKey) === \"string\") {\n defineReadOnly(this, \"apiKey\", apiKey);\n }\n else if (apiKey != null) {\n Object.keys(apiKey).forEach((key) => {\n defineReadOnly(this, key, apiKey[key]);\n });\n }\n }\n _startPending() {\n logger.warn(\"WARNING: API provider does not support pending filters\");\n }\n isCommunityResource() {\n return false;\n }\n getSigner(address) {\n return logger.throwError(\"API provider does not support signing\", Logger.errors.UNSUPPORTED_OPERATION, { operation: \"getSigner\" });\n }\n listAccounts() {\n return Promise.resolve([]);\n }\n // Return a defaultApiKey if null, otherwise validate the API key\n static getApiKey(apiKey) {\n return apiKey;\n }\n // Returns the url or connection for the given network and API key. The\n // API key will have been sanitized by the getApiKey first, so any validation\n // or transformations can be done there.\n static getUrl(network, apiKey) {\n return logger.throwError(\"not implemented; sub-classes must override getUrl\", Logger.errors.NOT_IMPLEMENTED, {\n operation: \"getUrl\"\n });\n }\n}\n//# sourceMappingURL=url-json-rpc-provider.js.map","\"use strict\";\nimport { deepCopy, defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { JsonRpcProvider } from \"./json-rpc-provider\";\nlet _nextId = 1;\nfunction buildWeb3LegacyFetcher(provider, sendFunc) {\n const fetcher = \"Web3LegacyFetcher\";\n return function (method, params) {\n const request = {\n method: method,\n params: params,\n id: (_nextId++),\n jsonrpc: \"2.0\"\n };\n return new Promise((resolve, reject) => {\n this.emit(\"debug\", {\n action: \"request\",\n fetcher,\n request: deepCopy(request),\n provider: this\n });\n sendFunc(request, (error, response) => {\n if (error) {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n error,\n request,\n provider: this\n });\n return reject(error);\n }\n this.emit(\"debug\", {\n action: \"response\",\n fetcher,\n request,\n response,\n provider: this\n });\n if (response.error) {\n const error = new Error(response.error.message);\n error.code = response.error.code;\n error.data = response.error.data;\n return reject(error);\n }\n resolve(response.result);\n });\n });\n };\n}\nfunction buildEip1193Fetcher(provider) {\n return function (method, params) {\n if (params == null) {\n params = [];\n }\n const request = { method, params };\n this.emit(\"debug\", {\n action: \"request\",\n fetcher: \"Eip1193Fetcher\",\n request: deepCopy(request),\n provider: this\n });\n return provider.request(request).then((response) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n response,\n provider: this\n });\n return response;\n }, (error) => {\n this.emit(\"debug\", {\n action: \"response\",\n fetcher: \"Eip1193Fetcher\",\n request,\n error,\n provider: this\n });\n throw error;\n });\n };\n}\nexport class Web3Provider extends JsonRpcProvider {\n constructor(provider, network) {\n if (provider == null) {\n logger.throwArgumentError(\"missing provider\", \"provider\", provider);\n }\n let path = null;\n let jsonRpcFetchFunc = null;\n let subprovider = null;\n if (typeof (provider) === \"function\") {\n path = \"unknown:\";\n jsonRpcFetchFunc = provider;\n }\n else {\n path = provider.host || provider.path || \"\";\n if (!path && provider.isMetaMask) {\n path = \"metamask\";\n }\n subprovider = provider;\n if (provider.request) {\n if (path === \"\") {\n path = \"eip-1193:\";\n }\n jsonRpcFetchFunc = buildEip1193Fetcher(provider);\n }\n else if (provider.sendAsync) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.sendAsync.bind(provider));\n }\n else if (provider.send) {\n jsonRpcFetchFunc = buildWeb3LegacyFetcher(provider, provider.send.bind(provider));\n }\n else {\n logger.throwArgumentError(\"unsupported provider\", \"provider\", provider);\n }\n if (!path) {\n path = \"unknown:\";\n }\n }\n super(path, network);\n defineReadOnly(this, \"jsonRpcFetchFunc\", jsonRpcFetchFunc);\n defineReadOnly(this, \"provider\", subprovider);\n }\n send(method, params) {\n return this.jsonRpcFetchFunc(method, params);\n }\n}\n//# sourceMappingURL=web3-provider.js.map","\"use strict\";\nexport function shuffled(array) {\n array = array.slice();\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n return array;\n}\n//# sourceMappingURL=shuffle.js.map","export const version = \"rlp/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\n//See: https://github.com/ethereum/wiki/wiki/RLP\nimport { arrayify, hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction arrayifyInteger(value) {\n const result = [];\n while (value) {\n result.unshift(value & 0xff);\n value >>= 8;\n }\n return result;\n}\nfunction unarrayifyInteger(data, offset, length) {\n let result = 0;\n for (let i = 0; i < length; i++) {\n result = (result * 256) + data[offset + i];\n }\n return result;\n}\nfunction _encode(object) {\n if (Array.isArray(object)) {\n let payload = [];\n object.forEach(function (child) {\n payload = payload.concat(_encode(child));\n });\n if (payload.length <= 55) {\n payload.unshift(0xc0 + payload.length);\n return payload;\n }\n const length = arrayifyInteger(payload.length);\n length.unshift(0xf7 + length.length);\n return length.concat(payload);\n }\n if (!isBytesLike(object)) {\n logger.throwArgumentError(\"RLP object must be BytesLike\", \"object\", object);\n }\n const data = Array.prototype.slice.call(arrayify(object));\n if (data.length === 1 && data[0] <= 0x7f) {\n return data;\n }\n else if (data.length <= 55) {\n data.unshift(0x80 + data.length);\n return data;\n }\n const length = arrayifyInteger(data.length);\n length.unshift(0xb7 + length.length);\n return length.concat(data);\n}\nexport function encode(object) {\n return hexlify(_encode(object));\n}\nfunction _decodeChildren(data, offset, childOffset, length) {\n const result = [];\n while (childOffset < offset + 1 + length) {\n const decoded = _decode(data, childOffset);\n result.push(decoded.result);\n childOffset += decoded.consumed;\n if (childOffset > offset + 1 + length) {\n logger.throwError(\"child data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n }\n return { consumed: (1 + length), result: result };\n}\n// returns { consumed: number, result: Object }\nfunction _decode(data, offset) {\n if (data.length === 0) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n // Array with extra length prefix\n if (data[offset] >= 0xf8) {\n const lengthLength = data[offset] - 0xf7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data short segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data long segment too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1 + lengthLength, lengthLength + length);\n }\n else if (data[offset] >= 0xc0) {\n const length = data[offset] - 0xc0;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n return _decodeChildren(data, offset, offset + 1, length);\n }\n else if (data[offset] >= 0xb8) {\n const lengthLength = data[offset] - 0xb7;\n if (offset + 1 + lengthLength > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const length = unarrayifyInteger(data, offset + 1, lengthLength);\n if (offset + 1 + lengthLength + length > data.length) {\n logger.throwError(\"data array too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1 + lengthLength, offset + 1 + lengthLength + length));\n return { consumed: (1 + lengthLength + length), result: result };\n }\n else if (data[offset] >= 0x80) {\n const length = data[offset] - 0x80;\n if (offset + 1 + length > data.length) {\n logger.throwError(\"data too short\", Logger.errors.BUFFER_OVERRUN, {});\n }\n const result = hexlify(data.slice(offset + 1, offset + 1 + length));\n return { consumed: (1 + length), result: result };\n }\n return { consumed: 1, result: hexlify(data[offset]) };\n}\nexport function decode(data) {\n const bytes = arrayify(data);\n const decoded = _decode(bytes, 0);\n if (decoded.consumed !== bytes.length) {\n logger.throwArgumentError(\"invalid rlp data\", \"data\", data);\n }\n return decoded.result;\n}\n//# sourceMappingURL=index.js.map","export const version = \"sha2/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport hash from \"hash.js\";\n//const _ripemd160 = _hash.ripemd160;\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { SupportedAlgorithm } from \"./types\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport function ripemd160(data) {\n return \"0x\" + (hash.ripemd160().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha256(data) {\n return \"0x\" + (hash.sha256().update(arrayify(data)).digest(\"hex\"));\n}\nexport function sha512(data) {\n return \"0x\" + (hash.sha512().update(arrayify(data)).digest(\"hex\"));\n}\nexport function computeHmac(algorithm, key, data) {\n if (!SupportedAlgorithm[algorithm]) {\n logger.throwError(\"unsupported algorithm \" + algorithm, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"hmac\",\n algorithm: algorithm\n });\n }\n return \"0x\" + hash.hmac(hash[algorithm], arrayify(key)).update(arrayify(data)).digest(\"hex\");\n}\n//# sourceMappingURL=sha2.js.map","export var SupportedAlgorithm;\n(function (SupportedAlgorithm) {\n SupportedAlgorithm[\"sha256\"] = \"sha256\";\n SupportedAlgorithm[\"sha512\"] = \"sha512\";\n})(SupportedAlgorithm || (SupportedAlgorithm = {}));\n;\n//# sourceMappingURL=types.js.map","import BN from 'bn.js';\nimport hash from 'hash.js';\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, basedir, module) {\n\treturn module = {\n\t\tpath: basedir,\n\t\texports: {},\n\t\trequire: function (path, base) {\n\t\t\treturn commonjsRequire(path, (base === undefined || base === null) ? module.path : base);\n\t\t}\n\t}, fn(module, module.exports), module.exports;\n}\n\nfunction getDefaultExportFromNamespaceIfPresent (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') ? n['default'] : n;\n}\n\nfunction getDefaultExportFromNamespaceIfNotNamed (n) {\n\treturn n && Object.prototype.hasOwnProperty.call(n, 'default') && Object.keys(n).length === 1 ? n['default'] : n;\n}\n\nfunction getAugmentedNamespace(n) {\n\tif (n.__esModule) return n;\n\tvar a = Object.defineProperty({}, '__esModule', {value: true});\n\tObject.keys(n).forEach(function (k) {\n\t\tvar d = Object.getOwnPropertyDescriptor(n, k);\n\t\tObject.defineProperty(a, k, d.get ? d : {\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn n[k];\n\t\t\t}\n\t\t});\n\t});\n\treturn a;\n}\n\nfunction commonjsRequire () {\n\tthrow new Error('Dynamic requires are not currently supported by @rollup/plugin-commonjs');\n}\n\nvar minimalisticAssert = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n\nvar utils_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n});\n\nvar utils_1$1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar utils = exports;\n\n\n\n\nutils.assert = minimalisticAssert;\nutils.toArray = utils_1.toArray;\nutils.zero2 = utils_1.zero2;\nutils.toHex = utils_1.toHex;\nutils.encode = utils_1.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n});\n\n'use strict';\n\n\n\nvar getNAF = utils_1$1.getNAF;\nvar getJSF = utils_1$1.getJSF;\nvar assert$1 = utils_1$1.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nvar base = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert$1(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert$1(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils_1$1.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert$1(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert$1(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils_1$1.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n\nvar inherits_browser = createCommonjsModule(function (module) {\nif (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});\n\n'use strict';\n\n\n\n\n\n\nvar assert$2 = utils_1$1.assert;\n\nfunction ShortCurve(conf) {\n base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits_browser(ShortCurve, base);\nvar short_1 = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert$2(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits_browser(Point, base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits_browser(JPoint, base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nvar curve_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curve = exports;\n\ncurve.base = base;\ncurve.short = short_1;\ncurve.mont = /*RicMoo:ethers:require(./mont)*/(null);\ncurve.edwards = /*RicMoo:ethers:require(./edwards)*/(null);\n});\n\nvar curves_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar curves = exports;\n\n\n\n\n\nvar assert = utils_1$1.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve_1.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve_1.edwards(options);\n else\n this.curve = new curve_1.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = /*RicMoo:ethers:require(./precomputed/secp256k1)*/(null).crash();\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n});\n\n'use strict';\n\n\n\n\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils_1.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils_1.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils_1.toArray(options.pers, options.persEnc || 'hex');\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nvar hmacDrbg = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils_1.toArray(entropy, entropyEnc);\n add = utils_1.toArray(add, addEnc);\n\n minimalisticAssert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils_1.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils_1.encode(res, enc);\n};\n\n'use strict';\n\n\n\nvar assert$3 = utils_1$1.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nvar key = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert$3(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert$3(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert$3(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n\n'use strict';\n\n\n\n\nvar assert$4 = utils_1$1.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert$4(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nvar signature = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils_1$1.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils_1$1.encode(res, enc);\n};\n\n'use strict';\n\n\n\n\n\nvar rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nvar assert$5 = utils_1$1.assert;\n\n\n\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert$5(Object.prototype.hasOwnProperty.call(curves_1, options),\n 'Unknown curve ' + options);\n\n options = curves_1[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves_1.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nvar ec = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new key(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return key.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return key.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new hmacDrbg({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature$1, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature$1 = new signature(signature$1, 'hex');\n\n // Perform primitive values validation\n var r = signature$1.r;\n var s = signature$1.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature$1, j, enc) {\n assert$5((3 & j) === j, 'The recovery param is more than two bits');\n signature$1 = new signature(signature$1, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature$1.r;\n var s = signature$1.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature$1.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature$1, Q, enc) {\n signature$1 = new signature(signature$1, enc);\n if (signature$1.recoveryParam !== null)\n return signature$1.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature$1, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n\nvar elliptic_1 = createCommonjsModule(function (module, exports) {\n'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = /*RicMoo:ethers*/{ version: \"6.5.4\" }.version;\nelliptic.utils = utils_1$1;\nelliptic.rand = /*RicMoo:ethers:require(brorand)*/(function() { throw new Error('unsupported'); });\nelliptic.curve = curve_1;\nelliptic.curves = curves_1;\n\n// Protocols\nelliptic.ec = ec;\nelliptic.eddsa = /*RicMoo:ethers:require(./elliptic/eddsa)*/(null);\n});\n\nvar EC$1 = elliptic_1.ec;\n\nexport { EC$1 as EC };\n//# sourceMappingURL=elliptic.js.map\n","export const version = \"signing-key/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { EC } from \"./elliptic\";\nimport { arrayify, hexDataLength, hexlify, hexZeroPad, splitSignature } from \"@ethersproject/bytes\";\nimport { defineReadOnly } from \"@ethersproject/properties\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nlet _curve = null;\nfunction getCurve() {\n if (!_curve) {\n _curve = new EC(\"secp256k1\");\n }\n return _curve;\n}\nexport class SigningKey {\n constructor(privateKey) {\n defineReadOnly(this, \"curve\", \"secp256k1\");\n defineReadOnly(this, \"privateKey\", hexlify(privateKey));\n if (hexDataLength(this.privateKey) !== 32) {\n logger.throwArgumentError(\"invalid private key\", \"privateKey\", \"[[ REDACTED ]]\");\n }\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n defineReadOnly(this, \"publicKey\", \"0x\" + keyPair.getPublic(false, \"hex\"));\n defineReadOnly(this, \"compressedPublicKey\", \"0x\" + keyPair.getPublic(true, \"hex\"));\n defineReadOnly(this, \"_isSigningKey\", true);\n }\n _addPoint(other) {\n const p0 = getCurve().keyFromPublic(arrayify(this.publicKey));\n const p1 = getCurve().keyFromPublic(arrayify(other));\n return \"0x\" + p0.pub.add(p1.pub).encodeCompressed(\"hex\");\n }\n signDigest(digest) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const digestBytes = arrayify(digest);\n if (digestBytes.length !== 32) {\n logger.throwArgumentError(\"bad digest length\", \"digest\", digest);\n }\n const signature = keyPair.sign(digestBytes, { canonical: true });\n return splitSignature({\n recoveryParam: signature.recoveryParam,\n r: hexZeroPad(\"0x\" + signature.r.toString(16), 32),\n s: hexZeroPad(\"0x\" + signature.s.toString(16), 32),\n });\n }\n computeSharedSecret(otherKey) {\n const keyPair = getCurve().keyFromPrivate(arrayify(this.privateKey));\n const otherKeyPair = getCurve().keyFromPublic(arrayify(computePublicKey(otherKey)));\n return hexZeroPad(\"0x\" + keyPair.derive(otherKeyPair.getPublic()).toString(16), 32);\n }\n static isSigningKey(value) {\n return !!(value && value._isSigningKey);\n }\n}\nexport function recoverPublicKey(digest, signature) {\n const sig = splitSignature(signature);\n const rs = { r: arrayify(sig.r), s: arrayify(sig.s) };\n return \"0x\" + getCurve().recoverPubKey(arrayify(digest), rs, sig.recoveryParam).encode(\"hex\", false);\n}\nexport function computePublicKey(key, compressed) {\n const bytes = arrayify(key);\n if (bytes.length === 32) {\n const signingKey = new SigningKey(bytes);\n if (compressed) {\n return \"0x\" + getCurve().keyFromPrivate(bytes).getPublic(true, \"hex\");\n }\n return signingKey.publicKey;\n }\n else if (bytes.length === 33) {\n if (compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(false, \"hex\");\n }\n else if (bytes.length === 65) {\n if (!compressed) {\n return hexlify(bytes);\n }\n return \"0x\" + getCurve().keyFromPublic(bytes).getPublic(true, \"hex\");\n }\n return logger.throwArgumentError(\"invalid public or private key\", \"key\", \"[REDACTED]\");\n}\n//# sourceMappingURL=index.js.map","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, 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 // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","export const version = \"solidity/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, concat, hexlify, zeroPad } from \"@ethersproject/bytes\";\nimport { keccak256 as hashKeccak256 } from \"@ethersproject/keccak256\";\nimport { sha256 as hashSha256 } from \"@ethersproject/sha2\";\nimport { toUtf8Bytes } from \"@ethersproject/strings\";\nconst regexBytes = new RegExp(\"^bytes([0-9]+)$\");\nconst regexNumber = new RegExp(\"^(u?int)([0-9]*)$\");\nconst regexArray = new RegExp(\"^(.*)\\\\[([0-9]*)\\\\]$\");\nconst Zeros = \"0000000000000000000000000000000000000000000000000000000000000000\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nfunction _pack(type, value, isArray) {\n switch (type) {\n case \"address\":\n if (isArray) {\n return zeroPad(value, 32);\n }\n return arrayify(value);\n case \"string\":\n return toUtf8Bytes(value);\n case \"bytes\":\n return arrayify(value);\n case \"bool\":\n value = (value ? \"0x01\" : \"0x00\");\n if (isArray) {\n return zeroPad(value, 32);\n }\n return arrayify(value);\n }\n let match = type.match(regexNumber);\n if (match) {\n //let signed = (match[1] === \"int\")\n let size = parseInt(match[2] || \"256\");\n if ((match[2] && String(size) !== match[2]) || (size % 8 !== 0) || size === 0 || size > 256) {\n logger.throwArgumentError(\"invalid number type\", \"type\", type);\n }\n if (isArray) {\n size = 256;\n }\n value = BigNumber.from(value).toTwos(size);\n return zeroPad(value, size / 8);\n }\n match = type.match(regexBytes);\n if (match) {\n const size = parseInt(match[1]);\n if (String(size) !== match[1] || size === 0 || size > 32) {\n logger.throwArgumentError(\"invalid bytes type\", \"type\", type);\n }\n if (arrayify(value).byteLength !== size) {\n logger.throwArgumentError(`invalid value for ${type}`, \"value\", value);\n }\n if (isArray) {\n return arrayify((value + Zeros).substring(0, 66));\n }\n return value;\n }\n match = type.match(regexArray);\n if (match && Array.isArray(value)) {\n const baseType = match[1];\n const count = parseInt(match[2] || String(value.length));\n if (count != value.length) {\n logger.throwArgumentError(`invalid array length for ${type}`, \"value\", value);\n }\n const result = [];\n value.forEach(function (value) {\n result.push(_pack(baseType, value, true));\n });\n return concat(result);\n }\n return logger.throwArgumentError(\"invalid type\", \"type\", type);\n}\n// @TODO: Array Enum\nexport function pack(types, values) {\n if (types.length != values.length) {\n logger.throwArgumentError(\"wrong number of values; expected ${ types.length }\", \"values\", values);\n }\n const tight = [];\n types.forEach(function (type, index) {\n tight.push(_pack(type, values[index]));\n });\n return hexlify(concat(tight));\n}\nexport function keccak256(types, values) {\n return hashKeccak256(pack(types, values));\n}\nexport function sha256(types, values) {\n return hashSha256(pack(types, values));\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nimport { HashZero } from \"@ethersproject/constants\";\nimport { arrayify, concat, hexlify } from \"@ethersproject/bytes\";\nimport { toUtf8Bytes, toUtf8String } from \"./utf8\";\nexport function formatBytes32String(text) {\n // Get the bytes\n const bytes = toUtf8Bytes(text);\n // Check we have room for null-termination\n if (bytes.length > 31) {\n throw new Error(\"bytes32 string must be less than 32 bytes\");\n }\n // Zero-pad (implicitly null-terminates)\n return hexlify(concat([bytes, HashZero]).slice(0, 32));\n}\nexport function parseBytes32String(bytes) {\n const data = arrayify(bytes);\n // Must be 32 bytes with a null-termination\n if (data.length !== 32) {\n throw new Error(\"invalid bytes32 - not 32 bytes long\");\n }\n if (data[31] !== 0) {\n throw new Error(\"invalid bytes32 string - no null terminator\");\n }\n // Find the null termination\n let length = 31;\n while (data[length - 1] === 0) {\n length--;\n }\n // Determine the string value\n return toUtf8String(data.slice(0, length));\n}\n//# sourceMappingURL=bytes32.js.map","export const version = \"strings/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { arrayify } from \"@ethersproject/bytes\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\n///////////////////////////////\nexport var UnicodeNormalizationForm;\n(function (UnicodeNormalizationForm) {\n UnicodeNormalizationForm[\"current\"] = \"\";\n UnicodeNormalizationForm[\"NFC\"] = \"NFC\";\n UnicodeNormalizationForm[\"NFD\"] = \"NFD\";\n UnicodeNormalizationForm[\"NFKC\"] = \"NFKC\";\n UnicodeNormalizationForm[\"NFKD\"] = \"NFKD\";\n})(UnicodeNormalizationForm || (UnicodeNormalizationForm = {}));\n;\nexport var Utf8ErrorReason;\n(function (Utf8ErrorReason) {\n // A continuation byte was present where there was nothing to continue\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"UNEXPECTED_CONTINUE\"] = \"unexpected continuation byte\";\n // An invalid (non-continuation) byte to start a UTF-8 codepoint was found\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"BAD_PREFIX\"] = \"bad codepoint prefix\";\n // The string is too short to process the expected codepoint\n // - offset = the index the codepoint began in\n Utf8ErrorReason[\"OVERRUN\"] = \"string overrun\";\n // A missing continuation byte was expected but not found\n // - offset = the index the continuation byte was expected at\n Utf8ErrorReason[\"MISSING_CONTINUE\"] = \"missing continuation byte\";\n // The computed code point is outside the range for UTF-8\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; outside the UTF-8 range\n Utf8ErrorReason[\"OUT_OF_RANGE\"] = \"out of UTF-8 range\";\n // UTF-8 strings may not contain UTF-16 surrogate pairs\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; inside the UTF-16 surrogate range\n Utf8ErrorReason[\"UTF16_SURROGATE\"] = \"UTF-16 surrogate\";\n // The string is an overlong representation\n // - offset = start of this codepoint\n // - badCodepoint = the computed codepoint; already bounds checked\n Utf8ErrorReason[\"OVERLONG\"] = \"overlong representation\";\n})(Utf8ErrorReason || (Utf8ErrorReason = {}));\n;\nfunction errorFunc(reason, offset, bytes, output, badCodepoint) {\n return logger.throwArgumentError(`invalid codepoint at offset ${offset}; ${reason}`, \"bytes\", bytes);\n}\nfunction ignoreFunc(reason, offset, bytes, output, badCodepoint) {\n // If there is an invalid prefix (including stray continuation), skip any additional continuation bytes\n if (reason === Utf8ErrorReason.BAD_PREFIX || reason === Utf8ErrorReason.UNEXPECTED_CONTINUE) {\n let i = 0;\n for (let o = offset + 1; o < bytes.length; o++) {\n if (bytes[o] >> 6 !== 0x02) {\n break;\n }\n i++;\n }\n return i;\n }\n // This byte runs us past the end of the string, so just jump to the end\n // (but the first byte was read already read and therefore skipped)\n if (reason === Utf8ErrorReason.OVERRUN) {\n return bytes.length - offset - 1;\n }\n // Nothing to skip\n return 0;\n}\nfunction replaceFunc(reason, offset, bytes, output, badCodepoint) {\n // Overlong representations are otherwise \"valid\" code points; just non-deistingtished\n if (reason === Utf8ErrorReason.OVERLONG) {\n output.push(badCodepoint);\n return 0;\n }\n // Put the replacement character into the output\n output.push(0xfffd);\n // Otherwise, process as if ignoring errors\n return ignoreFunc(reason, offset, bytes, output, badCodepoint);\n}\n// Common error handing strategies\nexport const Utf8ErrorFuncs = Object.freeze({\n error: errorFunc,\n ignore: ignoreFunc,\n replace: replaceFunc\n});\n// http://stackoverflow.com/questions/13356493/decode-utf-8-with-javascript#13691499\nfunction getUtf8CodePoints(bytes, onError) {\n if (onError == null) {\n onError = Utf8ErrorFuncs.error;\n }\n bytes = arrayify(bytes);\n const result = [];\n let i = 0;\n // Invalid bytes are ignored\n while (i < bytes.length) {\n const c = bytes[i++];\n // 0xxx xxxx\n if (c >> 7 === 0) {\n result.push(c);\n continue;\n }\n // Multibyte; how many bytes left for this character?\n let extraLength = null;\n let overlongMask = null;\n // 110x xxxx 10xx xxxx\n if ((c & 0xe0) === 0xc0) {\n extraLength = 1;\n overlongMask = 0x7f;\n // 1110 xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf0) === 0xe0) {\n extraLength = 2;\n overlongMask = 0x7ff;\n // 1111 0xxx 10xx xxxx 10xx xxxx 10xx xxxx\n }\n else if ((c & 0xf8) === 0xf0) {\n extraLength = 3;\n overlongMask = 0xffff;\n }\n else {\n if ((c & 0xc0) === 0x80) {\n i += onError(Utf8ErrorReason.UNEXPECTED_CONTINUE, i - 1, bytes, result);\n }\n else {\n i += onError(Utf8ErrorReason.BAD_PREFIX, i - 1, bytes, result);\n }\n continue;\n }\n // Do we have enough bytes in our data?\n if (i - 1 + extraLength >= bytes.length) {\n i += onError(Utf8ErrorReason.OVERRUN, i - 1, bytes, result);\n continue;\n }\n // Remove the length prefix from the char\n let res = c & ((1 << (8 - extraLength - 1)) - 1);\n for (let j = 0; j < extraLength; j++) {\n let nextChar = bytes[i];\n // Invalid continuation byte\n if ((nextChar & 0xc0) != 0x80) {\n i += onError(Utf8ErrorReason.MISSING_CONTINUE, i, bytes, result);\n res = null;\n break;\n }\n ;\n res = (res << 6) | (nextChar & 0x3f);\n i++;\n }\n // See above loop for invalid continuation byte\n if (res === null) {\n continue;\n }\n // Maximum code point\n if (res > 0x10ffff) {\n i += onError(Utf8ErrorReason.OUT_OF_RANGE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Reserved for UTF-16 surrogate halves\n if (res >= 0xd800 && res <= 0xdfff) {\n i += onError(Utf8ErrorReason.UTF16_SURROGATE, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n // Check for overlong sequences (more bytes than needed)\n if (res <= overlongMask) {\n i += onError(Utf8ErrorReason.OVERLONG, i - 1 - extraLength, bytes, result, res);\n continue;\n }\n result.push(res);\n }\n return result;\n}\n// http://stackoverflow.com/questions/18729405/how-to-convert-utf8-string-to-byte-array\nexport function toUtf8Bytes(str, form = UnicodeNormalizationForm.current) {\n if (form != UnicodeNormalizationForm.current) {\n logger.checkNormalize();\n str = str.normalize(form);\n }\n let result = [];\n for (let i = 0; i < str.length; i++) {\n const c = str.charCodeAt(i);\n if (c < 0x80) {\n result.push(c);\n }\n else if (c < 0x800) {\n result.push((c >> 6) | 0xc0);\n result.push((c & 0x3f) | 0x80);\n }\n else if ((c & 0xfc00) == 0xd800) {\n i++;\n const c2 = str.charCodeAt(i);\n if (i >= str.length || (c2 & 0xfc00) !== 0xdc00) {\n throw new Error(\"invalid utf-8 string\");\n }\n // Surrogate Pair\n const pair = 0x10000 + ((c & 0x03ff) << 10) + (c2 & 0x03ff);\n result.push((pair >> 18) | 0xf0);\n result.push(((pair >> 12) & 0x3f) | 0x80);\n result.push(((pair >> 6) & 0x3f) | 0x80);\n result.push((pair & 0x3f) | 0x80);\n }\n else {\n result.push((c >> 12) | 0xe0);\n result.push(((c >> 6) & 0x3f) | 0x80);\n result.push((c & 0x3f) | 0x80);\n }\n }\n return arrayify(result);\n}\n;\nfunction escapeChar(value) {\n const hex = (\"0000\" + value.toString(16));\n return \"\\\\u\" + hex.substring(hex.length - 4);\n}\nexport function _toEscapedUtf8String(bytes, onError) {\n return '\"' + getUtf8CodePoints(bytes, onError).map((codePoint) => {\n if (codePoint < 256) {\n switch (codePoint) {\n case 8: return \"\\\\b\";\n case 9: return \"\\\\t\";\n case 10: return \"\\\\n\";\n case 13: return \"\\\\r\";\n case 34: return \"\\\\\\\"\";\n case 92: return \"\\\\\\\\\";\n }\n if (codePoint >= 32 && codePoint < 127) {\n return String.fromCharCode(codePoint);\n }\n }\n if (codePoint <= 0xffff) {\n return escapeChar(codePoint);\n }\n codePoint -= 0x10000;\n return escapeChar(((codePoint >> 10) & 0x3ff) + 0xd800) + escapeChar((codePoint & 0x3ff) + 0xdc00);\n }).join(\"\") + '\"';\n}\nexport function _toUtf8String(codePoints) {\n return codePoints.map((codePoint) => {\n if (codePoint <= 0xffff) {\n return String.fromCharCode(codePoint);\n }\n codePoint -= 0x10000;\n return String.fromCharCode((((codePoint >> 10) & 0x3ff) + 0xd800), ((codePoint & 0x3ff) + 0xdc00));\n }).join(\"\");\n}\nexport function toUtf8String(bytes, onError) {\n return _toUtf8String(getUtf8CodePoints(bytes, onError));\n}\nexport function toUtf8CodePoints(str, form = UnicodeNormalizationForm.current) {\n return getUtf8CodePoints(toUtf8Bytes(str, form));\n}\n//# sourceMappingURL=utf8.js.map","export const version = \"transactions/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { BigNumber } from \"@ethersproject/bignumber\";\nimport { arrayify, hexConcat, hexDataLength, hexDataSlice, hexlify, hexZeroPad, isBytesLike, splitSignature, stripZeros, } from \"@ethersproject/bytes\";\nimport { Zero } from \"@ethersproject/constants\";\nimport { keccak256 } from \"@ethersproject/keccak256\";\nimport { checkProperties } from \"@ethersproject/properties\";\nimport * as RLP from \"@ethersproject/rlp\";\nimport { computePublicKey, recoverPublicKey } from \"@ethersproject/signing-key\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nexport var TransactionTypes;\n(function (TransactionTypes) {\n TransactionTypes[TransactionTypes[\"legacy\"] = 0] = \"legacy\";\n TransactionTypes[TransactionTypes[\"eip2930\"] = 1] = \"eip2930\";\n TransactionTypes[TransactionTypes[\"eip1559\"] = 2] = \"eip1559\";\n})(TransactionTypes || (TransactionTypes = {}));\n;\n///////////////////////////////\nfunction handleAddress(value) {\n if (value === \"0x\") {\n return null;\n }\n return getAddress(value);\n}\nfunction handleNumber(value) {\n if (value === \"0x\") {\n return Zero;\n }\n return BigNumber.from(value);\n}\n// Legacy Transaction Fields\nconst transactionFields = [\n { name: \"nonce\", maxLength: 32, numeric: true },\n { name: \"gasPrice\", maxLength: 32, numeric: true },\n { name: \"gasLimit\", maxLength: 32, numeric: true },\n { name: \"to\", length: 20 },\n { name: \"value\", maxLength: 32, numeric: true },\n { name: \"data\" },\n];\nconst allowedTransactionKeys = {\n chainId: true, data: true, gasLimit: true, gasPrice: true, nonce: true, to: true, type: true, value: true\n};\nexport function computeAddress(key) {\n const publicKey = computePublicKey(key);\n return getAddress(hexDataSlice(keccak256(hexDataSlice(publicKey, 1)), 12));\n}\nexport function recoverAddress(digest, signature) {\n return computeAddress(recoverPublicKey(arrayify(digest), signature));\n}\nfunction formatNumber(value, name) {\n const result = stripZeros(BigNumber.from(value).toHexString());\n if (result.length > 32) {\n logger.throwArgumentError(\"invalid length for \" + name, (\"transaction:\" + name), value);\n }\n return result;\n}\nfunction accessSetify(addr, storageKeys) {\n return {\n address: getAddress(addr),\n storageKeys: (storageKeys || []).map((storageKey, index) => {\n if (hexDataLength(storageKey) !== 32) {\n logger.throwArgumentError(\"invalid access list storageKey\", `accessList[${addr}:${index}]`, storageKey);\n }\n return storageKey.toLowerCase();\n })\n };\n}\nexport function accessListify(value) {\n if (Array.isArray(value)) {\n return value.map((set, index) => {\n if (Array.isArray(set)) {\n if (set.length > 2) {\n logger.throwArgumentError(\"access list expected to be [ address, storageKeys[] ]\", `value[${index}]`, set);\n }\n return accessSetify(set[0], set[1]);\n }\n return accessSetify(set.address, set.storageKeys);\n });\n }\n const result = Object.keys(value).map((addr) => {\n const storageKeys = value[addr].reduce((accum, storageKey) => {\n accum[storageKey] = true;\n return accum;\n }, {});\n return accessSetify(addr, Object.keys(storageKeys).sort());\n });\n result.sort((a, b) => (a.address.localeCompare(b.address)));\n return result;\n}\nfunction formatAccessList(value) {\n return accessListify(value).map((set) => [set.address, set.storageKeys]);\n}\nfunction _serializeEip1559(transaction, signature) {\n // If there is an explicit gasPrice, make sure it matches the\n // EIP-1559 fees; otherwise they may not understand what they\n // think they are setting in terms of fee.\n if (transaction.gasPrice != null) {\n const gasPrice = BigNumber.from(transaction.gasPrice);\n const maxFeePerGas = BigNumber.from(transaction.maxFeePerGas || 0);\n if (!gasPrice.eq(maxFeePerGas)) {\n logger.throwArgumentError(\"mismatch EIP-1559 gasPrice != maxFeePerGas\", \"tx\", {\n gasPrice, maxFeePerGas\n });\n }\n }\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.maxPriorityFeePerGas || 0, \"maxPriorityFeePerGas\"),\n formatNumber(transaction.maxFeePerGas || 0, \"maxFeePerGas\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x02\", RLP.encode(fields)]);\n}\nfunction _serializeEip2930(transaction, signature) {\n const fields = [\n formatNumber(transaction.chainId || 0, \"chainId\"),\n formatNumber(transaction.nonce || 0, \"nonce\"),\n formatNumber(transaction.gasPrice || 0, \"gasPrice\"),\n formatNumber(transaction.gasLimit || 0, \"gasLimit\"),\n ((transaction.to != null) ? getAddress(transaction.to) : \"0x\"),\n formatNumber(transaction.value || 0, \"value\"),\n (transaction.data || \"0x\"),\n (formatAccessList(transaction.accessList || []))\n ];\n if (signature) {\n const sig = splitSignature(signature);\n fields.push(formatNumber(sig.recoveryParam, \"recoveryParam\"));\n fields.push(stripZeros(sig.r));\n fields.push(stripZeros(sig.s));\n }\n return hexConcat([\"0x01\", RLP.encode(fields)]);\n}\n// Legacy Transactions and EIP-155\nfunction _serialize(transaction, signature) {\n checkProperties(transaction, allowedTransactionKeys);\n const raw = [];\n transactionFields.forEach(function (fieldInfo) {\n let value = transaction[fieldInfo.name] || ([]);\n const options = {};\n if (fieldInfo.numeric) {\n options.hexPad = \"left\";\n }\n value = arrayify(hexlify(value, options));\n // Fixed-width field\n if (fieldInfo.length && value.length !== fieldInfo.length && value.length > 0) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n // Variable-width (with a maximum)\n if (fieldInfo.maxLength) {\n value = stripZeros(value);\n if (value.length > fieldInfo.maxLength) {\n logger.throwArgumentError(\"invalid length for \" + fieldInfo.name, (\"transaction:\" + fieldInfo.name), value);\n }\n }\n raw.push(hexlify(value));\n });\n let chainId = 0;\n if (transaction.chainId != null) {\n // A chainId was provided; if non-zero we'll use EIP-155\n chainId = transaction.chainId;\n if (typeof (chainId) !== \"number\") {\n logger.throwArgumentError(\"invalid transaction.chainId\", \"transaction\", transaction);\n }\n }\n else if (signature && !isBytesLike(signature) && signature.v > 28) {\n // No chainId provided, but the signature is signing with EIP-155; derive chainId\n chainId = Math.floor((signature.v - 35) / 2);\n }\n // We have an EIP-155 transaction (chainId was specified and non-zero)\n if (chainId !== 0) {\n raw.push(hexlify(chainId)); // @TODO: hexValue?\n raw.push(\"0x\");\n raw.push(\"0x\");\n }\n // Requesting an unsigned transaction\n if (!signature) {\n return RLP.encode(raw);\n }\n // The splitSignature will ensure the transaction has a recoveryParam in the\n // case that the signTransaction function only adds a v.\n const sig = splitSignature(signature);\n // We pushed a chainId and null r, s on for hashing only; remove those\n let v = 27 + sig.recoveryParam;\n if (chainId !== 0) {\n raw.pop();\n raw.pop();\n raw.pop();\n v += chainId * 2 + 8;\n // If an EIP-155 v (directly or indirectly; maybe _vs) was provided, check it!\n if (sig.v > 28 && sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n }\n else if (sig.v !== v) {\n logger.throwArgumentError(\"transaction.chainId/signature.v mismatch\", \"signature\", signature);\n }\n raw.push(hexlify(v));\n raw.push(stripZeros(arrayify(sig.r)));\n raw.push(stripZeros(arrayify(sig.s)));\n return RLP.encode(raw);\n}\nexport function serialize(transaction, signature) {\n // Legacy and EIP-155 Transactions\n if (transaction.type == null || transaction.type === 0) {\n if (transaction.accessList != null) {\n logger.throwArgumentError(\"untyped transactions do not support accessList; include type: 1\", \"transaction\", transaction);\n }\n return _serialize(transaction, signature);\n }\n // Typed Transactions (EIP-2718)\n switch (transaction.type) {\n case 1:\n return _serializeEip2930(transaction, signature);\n case 2:\n return _serializeEip1559(transaction, signature);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${transaction.type}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"serializeTransaction\",\n transactionType: transaction.type\n });\n}\nfunction _parseEipSignature(tx, fields, serialize) {\n try {\n const recid = handleNumber(fields[0]).toNumber();\n if (recid !== 0 && recid !== 1) {\n throw new Error(\"bad recid\");\n }\n tx.v = recid;\n }\n catch (error) {\n logger.throwArgumentError(\"invalid v for transaction type: 1\", \"v\", fields[0]);\n }\n tx.r = hexZeroPad(fields[1], 32);\n tx.s = hexZeroPad(fields[2], 32);\n try {\n const digest = keccak256(serialize(tx));\n tx.from = recoverAddress(digest, { r: tx.r, s: tx.s, recoveryParam: tx.v });\n }\n catch (error) { }\n}\nfunction _parseEip1559(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 9 && transaction.length !== 12) {\n logger.throwArgumentError(\"invalid component count for transaction type: 2\", \"payload\", hexlify(payload));\n }\n const maxPriorityFeePerGas = handleNumber(transaction[2]);\n const maxFeePerGas = handleNumber(transaction[3]);\n const tx = {\n type: 2,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasPrice: null,\n gasLimit: handleNumber(transaction[4]),\n to: handleAddress(transaction[5]),\n value: handleNumber(transaction[6]),\n data: transaction[7],\n accessList: accessListify(transaction[8]),\n };\n // Unsigned EIP-1559 Transaction\n if (transaction.length === 9) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(9), _serializeEip1559);\n return tx;\n}\nfunction _parseEip2930(payload) {\n const transaction = RLP.decode(payload.slice(1));\n if (transaction.length !== 8 && transaction.length !== 11) {\n logger.throwArgumentError(\"invalid component count for transaction type: 1\", \"payload\", hexlify(payload));\n }\n const tx = {\n type: 1,\n chainId: handleNumber(transaction[0]).toNumber(),\n nonce: handleNumber(transaction[1]).toNumber(),\n gasPrice: handleNumber(transaction[2]),\n gasLimit: handleNumber(transaction[3]),\n to: handleAddress(transaction[4]),\n value: handleNumber(transaction[5]),\n data: transaction[6],\n accessList: accessListify(transaction[7])\n };\n // Unsigned EIP-2930 Transaction\n if (transaction.length === 8) {\n return tx;\n }\n tx.hash = keccak256(payload);\n _parseEipSignature(tx, transaction.slice(8), _serializeEip2930);\n return tx;\n}\n// Legacy Transactions and EIP-155\nfunction _parse(rawTransaction) {\n const transaction = RLP.decode(rawTransaction);\n if (transaction.length !== 9 && transaction.length !== 6) {\n logger.throwArgumentError(\"invalid raw transaction\", \"rawTransaction\", rawTransaction);\n }\n const tx = {\n nonce: handleNumber(transaction[0]).toNumber(),\n gasPrice: handleNumber(transaction[1]),\n gasLimit: handleNumber(transaction[2]),\n to: handleAddress(transaction[3]),\n value: handleNumber(transaction[4]),\n data: transaction[5],\n chainId: 0\n };\n // Legacy unsigned transaction\n if (transaction.length === 6) {\n return tx;\n }\n try {\n tx.v = BigNumber.from(transaction[6]).toNumber();\n }\n catch (error) {\n // @TODO: What makes snese to do? The v is too big\n return tx;\n }\n tx.r = hexZeroPad(transaction[7], 32);\n tx.s = hexZeroPad(transaction[8], 32);\n if (BigNumber.from(tx.r).isZero() && BigNumber.from(tx.s).isZero()) {\n // EIP-155 unsigned transaction\n tx.chainId = tx.v;\n tx.v = 0;\n }\n else {\n // Signed Transaction\n tx.chainId = Math.floor((tx.v - 35) / 2);\n if (tx.chainId < 0) {\n tx.chainId = 0;\n }\n let recoveryParam = tx.v - 27;\n const raw = transaction.slice(0, 6);\n if (tx.chainId !== 0) {\n raw.push(hexlify(tx.chainId));\n raw.push(\"0x\");\n raw.push(\"0x\");\n recoveryParam -= tx.chainId * 2 + 8;\n }\n const digest = keccak256(RLP.encode(raw));\n try {\n tx.from = recoverAddress(digest, { r: hexlify(tx.r), s: hexlify(tx.s), recoveryParam: recoveryParam });\n }\n catch (error) { }\n tx.hash = keccak256(rawTransaction);\n }\n tx.type = null;\n return tx;\n}\nexport function parse(rawTransaction) {\n const payload = arrayify(rawTransaction);\n // Legacy and EIP-155 Transactions\n if (payload[0] > 0x7f) {\n return _parse(payload);\n }\n // Typed Transaction (EIP-2718)\n switch (payload[0]) {\n case 1:\n return _parseEip2930(payload);\n case 2:\n return _parseEip1559(payload);\n default:\n break;\n }\n return logger.throwError(`unsupported transaction type: ${payload[0]}`, Logger.errors.UNSUPPORTED_OPERATION, {\n operation: \"parseTransaction\",\n transactionType: payload[0]\n });\n}\n//# sourceMappingURL=index.js.map","export const version = \"units/5.7.0\";\n//# sourceMappingURL=_version.js.map","\"use strict\";\nimport { formatFixed, parseFixed } from \"@ethersproject/bignumber\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nconst names = [\n \"wei\",\n \"kwei\",\n \"mwei\",\n \"gwei\",\n \"szabo\",\n \"finney\",\n \"ether\",\n];\n// Some environments have issues with RegEx that contain back-tracking, so we cannot\n// use them.\nexport function commify(value) {\n const comps = String(value).split(\".\");\n if (comps.length > 2 || !comps[0].match(/^-?[0-9]*$/) || (comps[1] && !comps[1].match(/^[0-9]*$/)) || value === \".\" || value === \"-.\") {\n logger.throwArgumentError(\"invalid value\", \"value\", value);\n }\n // Make sure we have at least one whole digit (0 if none)\n let whole = comps[0];\n let negative = \"\";\n if (whole.substring(0, 1) === \"-\") {\n negative = \"-\";\n whole = whole.substring(1);\n }\n // Make sure we have at least 1 whole digit with no leading zeros\n while (whole.substring(0, 1) === \"0\") {\n whole = whole.substring(1);\n }\n if (whole === \"\") {\n whole = \"0\";\n }\n let suffix = \"\";\n if (comps.length === 2) {\n suffix = \".\" + (comps[1] || \"0\");\n }\n while (suffix.length > 2 && suffix[suffix.length - 1] === \"0\") {\n suffix = suffix.substring(0, suffix.length - 1);\n }\n const formatted = [];\n while (whole.length) {\n if (whole.length <= 3) {\n formatted.unshift(whole);\n break;\n }\n else {\n const index = whole.length - 3;\n formatted.unshift(whole.substring(index));\n whole = whole.substring(0, index);\n }\n }\n return negative + formatted.join(\",\") + suffix;\n}\nexport function formatUnits(value, unitName) {\n if (typeof (unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) {\n unitName = 3 * index;\n }\n }\n return formatFixed(value, (unitName != null) ? unitName : 18);\n}\nexport function parseUnits(value, unitName) {\n if (typeof (value) !== \"string\") {\n logger.throwArgumentError(\"value must be a string\", \"value\", value);\n }\n if (typeof (unitName) === \"string\") {\n const index = names.indexOf(unitName);\n if (index !== -1) {\n unitName = 3 * index;\n }\n }\n return parseFixed(value, (unitName != null) ? unitName : 18);\n}\nexport function formatEther(wei) {\n return formatUnits(wei, 18);\n}\nexport function parseEther(ether) {\n return parseUnits(ether, 18);\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { arrayify } from \"@ethersproject/bytes\";\nexport function getUrl(href, options) {\n return __awaiter(this, void 0, void 0, function* () {\n if (options == null) {\n options = {};\n }\n const request = {\n method: (options.method || \"GET\"),\n headers: (options.headers || {}),\n body: (options.body || undefined),\n };\n if (options.skipFetchSetup !== true) {\n request.mode = \"cors\"; // no-cors, cors, *same-origin\n request.cache = \"no-cache\"; // *default, no-cache, reload, force-cache, only-if-cached\n request.credentials = \"same-origin\"; // include, *same-origin, omit\n request.redirect = \"follow\"; // manual, *follow, error\n request.referrer = \"client\"; // no-referrer, *client\n }\n ;\n if (options.fetchOptions != null) {\n const opts = options.fetchOptions;\n if (opts.mode) {\n request.mode = (opts.mode);\n }\n if (opts.cache) {\n request.cache = (opts.cache);\n }\n if (opts.credentials) {\n request.credentials = (opts.credentials);\n }\n if (opts.redirect) {\n request.redirect = (opts.redirect);\n }\n if (opts.referrer) {\n request.referrer = opts.referrer;\n }\n }\n const response = yield fetch(href, request);\n const body = yield response.arrayBuffer();\n const headers = {};\n if (response.headers.forEach) {\n response.headers.forEach((value, key) => {\n headers[key.toLowerCase()] = value;\n });\n }\n else {\n ((response.headers).keys)().forEach((key) => {\n headers[key.toLowerCase()] = response.headers.get(key);\n });\n }\n return {\n headers: headers,\n statusCode: response.status,\n statusMessage: response.statusText,\n body: arrayify(new Uint8Array(body)),\n };\n });\n}\n//# sourceMappingURL=geturl.js.map","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (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};\nimport { decode as base64Decode, encode as base64Encode } from \"@ethersproject/base64\";\nimport { hexlify, isBytesLike } from \"@ethersproject/bytes\";\nimport { shallowCopy } from \"@ethersproject/properties\";\nimport { toUtf8Bytes, toUtf8String } from \"@ethersproject/strings\";\nimport { Logger } from \"@ethersproject/logger\";\nimport { version } from \"./_version\";\nconst logger = new Logger(version);\nimport { getUrl } from \"./geturl\";\nfunction staller(duration) {\n return new Promise((resolve) => {\n setTimeout(resolve, duration);\n });\n}\nfunction bodyify(value, type) {\n if (value == null) {\n return null;\n }\n if (typeof (value) === \"string\") {\n return value;\n }\n if (isBytesLike(value)) {\n if (type && (type.split(\"/\")[0] === \"text\" || type.split(\";\")[0].trim() === \"application/json\")) {\n try {\n return toUtf8String(value);\n }\n catch (error) { }\n ;\n }\n return hexlify(value);\n }\n return value;\n}\nfunction unpercent(value) {\n return toUtf8Bytes(value.replace(/%([0-9a-f][0-9a-f])/gi, (all, code) => {\n return String.fromCharCode(parseInt(code, 16));\n }));\n}\n// This API is still a work in progress; the future changes will likely be:\n// - ConnectionInfo => FetchDataRequest\n// - FetchDataRequest.body? = string | Uint8Array | { contentType: string, data: string | Uint8Array }\n// - If string => text/plain, Uint8Array => application/octet-stream (if content-type unspecified)\n// - FetchDataRequest.processFunc = (body: Uint8Array, response: FetchDataResponse) => T\n// For this reason, it should be considered internal until the API is finalized\nexport function _fetchData(connection, body, processFunc) {\n // How many times to retry in the event of a throttle\n const attemptLimit = (typeof (connection) === \"object\" && connection.throttleLimit != null) ? connection.throttleLimit : 12;\n logger.assertArgument((attemptLimit > 0 && (attemptLimit % 1) === 0), \"invalid connection throttle limit\", \"connection.throttleLimit\", attemptLimit);\n const throttleCallback = ((typeof (connection) === \"object\") ? connection.throttleCallback : null);\n const throttleSlotInterval = ((typeof (connection) === \"object\" && typeof (connection.throttleSlotInterval) === \"number\") ? connection.throttleSlotInterval : 100);\n logger.assertArgument((throttleSlotInterval > 0 && (throttleSlotInterval % 1) === 0), \"invalid connection throttle slot interval\", \"connection.throttleSlotInterval\", throttleSlotInterval);\n const errorPassThrough = ((typeof (connection) === \"object\") ? !!(connection.errorPassThrough) : false);\n const headers = {};\n let url = null;\n // @TODO: Allow ConnectionInfo to override some of these values\n const options = {\n method: \"GET\",\n };\n let allow304 = false;\n let timeout = 2 * 60 * 1000;\n if (typeof (connection) === \"string\") {\n url = connection;\n }\n else if (typeof (connection) === \"object\") {\n if (connection == null || connection.url == null) {\n logger.throwArgumentError(\"missing URL\", \"connection.url\", connection);\n }\n url = connection.url;\n if (typeof (connection.timeout) === \"number\" && connection.timeout > 0) {\n timeout = connection.timeout;\n }\n if (connection.headers) {\n for (const key in connection.headers) {\n headers[key.toLowerCase()] = { key: key, value: String(connection.headers[key]) };\n if ([\"if-none-match\", \"if-modified-since\"].indexOf(key.toLowerCase()) >= 0) {\n allow304 = true;\n }\n }\n }\n options.allowGzip = !!connection.allowGzip;\n if (connection.user != null && connection.password != null) {\n if (url.substring(0, 6) !== \"https:\" && connection.allowInsecureAuthentication !== true) {\n logger.throwError(\"basic authentication requires a secure https url\", Logger.errors.INVALID_ARGUMENT, { argument: \"url\", url: url, user: connection.user, password: \"[REDACTED]\" });\n }\n const authorization = connection.user + \":\" + connection.password;\n headers[\"authorization\"] = {\n key: \"Authorization\",\n value: \"Basic \" + base64Encode(toUtf8Bytes(authorization))\n };\n }\n if (connection.skipFetchSetup != null) {\n options.skipFetchSetup = !!connection.skipFetchSetup;\n }\n if (connection.fetchOptions != null) {\n options.fetchOptions = shallowCopy(connection.fetchOptions);\n }\n }\n const reData = new RegExp(\"^data:([^;:]*)?(;base64)?,(.*)$\", \"i\");\n const dataMatch = ((url) ? url.match(reData) : null);\n if (dataMatch) {\n try {\n const response = {\n statusCode: 200,\n statusMessage: \"OK\",\n headers: { \"content-type\": (dataMatch[1] || \"text/plain\") },\n body: (dataMatch[2] ? base64Decode(dataMatch[3]) : unpercent(dataMatch[3]))\n };\n let result = response.body;\n if (processFunc) {\n result = processFunc(response.body, response);\n }\n return Promise.resolve(result);\n }\n catch (error) {\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(dataMatch[1], dataMatch[2]),\n error: error,\n requestBody: null,\n requestMethod: \"GET\",\n url: url\n });\n }\n }\n if (body) {\n options.method = \"POST\";\n options.body = body;\n if (headers[\"content-type\"] == null) {\n headers[\"content-type\"] = { key: \"Content-Type\", value: \"application/octet-stream\" };\n }\n if (headers[\"content-length\"] == null) {\n headers[\"content-length\"] = { key: \"Content-Length\", value: String(body.length) };\n }\n }\n const flatHeaders = {};\n Object.keys(headers).forEach((key) => {\n const header = headers[key];\n flatHeaders[header.key] = header.value;\n });\n options.headers = flatHeaders;\n const runningTimeout = (function () {\n let timer = null;\n const promise = new Promise(function (resolve, reject) {\n if (timeout) {\n timer = setTimeout(() => {\n if (timer == null) {\n return;\n }\n timer = null;\n reject(logger.makeError(\"timeout\", Logger.errors.TIMEOUT, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n timeout: timeout,\n url: url\n }));\n }, timeout);\n }\n });\n const cancel = function () {\n if (timer == null) {\n return;\n }\n clearTimeout(timer);\n timer = null;\n };\n return { promise, cancel };\n })();\n const runningFetch = (function () {\n return __awaiter(this, void 0, void 0, function* () {\n for (let attempt = 0; attempt < attemptLimit; attempt++) {\n let response = null;\n try {\n response = yield getUrl(url, options);\n if (attempt < attemptLimit) {\n if (response.statusCode === 301 || response.statusCode === 302) {\n // Redirection; for now we only support absolute locataions\n const location = response.headers.location || \"\";\n if (options.method === \"GET\" && location.match(/^https:/)) {\n url = response.headers.location;\n continue;\n }\n }\n else if (response.statusCode === 429) {\n // Exponential back-off throttling\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n let stall = 0;\n const retryAfter = response.headers[\"retry-after\"];\n if (typeof (retryAfter) === \"string\" && retryAfter.match(/^[1-9][0-9]*$/)) {\n stall = parseInt(retryAfter) * 1000;\n }\n else {\n stall = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n }\n //console.log(\"Stalling 429\");\n yield staller(stall);\n continue;\n }\n }\n }\n }\n catch (error) {\n response = error.response;\n if (response == null) {\n runningTimeout.cancel();\n logger.throwError(\"missing response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n serverError: error,\n url: url\n });\n }\n }\n let body = response.body;\n if (allow304 && response.statusCode === 304) {\n body = null;\n }\n else if (!errorPassThrough && (response.statusCode < 200 || response.statusCode >= 300)) {\n runningTimeout.cancel();\n logger.throwError(\"bad response\", Logger.errors.SERVER_ERROR, {\n status: response.statusCode,\n headers: response.headers,\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"] : null)),\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n if (processFunc) {\n try {\n const result = yield processFunc(body, response);\n runningTimeout.cancel();\n return result;\n }\n catch (error) {\n // Allow the processFunc to trigger a throttle\n if (error.throttleRetry && attempt < attemptLimit) {\n let tryAgain = true;\n if (throttleCallback) {\n tryAgain = yield throttleCallback(attempt, url);\n }\n if (tryAgain) {\n const timeout = throttleSlotInterval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n //console.log(\"Stalling callback\");\n yield staller(timeout);\n continue;\n }\n }\n runningTimeout.cancel();\n logger.throwError(\"processing response error\", Logger.errors.SERVER_ERROR, {\n body: bodyify(body, ((response.headers) ? response.headers[\"content-type\"] : null)),\n error: error,\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n }\n }\n runningTimeout.cancel();\n // If we had a processFunc, it either returned a T or threw above.\n // The \"body\" is now a Uint8Array.\n return body;\n }\n return logger.throwError(\"failed response\", Logger.errors.SERVER_ERROR, {\n requestBody: bodyify(options.body, flatHeaders[\"content-type\"]),\n requestMethod: options.method,\n url: url\n });\n });\n })();\n return Promise.race([runningTimeout.promise, runningFetch]);\n}\nexport function fetchJson(connection, json, processFunc) {\n let processJsonFunc = (value, response) => {\n let result = null;\n if (value != null) {\n try {\n result = JSON.parse(toUtf8String(value));\n }\n catch (error) {\n logger.throwError(\"invalid JSON\", Logger.errors.SERVER_ERROR, {\n body: value,\n error: error\n });\n }\n }\n if (processFunc) {\n result = processFunc(result, response);\n }\n return result;\n };\n // If we have json to send, we must\n // - add content-type of application/json (unless already overridden)\n // - convert the json to bytes\n let body = null;\n if (json != null) {\n body = toUtf8Bytes(json);\n // Create a connection with the content-type set for JSON\n const updated = (typeof (connection) === \"string\") ? ({ url: connection }) : shallowCopy(connection);\n if (updated.headers) {\n const hasContentType = (Object.keys(updated.headers).filter((k) => (k.toLowerCase() === \"content-type\")).length) !== 0;\n if (!hasContentType) {\n updated.headers = shallowCopy(updated.headers);\n updated.headers[\"content-type\"] = \"application/json\";\n }\n }\n else {\n updated.headers = { \"content-type\": \"application/json\" };\n }\n connection = updated;\n }\n return _fetchData(connection, body, processJsonFunc);\n}\nexport function poll(func, options) {\n if (!options) {\n options = {};\n }\n options = shallowCopy(options);\n if (options.floor == null) {\n options.floor = 0;\n }\n if (options.ceiling == null) {\n options.ceiling = 10000;\n }\n if (options.interval == null) {\n options.interval = 250;\n }\n return new Promise(function (resolve, reject) {\n let timer = null;\n let done = false;\n // Returns true if cancel was successful. Unsuccessful cancel means we're already done.\n const cancel = () => {\n if (done) {\n return false;\n }\n done = true;\n if (timer) {\n clearTimeout(timer);\n }\n return true;\n };\n if (options.timeout) {\n timer = setTimeout(() => {\n if (cancel()) {\n reject(new Error(\"timeout\"));\n }\n }, options.timeout);\n }\n const retryLimit = options.retryLimit;\n let attempt = 0;\n function check() {\n return func().then(function (result) {\n // If we have a result, or are allowed null then we're done\n if (result !== undefined) {\n if (cancel()) {\n resolve(result);\n }\n }\n else if (options.oncePoll) {\n options.oncePoll.once(\"poll\", check);\n }\n else if (options.onceBlock) {\n options.onceBlock.once(\"block\", check);\n // Otherwise, exponential back-off (up to 10s) our next request\n }\n else if (!done) {\n attempt++;\n if (attempt > retryLimit) {\n if (cancel()) {\n reject(new Error(\"retry limit reached\"));\n }\n return;\n }\n let timeout = options.interval * parseInt(String(Math.random() * Math.pow(2, attempt)));\n if (timeout < options.floor) {\n timeout = options.floor;\n }\n if (timeout > options.ceiling) {\n timeout = options.ceiling;\n }\n setTimeout(check, timeout);\n }\n return null;\n }, function (error) {\n if (cancel()) {\n reject(error);\n }\n });\n }\n check();\n });\n}\n//# sourceMappingURL=index.js.map","export const version = \"web/5.7.1\";\n//# sourceMappingURL=_version.js.map","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e3?r.i-4:r.i:Array.isArray(n)?1:s(n)?2:v(n)?3:0}function u(n,r){return 2===o(n)?n.has(r):Object.prototype.hasOwnProperty.call(n,r)}function a(n,r){return 2===o(n)?n.get(r):n[r]}function f(n,r,t){var e=o(n);2===e?n.set(r,t):3===e?n.add(t):n[r]=t}function c(n,r){return n===r?0!==n||1/n==1/r:n!=n&&r!=r}function s(n){return X&&n instanceof Map}function v(n){return q&&n instanceof Set}function p(n){return n.o||n.t}function l(n){if(Array.isArray(n))return Array.prototype.slice.call(n);var r=rn(n);delete r[Q];for(var t=nn(r),e=0;e1&&(n.set=n.add=n.clear=n.delete=h),Object.freeze(n),e&&i(n,(function(n,r){return d(r,!0)}),!0)),n}function h(){n(2)}function y(n){return null==n||\"object\"!=typeof n||Object.isFrozen(n)}function b(r){var t=tn[r];return t||n(18,r),t}function m(n,r){tn[n]||(tn[n]=r)}function _(){return\"production\"===process.env.NODE_ENV||U||n(0),U}function j(n,r){r&&(b(\"Patches\"),n.u=[],n.s=[],n.v=r)}function g(n){O(n),n.p.forEach(S),n.p=null}function O(n){n===U&&(U=n.l)}function w(n){return U={p:[],l:U,h:n,m:!0,_:0}}function S(n){var r=n[Q];0===r.i||1===r.i?r.j():r.g=!0}function P(r,e){e._=e.p.length;var i=e.p[0],o=void 0!==r&&r!==i;return e.h.O||b(\"ES5\").S(e,r,o),o?(i[Q].P&&(g(e),n(4)),t(r)&&(r=M(e,r),e.l||x(e,r)),e.u&&b(\"Patches\").M(i[Q].t,r,e.u,e.s)):r=M(e,i,[]),g(e),e.u&&e.v(e.u,e.s),r!==H?r:void 0}function M(n,r,t){if(y(r))return r;var e=r[Q];if(!e)return i(r,(function(i,o){return A(n,e,r,i,o,t)}),!0),r;if(e.A!==n)return r;if(!e.P)return x(n,e.t,!0),e.t;if(!e.I){e.I=!0,e.A._--;var o=4===e.i||5===e.i?e.o=l(e.k):e.o,u=o,a=!1;3===e.i&&(u=new Set(o),o.clear(),a=!0),i(u,(function(r,i){return A(n,e,o,r,i,t,a)})),x(n,o,!1),t&&n.u&&b(\"Patches\").N(e,t,n.u,n.s)}return e.o}function A(e,i,o,a,c,s,v){if(\"production\"!==process.env.NODE_ENV&&c===o&&n(5),r(c)){var p=M(e,c,s&&i&&3!==i.i&&!u(i.R,a)?s.concat(a):void 0);if(f(o,a,p),!r(p))return;e.m=!1}else v&&o.add(c);if(t(c)&&!y(c)){if(!e.h.D&&e._<1)return;M(e,c),i&&i.A.l||x(e,c)}}function x(n,r,t){void 0===t&&(t=!1),!n.l&&n.h.D&&n.m&&d(r,t)}function z(n,r){var t=n[Q];return(t?p(t):n)[r]}function I(n,r){if(r in n)for(var t=Object.getPrototypeOf(n);t;){var e=Object.getOwnPropertyDescriptor(t,r);if(e)return e;t=Object.getPrototypeOf(t)}}function k(n){n.P||(n.P=!0,n.l&&k(n.l))}function E(n){n.o||(n.o=l(n.t))}function N(n,r,t){var e=s(r)?b(\"MapSet\").F(r,t):v(r)?b(\"MapSet\").T(r,t):n.O?function(n,r){var t=Array.isArray(n),e={i:t?1:0,A:r?r.A:_(),P:!1,I:!1,R:{},l:r,t:n,k:null,o:null,j:null,C:!1},i=e,o=en;t&&(i=[e],o=on);var u=Proxy.revocable(i,o),a=u.revoke,f=u.proxy;return e.k=f,e.j=a,f}(r,t):b(\"ES5\").J(r,t);return(t?t.A:_()).p.push(e),e}function R(e){return r(e)||n(22,e),function n(r){if(!t(r))return r;var e,u=r[Q],c=o(r);if(u){if(!u.P&&(u.i<4||!b(\"ES5\").K(u)))return u.t;u.I=!0,e=D(r,c),u.I=!1}else e=D(r,c);return i(e,(function(r,t){u&&a(u.t,r)===t||f(e,r,n(t))})),3===c?new Set(e):e}(e)}function D(n,r){switch(r){case 2:return new Map(n);case 3:return Array.from(n)}return l(n)}function F(){function t(n,r){var t=s[n];return t?t.enumerable=r:s[n]=t={configurable:!0,enumerable:r,get:function(){var r=this[Q];return\"production\"!==process.env.NODE_ENV&&f(r),en.get(r,n)},set:function(r){var t=this[Q];\"production\"!==process.env.NODE_ENV&&f(t),en.set(t,n,r)}},t}function e(n){for(var r=n.length-1;r>=0;r--){var t=n[r][Q];if(!t.P)switch(t.i){case 5:a(t)&&k(t);break;case 4:o(t)&&k(t)}}}function o(n){for(var r=n.t,t=n.k,e=nn(t),i=e.length-1;i>=0;i--){var o=e[i];if(o!==Q){var a=r[o];if(void 0===a&&!u(r,o))return!0;var f=t[o],s=f&&f[Q];if(s?s.t!==a:!c(f,a))return!0}}var v=!!r[Q];return e.length!==nn(r).length+(v?0:1)}function a(n){var r=n.k;if(r.length!==n.t.length)return!0;var t=Object.getOwnPropertyDescriptor(r,r.length-1);if(t&&!t.get)return!0;for(var e=0;e1?t-1:0),o=1;o1?t-1:0),o=1;o=0;e--){var i=t[e];if(0===i.path.length&&\"replace\"===i.op){n=i.value;break}}e>-1&&(t=t.slice(e+1));var o=b(\"Patches\").$;return r(n)?o(n,t):this.produce(n,(function(n){return o(n,t)}))},e}(),an=new un,fn=an.produce,cn=an.produceWithPatches.bind(an),sn=an.setAutoFreeze.bind(an),vn=an.setUseProxies.bind(an),pn=an.applyPatches.bind(an),ln=an.createDraft.bind(an),dn=an.finishDraft.bind(an);export default fn;export{un as Immer,pn as applyPatches,K as castDraft,$ as castImmutable,ln as createDraft,R as current,J as enableAllPlugins,F as enableES5,C as enableMapSet,T as enablePatches,dn as finishDraft,d as freeze,L as immerable,r as isDraft,t as isDraftable,H as nothing,e as original,fn as produce,cn as produceWithPatches,sn as setAutoFreeze,vn as setUseProxies};\n//# sourceMappingURL=immer.esm.js.map\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","var __extends = (this && this.__extends) || (function () {\r\n var extendStatics = function (d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n return function (d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n };\r\n})();\r\nvar __generator = (this && this.__generator) || function (thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n};\r\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n};\r\nvar __defProp = Object.defineProperty;\r\nvar __defProps = Object.defineProperties;\r\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\r\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\r\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\r\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\r\nvar __defNormalProp = function (obj, key, value) { return key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value: value }) : obj[key] = value; };\r\nvar __spreadValues = function (a, b) {\r\n for (var prop in b || (b = {}))\r\n if (__hasOwnProp.call(b, prop))\r\n __defNormalProp(a, prop, b[prop]);\r\n if (__getOwnPropSymbols)\r\n for (var _i = 0, _c = __getOwnPropSymbols(b); _i < _c.length; _i++) {\r\n var prop = _c[_i];\r\n if (__propIsEnum.call(b, prop))\r\n __defNormalProp(a, prop, b[prop]);\r\n }\r\n return a;\r\n};\r\nvar __spreadProps = function (a, b) { return __defProps(a, __getOwnPropDescs(b)); };\r\nvar __async = function (__this, __arguments, generator) {\r\n return new Promise(function (resolve, reject) {\r\n var fulfilled = function (value) {\r\n try {\r\n step(generator.next(value));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n };\r\n var rejected = function (value) {\r\n try {\r\n step(generator.throw(value));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n };\r\n var step = function (x) { return x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected); };\r\n step((generator = generator.apply(__this, __arguments)).next());\r\n });\r\n};\r\n// src/index.ts\r\nimport { enableES5 } from \"immer\";\r\nexport * from \"redux\";\r\nimport { default as default2, current as current2, freeze, original, isDraft as isDraft4 } from \"immer\";\r\nimport { createSelector as createSelector2 } from \"reselect\";\r\n// src/createDraftSafeSelector.ts\r\nimport { current, isDraft } from \"immer\";\r\nimport { createSelector } from \"reselect\";\r\nvar createDraftSafeSelector = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var selector = createSelector.apply(void 0, args);\r\n var wrappedSelector = function (value) {\r\n var rest = [];\r\n for (var _i = 1; _i < arguments.length; _i++) {\r\n rest[_i - 1] = arguments[_i];\r\n }\r\n return selector.apply(void 0, __spreadArray([isDraft(value) ? current(value) : value], rest));\r\n };\r\n return wrappedSelector;\r\n};\r\n// src/configureStore.ts\r\nimport { createStore, compose as compose2, applyMiddleware, combineReducers } from \"redux\";\r\n// src/devtoolsExtension.ts\r\nimport { compose } from \"redux\";\r\nvar composeWithDevTools = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ ? window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ : function () {\r\n if (arguments.length === 0)\r\n return void 0;\r\n if (typeof arguments[0] === \"object\")\r\n return compose;\r\n return compose.apply(null, arguments);\r\n};\r\nvar devToolsEnhancer = typeof window !== \"undefined\" && window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__ : function () {\r\n return function (noop2) {\r\n return noop2;\r\n };\r\n};\r\n// src/isPlainObject.ts\r\nfunction isPlainObject(value) {\r\n if (typeof value !== \"object\" || value === null)\r\n return false;\r\n var proto = Object.getPrototypeOf(value);\r\n if (proto === null)\r\n return true;\r\n var baseProto = proto;\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto);\r\n }\r\n return proto === baseProto;\r\n}\r\n// src/getDefaultMiddleware.ts\r\nimport thunkMiddleware from \"redux-thunk\";\r\n// src/tsHelpers.ts\r\nvar hasMatchFunction = function (v) {\r\n return v && typeof v.match === \"function\";\r\n};\r\n// src/createAction.ts\r\nfunction createAction(type, prepareAction) {\r\n function actionCreator() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (prepareAction) {\r\n var prepared = prepareAction.apply(void 0, args);\r\n if (!prepared) {\r\n throw new Error(\"prepareAction did not return an object\");\r\n }\r\n return __spreadValues(__spreadValues({\r\n type: type,\r\n payload: prepared.payload\r\n }, \"meta\" in prepared && { meta: prepared.meta }), \"error\" in prepared && { error: prepared.error });\r\n }\r\n return { type: type, payload: args[0] };\r\n }\r\n actionCreator.toString = function () { return \"\" + type; };\r\n actionCreator.type = type;\r\n actionCreator.match = function (action) { return action.type === type; };\r\n return actionCreator;\r\n}\r\nfunction isAction(action) {\r\n return isPlainObject(action) && \"type\" in action;\r\n}\r\nfunction isActionCreator(action) {\r\n return typeof action === \"function\" && \"type\" in action && hasMatchFunction(action);\r\n}\r\nfunction isFSA(action) {\r\n return isAction(action) && typeof action.type === \"string\" && Object.keys(action).every(isValidKey);\r\n}\r\nfunction isValidKey(key) {\r\n return [\"type\", \"payload\", \"error\", \"meta\"].indexOf(key) > -1;\r\n}\r\nfunction getType(actionCreator) {\r\n return \"\" + actionCreator;\r\n}\r\n// src/actionCreatorInvariantMiddleware.ts\r\nfunction getMessage(type) {\r\n var splitType = type ? (\"\" + type).split(\"/\") : [];\r\n var actionName = splitType[splitType.length - 1] || \"actionCreator\";\r\n return \"Detected an action creator with type \\\"\" + (type || \"unknown\") + \"\\\" being dispatched. \\nMake sure you're calling the action creator before dispatching, i.e. `dispatch(\" + actionName + \"())` instead of `dispatch(\" + actionName + \")`. This is necessary even if the action has no payload.\";\r\n}\r\nfunction createActionCreatorInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isActionCreator, isActionCreator2 = _c === void 0 ? isActionCreator : _c;\r\n return function () { return function (next) { return function (action) {\r\n if (isActionCreator2(action)) {\r\n console.warn(getMessage(action.type));\r\n }\r\n return next(action);\r\n }; }; };\r\n}\r\n// src/utils.ts\r\nimport createNextState, { isDraftable } from \"immer\";\r\nfunction getTimeMeasureUtils(maxDelay, fnName) {\r\n var elapsed = 0;\r\n return {\r\n measureTime: function (fn) {\r\n var started = Date.now();\r\n try {\r\n return fn();\r\n }\r\n finally {\r\n var finished = Date.now();\r\n elapsed += finished - started;\r\n }\r\n },\r\n warnIfExceeded: function () {\r\n if (elapsed > maxDelay) {\r\n console.warn(fnName + \" took \" + elapsed + \"ms, which is more than the warning threshold of \" + maxDelay + \"ms. \\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\\nIt is disabled in production builds, so you don't need to worry about that.\");\r\n }\r\n }\r\n };\r\n}\r\nvar MiddlewareArray = /** @class */ (function (_super) {\r\n __extends(MiddlewareArray, _super);\r\n function MiddlewareArray() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n Object.setPrototypeOf(_this, MiddlewareArray.prototype);\r\n return _this;\r\n }\r\n Object.defineProperty(MiddlewareArray, Symbol.species, {\r\n get: function () {\r\n return MiddlewareArray;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n MiddlewareArray.prototype.concat = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n return _super.prototype.concat.apply(this, arr);\r\n };\r\n MiddlewareArray.prototype.prepend = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr[0].concat(this))))();\r\n }\r\n return new (MiddlewareArray.bind.apply(MiddlewareArray, __spreadArray([void 0], arr.concat(this))))();\r\n };\r\n return MiddlewareArray;\r\n}(Array));\r\nvar EnhancerArray = /** @class */ (function (_super) {\r\n __extends(EnhancerArray, _super);\r\n function EnhancerArray() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var _this = _super.apply(this, args) || this;\r\n Object.setPrototypeOf(_this, EnhancerArray.prototype);\r\n return _this;\r\n }\r\n Object.defineProperty(EnhancerArray, Symbol.species, {\r\n get: function () {\r\n return EnhancerArray;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n EnhancerArray.prototype.concat = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n return _super.prototype.concat.apply(this, arr);\r\n };\r\n EnhancerArray.prototype.prepend = function () {\r\n var arr = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n arr[_i] = arguments[_i];\r\n }\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr[0].concat(this))))();\r\n }\r\n return new (EnhancerArray.bind.apply(EnhancerArray, __spreadArray([void 0], arr.concat(this))))();\r\n };\r\n return EnhancerArray;\r\n}(Array));\r\nfunction freezeDraftable(val) {\r\n return isDraftable(val) ? createNextState(val, function () {\r\n }) : val;\r\n}\r\n// src/immutableStateInvariantMiddleware.ts\r\nvar isProduction = process.env.NODE_ENV === \"production\";\r\nvar prefix = \"Invariant failed\";\r\nfunction invariant(condition, message) {\r\n if (condition) {\r\n return;\r\n }\r\n if (isProduction) {\r\n throw new Error(prefix);\r\n }\r\n throw new Error(prefix + \": \" + (message || \"\"));\r\n}\r\nfunction stringify(obj, serializer, indent, decycler) {\r\n return JSON.stringify(obj, getSerialize(serializer, decycler), indent);\r\n}\r\nfunction getSerialize(serializer, decycler) {\r\n var stack = [], keys = [];\r\n if (!decycler)\r\n decycler = function (_, value) {\r\n if (stack[0] === value)\r\n return \"[Circular ~]\";\r\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\r\n };\r\n return function (key, value) {\r\n if (stack.length > 0) {\r\n var thisPos = stack.indexOf(this);\r\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\r\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\r\n if (~stack.indexOf(value))\r\n value = decycler.call(this, key, value);\r\n }\r\n else\r\n stack.push(value);\r\n return serializer == null ? value : serializer.call(this, key, value);\r\n };\r\n}\r\nfunction isImmutableDefault(value) {\r\n return typeof value !== \"object\" || value == null || Object.isFrozen(value);\r\n}\r\nfunction trackForMutations(isImmutable, ignorePaths, obj) {\r\n var trackedProperties = trackProperties(isImmutable, ignorePaths, obj);\r\n return {\r\n detectMutations: function () {\r\n return detectMutations(isImmutable, ignorePaths, trackedProperties, obj);\r\n }\r\n };\r\n}\r\nfunction trackProperties(isImmutable, ignorePaths, obj, path, checkedObjects) {\r\n if (ignorePaths === void 0) { ignorePaths = []; }\r\n if (path === void 0) { path = \"\"; }\r\n if (checkedObjects === void 0) { checkedObjects = new Set(); }\r\n var tracked = { value: obj };\r\n if (!isImmutable(obj) && !checkedObjects.has(obj)) {\r\n checkedObjects.add(obj);\r\n tracked.children = {};\r\n for (var key in obj) {\r\n var childPath = path ? path + \".\" + key : key;\r\n if (ignorePaths.length && ignorePaths.indexOf(childPath) !== -1) {\r\n continue;\r\n }\r\n tracked.children[key] = trackProperties(isImmutable, ignorePaths, obj[key], childPath);\r\n }\r\n }\r\n return tracked;\r\n}\r\nfunction detectMutations(isImmutable, ignoredPaths, trackedProperty, obj, sameParentRef, path) {\r\n if (ignoredPaths === void 0) { ignoredPaths = []; }\r\n if (sameParentRef === void 0) { sameParentRef = false; }\r\n if (path === void 0) { path = \"\"; }\r\n var prevObj = trackedProperty ? trackedProperty.value : void 0;\r\n var sameRef = prevObj === obj;\r\n if (sameParentRef && !sameRef && !Number.isNaN(obj)) {\r\n return { wasMutated: true, path: path };\r\n }\r\n if (isImmutable(prevObj) || isImmutable(obj)) {\r\n return { wasMutated: false };\r\n }\r\n var keysToDetect = {};\r\n for (var key in trackedProperty.children) {\r\n keysToDetect[key] = true;\r\n }\r\n for (var key in obj) {\r\n keysToDetect[key] = true;\r\n }\r\n var hasIgnoredPaths = ignoredPaths.length > 0;\r\n var _loop_1 = function (key) {\r\n var nestedPath = path ? path + \".\" + key : key;\r\n if (hasIgnoredPaths) {\r\n var hasMatches = ignoredPaths.some(function (ignored) {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath);\r\n }\r\n return nestedPath === ignored;\r\n });\r\n if (hasMatches) {\r\n return \"continue\";\r\n }\r\n }\r\n var result = detectMutations(isImmutable, ignoredPaths, trackedProperty.children[key], obj[key], sameRef, nestedPath);\r\n if (result.wasMutated) {\r\n return { value: result };\r\n }\r\n };\r\n for (var key in keysToDetect) {\r\n var state_1 = _loop_1(key);\r\n if (typeof state_1 === \"object\")\r\n return state_1.value;\r\n }\r\n return { wasMutated: false };\r\n}\r\nfunction createImmutableStateInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isImmutable, isImmutable = _c === void 0 ? isImmutableDefault : _c, ignoredPaths = options.ignoredPaths, _d = options.warnAfter, warnAfter = _d === void 0 ? 32 : _d, ignore = options.ignore;\r\n ignoredPaths = ignoredPaths || ignore;\r\n var track = trackForMutations.bind(null, isImmutable, ignoredPaths);\r\n return function (_c) {\r\n var getState = _c.getState;\r\n var state = getState();\r\n var tracker = track(state);\r\n var result;\r\n return function (next) { return function (action) {\r\n var measureUtils = getTimeMeasureUtils(warnAfter, \"ImmutableStateInvariantMiddleware\");\r\n measureUtils.measureTime(function () {\r\n state = getState();\r\n result = tracker.detectMutations();\r\n tracker = track(state);\r\n invariant(!result.wasMutated, \"A state mutation was detected between dispatches, in the path '\" + (result.path || \"\") + \"'. This may cause incorrect behavior. (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n });\r\n var dispatchedAction = next(action);\r\n measureUtils.measureTime(function () {\r\n state = getState();\r\n result = tracker.detectMutations();\r\n tracker = track(state);\r\n result.wasMutated && invariant(!result.wasMutated, \"A state mutation was detected inside a dispatch, in the path: \" + (result.path || \"\") + \". Take a look at the reducer(s) handling the action \" + stringify(action) + \". (https://redux.js.org/style-guide/style-guide#do-not-mutate-state)\");\r\n });\r\n measureUtils.warnIfExceeded();\r\n return dispatchedAction;\r\n }; };\r\n };\r\n}\r\n// src/serializableStateInvariantMiddleware.ts\r\nfunction isPlain(val) {\r\n var type = typeof val;\r\n return val == null || type === \"string\" || type === \"boolean\" || type === \"number\" || Array.isArray(val) || isPlainObject(val);\r\n}\r\nfunction findNonSerializableValue(value, path, isSerializable, getEntries, ignoredPaths, cache) {\r\n if (path === void 0) { path = \"\"; }\r\n if (isSerializable === void 0) { isSerializable = isPlain; }\r\n if (ignoredPaths === void 0) { ignoredPaths = []; }\r\n var foundNestedSerializable;\r\n if (!isSerializable(value)) {\r\n return {\r\n keyPath: path || \"\",\r\n value: value\r\n };\r\n }\r\n if (typeof value !== \"object\" || value === null) {\r\n return false;\r\n }\r\n if (cache == null ? void 0 : cache.has(value))\r\n return false;\r\n var entries = getEntries != null ? getEntries(value) : Object.entries(value);\r\n var hasIgnoredPaths = ignoredPaths.length > 0;\r\n var _loop_2 = function (key, nestedValue) {\r\n var nestedPath = path ? path + \".\" + key : key;\r\n if (hasIgnoredPaths) {\r\n var hasMatches = ignoredPaths.some(function (ignored) {\r\n if (ignored instanceof RegExp) {\r\n return ignored.test(nestedPath);\r\n }\r\n return nestedPath === ignored;\r\n });\r\n if (hasMatches) {\r\n return \"continue\";\r\n }\r\n }\r\n if (!isSerializable(nestedValue)) {\r\n return { value: {\r\n keyPath: nestedPath,\r\n value: nestedValue\r\n } };\r\n }\r\n if (typeof nestedValue === \"object\") {\r\n foundNestedSerializable = findNonSerializableValue(nestedValue, nestedPath, isSerializable, getEntries, ignoredPaths, cache);\r\n if (foundNestedSerializable) {\r\n return { value: foundNestedSerializable };\r\n }\r\n }\r\n };\r\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\r\n var _c = entries_1[_i], key = _c[0], nestedValue = _c[1];\r\n var state_2 = _loop_2(key, nestedValue);\r\n if (typeof state_2 === \"object\")\r\n return state_2.value;\r\n }\r\n if (cache && isNestedFrozen(value))\r\n cache.add(value);\r\n return false;\r\n}\r\nfunction isNestedFrozen(value) {\r\n if (!Object.isFrozen(value))\r\n return false;\r\n for (var _i = 0, _c = Object.values(value); _i < _c.length; _i++) {\r\n var nestedValue = _c[_i];\r\n if (typeof nestedValue !== \"object\" || nestedValue === null)\r\n continue;\r\n if (!isNestedFrozen(nestedValue))\r\n return false;\r\n }\r\n return true;\r\n}\r\nfunction createSerializableStateInvariantMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n if (process.env.NODE_ENV === \"production\") {\r\n return function () { return function (next) { return function (action) { return next(action); }; }; };\r\n }\r\n var _c = options.isSerializable, isSerializable = _c === void 0 ? isPlain : _c, getEntries = options.getEntries, _d = options.ignoredActions, ignoredActions = _d === void 0 ? [] : _d, _e = options.ignoredActionPaths, ignoredActionPaths = _e === void 0 ? [\"meta.arg\", \"meta.baseQueryMeta\"] : _e, _f = options.ignoredPaths, ignoredPaths = _f === void 0 ? [] : _f, _g = options.warnAfter, warnAfter = _g === void 0 ? 32 : _g, _h = options.ignoreState, ignoreState = _h === void 0 ? false : _h, _j = options.ignoreActions, ignoreActions = _j === void 0 ? false : _j, _k = options.disableCache, disableCache = _k === void 0 ? false : _k;\r\n var cache = !disableCache && WeakSet ? new WeakSet() : void 0;\r\n return function (storeAPI) { return function (next) { return function (action) {\r\n var result = next(action);\r\n var measureUtils = getTimeMeasureUtils(warnAfter, \"SerializableStateInvariantMiddleware\");\r\n if (!ignoreActions && !(ignoredActions.length && ignoredActions.indexOf(action.type) !== -1)) {\r\n measureUtils.measureTime(function () {\r\n var foundActionNonSerializableValue = findNonSerializableValue(action, \"\", isSerializable, getEntries, ignoredActionPaths, cache);\r\n if (foundActionNonSerializableValue) {\r\n var keyPath = foundActionNonSerializableValue.keyPath, value = foundActionNonSerializableValue.value;\r\n console.error(\"A non-serializable value was detected in an action, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the logic that dispatched this action: \", action, \"\\n(See https://redux.js.org/faq/actions#why-should-type-be-a-string-or-at-least-serializable-why-should-my-action-types-be-constants)\", \"\\n(To allow non-serializable values see: https://redux-toolkit.js.org/usage/usage-guide#working-with-non-serializable-data)\");\r\n }\r\n });\r\n }\r\n if (!ignoreState) {\r\n measureUtils.measureTime(function () {\r\n var state = storeAPI.getState();\r\n var foundStateNonSerializableValue = findNonSerializableValue(state, \"\", isSerializable, getEntries, ignoredPaths, cache);\r\n if (foundStateNonSerializableValue) {\r\n var keyPath = foundStateNonSerializableValue.keyPath, value = foundStateNonSerializableValue.value;\r\n console.error(\"A non-serializable value was detected in the state, in the path: `\" + keyPath + \"`. Value:\", value, \"\\nTake a look at the reducer(s) handling this action type: \" + action.type + \".\\n(See https://redux.js.org/faq/organizing-state#can-i-put-functions-promises-or-other-non-serializable-items-in-my-store-state)\");\r\n }\r\n });\r\n measureUtils.warnIfExceeded();\r\n }\r\n return result;\r\n }; }; };\r\n}\r\n// src/getDefaultMiddleware.ts\r\nfunction isBoolean(x) {\r\n return typeof x === \"boolean\";\r\n}\r\nfunction curryGetDefaultMiddleware() {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options);\r\n };\r\n}\r\nfunction getDefaultMiddleware(options) {\r\n if (options === void 0) { options = {}; }\r\n var _c = options.thunk, thunk = _c === void 0 ? true : _c, _d = options.immutableCheck, immutableCheck = _d === void 0 ? true : _d, _e = options.serializableCheck, serializableCheck = _e === void 0 ? true : _e, _f = options.actionCreatorCheck, actionCreatorCheck = _f === void 0 ? true : _f;\r\n var middlewareArray = new MiddlewareArray();\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware);\r\n }\r\n else {\r\n middlewareArray.push(thunkMiddleware.withExtraArgument(thunk.extraArgument));\r\n }\r\n }\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (immutableCheck) {\r\n var immutableOptions = {};\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck;\r\n }\r\n middlewareArray.unshift(createImmutableStateInvariantMiddleware(immutableOptions));\r\n }\r\n if (serializableCheck) {\r\n var serializableOptions = {};\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck;\r\n }\r\n middlewareArray.push(createSerializableStateInvariantMiddleware(serializableOptions));\r\n }\r\n if (actionCreatorCheck) {\r\n var actionCreatorOptions = {};\r\n if (!isBoolean(actionCreatorCheck)) {\r\n actionCreatorOptions = actionCreatorCheck;\r\n }\r\n middlewareArray.unshift(createActionCreatorInvariantMiddleware(actionCreatorOptions));\r\n }\r\n }\r\n return middlewareArray;\r\n}\r\n// src/configureStore.ts\r\nvar IS_PRODUCTION = process.env.NODE_ENV === \"production\";\r\nfunction configureStore(options) {\r\n var curriedGetDefaultMiddleware = curryGetDefaultMiddleware();\r\n var _c = options || {}, _d = _c.reducer, reducer = _d === void 0 ? void 0 : _d, _e = _c.middleware, middleware = _e === void 0 ? curriedGetDefaultMiddleware() : _e, _f = _c.devTools, devTools = _f === void 0 ? true : _f, _g = _c.preloadedState, preloadedState = _g === void 0 ? void 0 : _g, _h = _c.enhancers, enhancers = _h === void 0 ? void 0 : _h;\r\n var rootReducer;\r\n if (typeof reducer === \"function\") {\r\n rootReducer = reducer;\r\n }\r\n else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer);\r\n }\r\n else {\r\n throw new Error('\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers');\r\n }\r\n var finalMiddleware = middleware;\r\n if (typeof finalMiddleware === \"function\") {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware);\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\"when using a middleware builder function, an array of middleware must be returned\");\r\n }\r\n }\r\n if (!IS_PRODUCTION && finalMiddleware.some(function (item) { return typeof item !== \"function\"; })) {\r\n throw new Error(\"each middleware provided to configureStore must be a function\");\r\n }\r\n var middlewareEnhancer = applyMiddleware.apply(void 0, finalMiddleware);\r\n var finalCompose = compose2;\r\n if (devTools) {\r\n finalCompose = composeWithDevTools(__spreadValues({\r\n trace: !IS_PRODUCTION\r\n }, typeof devTools === \"object\" && devTools));\r\n }\r\n var defaultEnhancers = new EnhancerArray(middlewareEnhancer);\r\n var storeEnhancers = defaultEnhancers;\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = __spreadArray([middlewareEnhancer], enhancers);\r\n }\r\n else if (typeof enhancers === \"function\") {\r\n storeEnhancers = enhancers(defaultEnhancers);\r\n }\r\n var composedEnhancer = finalCompose.apply(void 0, storeEnhancers);\r\n return createStore(rootReducer, preloadedState, composedEnhancer);\r\n}\r\n// src/createReducer.ts\r\nimport createNextState2, { isDraft as isDraft2, isDraftable as isDraftable2 } from \"immer\";\r\n// src/mapBuilders.ts\r\nfunction executeReducerBuilderCallback(builderCallback) {\r\n var actionsMap = {};\r\n var actionMatchers = [];\r\n var defaultCaseReducer;\r\n var builder = {\r\n addCase: function (typeOrActionCreator, reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\"`builder.addCase` should only be called before calling `builder.addMatcher`\");\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addCase` should only be called before calling `builder.addDefaultCase`\");\r\n }\r\n }\r\n var type = typeof typeOrActionCreator === \"string\" ? typeOrActionCreator : typeOrActionCreator.type;\r\n if (!type) {\r\n throw new Error(\"`builder.addCase` cannot be called with an empty action type\");\r\n }\r\n if (type in actionsMap) {\r\n throw new Error(\"`builder.addCase` cannot be called with two reducers for the same action type\");\r\n }\r\n actionsMap[type] = reducer;\r\n return builder;\r\n },\r\n addMatcher: function (matcher, reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addMatcher` should only be called before calling `builder.addDefaultCase`\");\r\n }\r\n }\r\n actionMatchers.push({ matcher: matcher, reducer: reducer });\r\n return builder;\r\n },\r\n addDefaultCase: function (reducer) {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (defaultCaseReducer) {\r\n throw new Error(\"`builder.addDefaultCase` can only be called once\");\r\n }\r\n }\r\n defaultCaseReducer = reducer;\r\n return builder;\r\n }\r\n };\r\n builderCallback(builder);\r\n return [actionsMap, actionMatchers, defaultCaseReducer];\r\n}\r\n// src/createReducer.ts\r\nfunction isStateFunction(x) {\r\n return typeof x === \"function\";\r\n}\r\nvar hasWarnedAboutObjectNotation = false;\r\nfunction createReducer(initialState, mapOrBuilderCallback, actionMatchers, defaultCaseReducer) {\r\n if (actionMatchers === void 0) { actionMatchers = []; }\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (typeof mapOrBuilderCallback === \"object\") {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true;\r\n console.warn(\"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\");\r\n }\r\n }\r\n }\r\n var _c = typeof mapOrBuilderCallback === \"function\" ? executeReducerBuilderCallback(mapOrBuilderCallback) : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer], actionsMap = _c[0], finalActionMatchers = _c[1], finalDefaultCaseReducer = _c[2];\r\n var getInitialState;\r\n if (isStateFunction(initialState)) {\r\n getInitialState = function () { return freezeDraftable(initialState()); };\r\n }\r\n else {\r\n var frozenInitialState_1 = freezeDraftable(initialState);\r\n getInitialState = function () { return frozenInitialState_1; };\r\n }\r\n function reducer(state, action) {\r\n if (state === void 0) { state = getInitialState(); }\r\n var caseReducers = __spreadArray([\r\n actionsMap[action.type]\r\n ], finalActionMatchers.filter(function (_c) {\r\n var matcher = _c.matcher;\r\n return matcher(action);\r\n }).map(function (_c) {\r\n var reducer2 = _c.reducer;\r\n return reducer2;\r\n }));\r\n if (caseReducers.filter(function (cr) { return !!cr; }).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer];\r\n }\r\n return caseReducers.reduce(function (previousState, caseReducer) {\r\n if (caseReducer) {\r\n if (isDraft2(previousState)) {\r\n var draft = previousState;\r\n var result = caseReducer(draft, action);\r\n if (result === void 0) {\r\n return previousState;\r\n }\r\n return result;\r\n }\r\n else if (!isDraftable2(previousState)) {\r\n var result = caseReducer(previousState, action);\r\n if (result === void 0) {\r\n if (previousState === null) {\r\n return previousState;\r\n }\r\n throw Error(\"A case reducer on a non-draftable value must not return undefined\");\r\n }\r\n return result;\r\n }\r\n else {\r\n return createNextState2(previousState, function (draft) {\r\n return caseReducer(draft, action);\r\n });\r\n }\r\n }\r\n return previousState;\r\n }, state);\r\n }\r\n reducer.getInitialState = getInitialState;\r\n return reducer;\r\n}\r\n// src/createSlice.ts\r\nvar hasWarnedAboutObjectNotation2 = false;\r\nfunction getType2(slice, actionKey) {\r\n return slice + \"/\" + actionKey;\r\n}\r\nfunction createSlice(options) {\r\n var name = options.name;\r\n if (!name) {\r\n throw new Error(\"`name` is a required option for createSlice\");\r\n }\r\n if (typeof process !== \"undefined\" && process.env.NODE_ENV === \"development\") {\r\n if (options.initialState === void 0) {\r\n console.error(\"You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`\");\r\n }\r\n }\r\n var initialState = typeof options.initialState == \"function\" ? options.initialState : freezeDraftable(options.initialState);\r\n var reducers = options.reducers || {};\r\n var reducerNames = Object.keys(reducers);\r\n var sliceCaseReducersByName = {};\r\n var sliceCaseReducersByType = {};\r\n var actionCreators = {};\r\n reducerNames.forEach(function (reducerName) {\r\n var maybeReducerWithPrepare = reducers[reducerName];\r\n var type = getType2(name, reducerName);\r\n var caseReducer;\r\n var prepareCallback;\r\n if (\"reducer\" in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer;\r\n prepareCallback = maybeReducerWithPrepare.prepare;\r\n }\r\n else {\r\n caseReducer = maybeReducerWithPrepare;\r\n }\r\n sliceCaseReducersByName[reducerName] = caseReducer;\r\n sliceCaseReducersByType[type] = caseReducer;\r\n actionCreators[reducerName] = prepareCallback ? createAction(type, prepareCallback) : createAction(type);\r\n });\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (typeof options.extraReducers === \"object\") {\r\n if (!hasWarnedAboutObjectNotation2) {\r\n hasWarnedAboutObjectNotation2 = true;\r\n console.warn(\"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\");\r\n }\r\n }\r\n }\r\n var _c = typeof options.extraReducers === \"function\" ? executeReducerBuilderCallback(options.extraReducers) : [options.extraReducers], _d = _c[0], extraReducers = _d === void 0 ? {} : _d, _e = _c[1], actionMatchers = _e === void 0 ? [] : _e, _f = _c[2], defaultCaseReducer = _f === void 0 ? void 0 : _f;\r\n var finalCaseReducers = __spreadValues(__spreadValues({}, extraReducers), sliceCaseReducersByType);\r\n return createReducer(initialState, function (builder) {\r\n for (var key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key]);\r\n }\r\n for (var _i = 0, actionMatchers_1 = actionMatchers; _i < actionMatchers_1.length; _i++) {\r\n var m = actionMatchers_1[_i];\r\n builder.addMatcher(m.matcher, m.reducer);\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer);\r\n }\r\n });\r\n }\r\n var _reducer;\r\n return {\r\n name: name,\r\n reducer: function (state, action) {\r\n if (!_reducer)\r\n _reducer = buildReducer();\r\n return _reducer(state, action);\r\n },\r\n actions: actionCreators,\r\n caseReducers: sliceCaseReducersByName,\r\n getInitialState: function () {\r\n if (!_reducer)\r\n _reducer = buildReducer();\r\n return _reducer.getInitialState();\r\n }\r\n };\r\n}\r\n// src/entities/entity_state.ts\r\nfunction getInitialEntityState() {\r\n return {\r\n ids: [],\r\n entities: {}\r\n };\r\n}\r\nfunction createInitialStateFactory() {\r\n function getInitialState(additionalState) {\r\n if (additionalState === void 0) { additionalState = {}; }\r\n return Object.assign(getInitialEntityState(), additionalState);\r\n }\r\n return { getInitialState: getInitialState };\r\n}\r\n// src/entities/state_selectors.ts\r\nfunction createSelectorsFactory() {\r\n function getSelectors(selectState) {\r\n var selectIds = function (state) { return state.ids; };\r\n var selectEntities = function (state) { return state.entities; };\r\n var selectAll = createDraftSafeSelector(selectIds, selectEntities, function (ids, entities) { return ids.map(function (id) { return entities[id]; }); });\r\n var selectId = function (_, id) { return id; };\r\n var selectById = function (entities, id) { return entities[id]; };\r\n var selectTotal = createDraftSafeSelector(selectIds, function (ids) { return ids.length; });\r\n if (!selectState) {\r\n return {\r\n selectIds: selectIds,\r\n selectEntities: selectEntities,\r\n selectAll: selectAll,\r\n selectTotal: selectTotal,\r\n selectById: createDraftSafeSelector(selectEntities, selectId, selectById)\r\n };\r\n }\r\n var selectGlobalizedEntities = createDraftSafeSelector(selectState, selectEntities);\r\n return {\r\n selectIds: createDraftSafeSelector(selectState, selectIds),\r\n selectEntities: selectGlobalizedEntities,\r\n selectAll: createDraftSafeSelector(selectState, selectAll),\r\n selectTotal: createDraftSafeSelector(selectState, selectTotal),\r\n selectById: createDraftSafeSelector(selectGlobalizedEntities, selectId, selectById)\r\n };\r\n }\r\n return { getSelectors: getSelectors };\r\n}\r\n// src/entities/state_adapter.ts\r\nimport createNextState3, { isDraft as isDraft3 } from \"immer\";\r\nfunction createSingleArgumentStateOperator(mutator) {\r\n var operator = createStateOperator(function (_, state) { return mutator(state); });\r\n return function operation(state) {\r\n return operator(state, void 0);\r\n };\r\n}\r\nfunction createStateOperator(mutator) {\r\n return function operation(state, arg) {\r\n function isPayloadActionArgument(arg2) {\r\n return isFSA(arg2);\r\n }\r\n var runMutator = function (draft) {\r\n if (isPayloadActionArgument(arg)) {\r\n mutator(arg.payload, draft);\r\n }\r\n else {\r\n mutator(arg, draft);\r\n }\r\n };\r\n if (isDraft3(state)) {\r\n runMutator(state);\r\n return state;\r\n }\r\n else {\r\n return createNextState3(state, runMutator);\r\n }\r\n };\r\n}\r\n// src/entities/utils.ts\r\nfunction selectIdValue(entity, selectId) {\r\n var key = selectId(entity);\r\n if (process.env.NODE_ENV !== \"production\" && key === void 0) {\r\n console.warn(\"The entity passed to the `selectId` implementation returned undefined.\", \"You should probably provide your own `selectId` implementation.\", \"The entity that was passed:\", entity, \"The `selectId` implementation:\", selectId.toString());\r\n }\r\n return key;\r\n}\r\nfunction ensureEntitiesArray(entities) {\r\n if (!Array.isArray(entities)) {\r\n entities = Object.values(entities);\r\n }\r\n return entities;\r\n}\r\nfunction splitAddedUpdatedEntities(newEntities, selectId, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n var added = [];\r\n var updated = [];\r\n for (var _i = 0, newEntities_1 = newEntities; _i < newEntities_1.length; _i++) {\r\n var entity = newEntities_1[_i];\r\n var id = selectIdValue(entity, selectId);\r\n if (id in state.entities) {\r\n updated.push({ id: id, changes: entity });\r\n }\r\n else {\r\n added.push(entity);\r\n }\r\n }\r\n return [added, updated];\r\n}\r\n// src/entities/unsorted_state_adapter.ts\r\nfunction createUnsortedStateAdapter(selectId) {\r\n function addOneMutably(entity, state) {\r\n var key = selectIdValue(entity, selectId);\r\n if (key in state.entities) {\r\n return;\r\n }\r\n state.ids.push(key);\r\n state.entities[key] = entity;\r\n }\r\n function addManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n for (var _i = 0, newEntities_2 = newEntities; _i < newEntities_2.length; _i++) {\r\n var entity = newEntities_2[_i];\r\n addOneMutably(entity, state);\r\n }\r\n }\r\n function setOneMutably(entity, state) {\r\n var key = selectIdValue(entity, selectId);\r\n if (!(key in state.entities)) {\r\n state.ids.push(key);\r\n }\r\n state.entities[key] = entity;\r\n }\r\n function setManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n for (var _i = 0, newEntities_3 = newEntities; _i < newEntities_3.length; _i++) {\r\n var entity = newEntities_3[_i];\r\n setOneMutably(entity, state);\r\n }\r\n }\r\n function setAllMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n state.ids = [];\r\n state.entities = {};\r\n addManyMutably(newEntities, state);\r\n }\r\n function removeOneMutably(key, state) {\r\n return removeManyMutably([key], state);\r\n }\r\n function removeManyMutably(keys, state) {\r\n var didMutate = false;\r\n keys.forEach(function (key) {\r\n if (key in state.entities) {\r\n delete state.entities[key];\r\n didMutate = true;\r\n }\r\n });\r\n if (didMutate) {\r\n state.ids = state.ids.filter(function (id) { return id in state.entities; });\r\n }\r\n }\r\n function removeAllMutably(state) {\r\n Object.assign(state, {\r\n ids: [],\r\n entities: {}\r\n });\r\n }\r\n function takeNewKey(keys, update, state) {\r\n var original2 = state.entities[update.id];\r\n var updated = Object.assign({}, original2, update.changes);\r\n var newKey = selectIdValue(updated, selectId);\r\n var hasNewKey = newKey !== update.id;\r\n if (hasNewKey) {\r\n keys[update.id] = newKey;\r\n delete state.entities[update.id];\r\n }\r\n state.entities[newKey] = updated;\r\n return hasNewKey;\r\n }\r\n function updateOneMutably(update, state) {\r\n return updateManyMutably([update], state);\r\n }\r\n function updateManyMutably(updates, state) {\r\n var newKeys = {};\r\n var updatesPerEntity = {};\r\n updates.forEach(function (update) {\r\n if (update.id in state.entities) {\r\n updatesPerEntity[update.id] = {\r\n id: update.id,\r\n changes: __spreadValues(__spreadValues({}, updatesPerEntity[update.id] ? updatesPerEntity[update.id].changes : null), update.changes)\r\n };\r\n }\r\n });\r\n updates = Object.values(updatesPerEntity);\r\n var didMutateEntities = updates.length > 0;\r\n if (didMutateEntities) {\r\n var didMutateIds = updates.filter(function (update) { return takeNewKey(newKeys, update, state); }).length > 0;\r\n if (didMutateIds) {\r\n state.ids = Object.keys(state.entities);\r\n }\r\n }\r\n }\r\n function upsertOneMutably(entity, state) {\r\n return upsertManyMutably([entity], state);\r\n }\r\n function upsertManyMutably(newEntities, state) {\r\n var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n updateManyMutably(updated, state);\r\n addManyMutably(added, state);\r\n }\r\n return {\r\n removeAll: createSingleArgumentStateOperator(removeAllMutably),\r\n addOne: createStateOperator(addOneMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n upsertMany: createStateOperator(upsertManyMutably),\r\n removeOne: createStateOperator(removeOneMutably),\r\n removeMany: createStateOperator(removeManyMutably)\r\n };\r\n}\r\n// src/entities/sorted_state_adapter.ts\r\nfunction createSortedStateAdapter(selectId, sort) {\r\n var _c = createUnsortedStateAdapter(selectId), removeOne = _c.removeOne, removeMany = _c.removeMany, removeAll = _c.removeAll;\r\n function addOneMutably(entity, state) {\r\n return addManyMutably([entity], state);\r\n }\r\n function addManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n var models = newEntities.filter(function (model) { return !(selectIdValue(model, selectId) in state.entities); });\r\n if (models.length !== 0) {\r\n merge(models, state);\r\n }\r\n }\r\n function setOneMutably(entity, state) {\r\n return setManyMutably([entity], state);\r\n }\r\n function setManyMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n if (newEntities.length !== 0) {\r\n merge(newEntities, state);\r\n }\r\n }\r\n function setAllMutably(newEntities, state) {\r\n newEntities = ensureEntitiesArray(newEntities);\r\n state.entities = {};\r\n state.ids = [];\r\n addManyMutably(newEntities, state);\r\n }\r\n function updateOneMutably(update, state) {\r\n return updateManyMutably([update], state);\r\n }\r\n function updateManyMutably(updates, state) {\r\n var appliedUpdates = false;\r\n for (var _i = 0, updates_1 = updates; _i < updates_1.length; _i++) {\r\n var update = updates_1[_i];\r\n var entity = state.entities[update.id];\r\n if (!entity) {\r\n continue;\r\n }\r\n appliedUpdates = true;\r\n Object.assign(entity, update.changes);\r\n var newId = selectId(entity);\r\n if (update.id !== newId) {\r\n delete state.entities[update.id];\r\n state.entities[newId] = entity;\r\n }\r\n }\r\n if (appliedUpdates) {\r\n resortEntities(state);\r\n }\r\n }\r\n function upsertOneMutably(entity, state) {\r\n return upsertManyMutably([entity], state);\r\n }\r\n function upsertManyMutably(newEntities, state) {\r\n var _c = splitAddedUpdatedEntities(newEntities, selectId, state), added = _c[0], updated = _c[1];\r\n updateManyMutably(updated, state);\r\n addManyMutably(added, state);\r\n }\r\n function areArraysEqual(a, b) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (var i = 0; i < a.length && i < b.length; i++) {\r\n if (a[i] === b[i]) {\r\n continue;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n function merge(models, state) {\r\n models.forEach(function (model) {\r\n state.entities[selectId(model)] = model;\r\n });\r\n resortEntities(state);\r\n }\r\n function resortEntities(state) {\r\n var allEntities = Object.values(state.entities);\r\n allEntities.sort(sort);\r\n var newSortedIds = allEntities.map(selectId);\r\n var ids = state.ids;\r\n if (!areArraysEqual(ids, newSortedIds)) {\r\n state.ids = newSortedIds;\r\n }\r\n }\r\n return {\r\n removeOne: removeOne,\r\n removeMany: removeMany,\r\n removeAll: removeAll,\r\n addOne: createStateOperator(addOneMutably),\r\n updateOne: createStateOperator(updateOneMutably),\r\n upsertOne: createStateOperator(upsertOneMutably),\r\n setOne: createStateOperator(setOneMutably),\r\n setMany: createStateOperator(setManyMutably),\r\n setAll: createStateOperator(setAllMutably),\r\n addMany: createStateOperator(addManyMutably),\r\n updateMany: createStateOperator(updateManyMutably),\r\n upsertMany: createStateOperator(upsertManyMutably)\r\n };\r\n}\r\n// src/entities/create_adapter.ts\r\nfunction createEntityAdapter(options) {\r\n if (options === void 0) { options = {}; }\r\n var _c = __spreadValues({\r\n sortComparer: false,\r\n selectId: function (instance) { return instance.id; }\r\n }, options), selectId = _c.selectId, sortComparer = _c.sortComparer;\r\n var stateFactory = createInitialStateFactory();\r\n var selectorsFactory = createSelectorsFactory();\r\n var stateAdapter = sortComparer ? createSortedStateAdapter(selectId, sortComparer) : createUnsortedStateAdapter(selectId);\r\n return __spreadValues(__spreadValues(__spreadValues({\r\n selectId: selectId,\r\n sortComparer: sortComparer\r\n }, stateFactory), selectorsFactory), stateAdapter);\r\n}\r\n// src/nanoid.ts\r\nvar urlAlphabet = \"ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW\";\r\nvar nanoid = function (size) {\r\n if (size === void 0) { size = 21; }\r\n var id = \"\";\r\n var i = size;\r\n while (i--) {\r\n id += urlAlphabet[Math.random() * 64 | 0];\r\n }\r\n return id;\r\n};\r\n// src/createAsyncThunk.ts\r\nvar commonProperties = [\r\n \"name\",\r\n \"message\",\r\n \"stack\",\r\n \"code\"\r\n];\r\nvar RejectWithValue = /** @class */ (function () {\r\n function RejectWithValue(payload, meta) {\r\n this.payload = payload;\r\n this.meta = meta;\r\n }\r\n return RejectWithValue;\r\n}());\r\nvar FulfillWithMeta = /** @class */ (function () {\r\n function FulfillWithMeta(payload, meta) {\r\n this.payload = payload;\r\n this.meta = meta;\r\n }\r\n return FulfillWithMeta;\r\n}());\r\nvar miniSerializeError = function (value) {\r\n if (typeof value === \"object\" && value !== null) {\r\n var simpleError = {};\r\n for (var _i = 0, commonProperties_1 = commonProperties; _i < commonProperties_1.length; _i++) {\r\n var property = commonProperties_1[_i];\r\n if (typeof value[property] === \"string\") {\r\n simpleError[property] = value[property];\r\n }\r\n }\r\n return simpleError;\r\n }\r\n return { message: String(value) };\r\n};\r\nvar createAsyncThunk = (function () {\r\n function createAsyncThunk2(typePrefix, payloadCreator, options) {\r\n var fulfilled = createAction(typePrefix + \"/fulfilled\", function (payload, requestId, arg, meta) { return ({\r\n payload: payload,\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n requestStatus: \"fulfilled\"\r\n })\r\n }); });\r\n var pending = createAction(typePrefix + \"/pending\", function (requestId, arg, meta) { return ({\r\n payload: void 0,\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n requestStatus: \"pending\"\r\n })\r\n }); });\r\n var rejected = createAction(typePrefix + \"/rejected\", function (error, requestId, arg, payload, meta) { return ({\r\n payload: payload,\r\n error: (options && options.serializeError || miniSerializeError)(error || \"Rejected\"),\r\n meta: __spreadProps(__spreadValues({}, meta || {}), {\r\n arg: arg,\r\n requestId: requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: \"rejected\",\r\n aborted: (error == null ? void 0 : error.name) === \"AbortError\",\r\n condition: (error == null ? void 0 : error.name) === \"ConditionError\"\r\n })\r\n }); });\r\n var displayedWarning = false;\r\n var AC = typeof AbortController !== \"undefined\" ? AbortController : /** @class */ (function () {\r\n function class_1() {\r\n this.signal = {\r\n aborted: false,\r\n addEventListener: function () {\r\n },\r\n dispatchEvent: function () {\r\n return false;\r\n },\r\n onabort: function () {\r\n },\r\n removeEventListener: function () {\r\n },\r\n reason: void 0,\r\n throwIfAborted: function () {\r\n }\r\n };\r\n }\r\n class_1.prototype.abort = function () {\r\n if (process.env.NODE_ENV !== \"production\") {\r\n if (!displayedWarning) {\r\n displayedWarning = true;\r\n console.info(\"This platform does not implement AbortController. \\nIf you want to use the AbortController to react to `abort` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.\");\r\n }\r\n }\r\n };\r\n return class_1;\r\n }());\r\n function actionCreator(arg) {\r\n return function (dispatch, getState, extra) {\r\n var requestId = (options == null ? void 0 : options.idGenerator) ? options.idGenerator(arg) : nanoid();\r\n var abortController = new AC();\r\n var abortReason;\r\n var started = false;\r\n function abort(reason) {\r\n abortReason = reason;\r\n abortController.abort();\r\n }\r\n var promise2 = function () {\r\n return __async(this, null, function () {\r\n var _a, _b, finalAction, conditionResult, abortedPromise, err_1, skipDispatch;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 4, , 5]);\r\n conditionResult = (_a = options == null ? void 0 : options.condition) == null ? void 0 : _a.call(options, arg, { getState: getState, extra: extra });\r\n if (!isThenable(conditionResult)) return [3 /*break*/, 2];\r\n return [4 /*yield*/, conditionResult];\r\n case 1:\r\n conditionResult = _c.sent();\r\n _c.label = 2;\r\n case 2:\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n throw {\r\n name: \"ConditionError\",\r\n message: \"Aborted due to condition callback returning false.\"\r\n };\r\n }\r\n started = true;\r\n abortedPromise = new Promise(function (_, reject) { return abortController.signal.addEventListener(\"abort\", function () { return reject({\r\n name: \"AbortError\",\r\n message: abortReason || \"Aborted\"\r\n }); }); });\r\n dispatch(pending(requestId, arg, (_b = options == null ? void 0 : options.getPendingMeta) == null ? void 0 : _b.call(options, { requestId: requestId, arg: arg }, { getState: getState, extra: extra })));\r\n return [4 /*yield*/, Promise.race([\r\n abortedPromise,\r\n Promise.resolve(payloadCreator(arg, {\r\n dispatch: dispatch,\r\n getState: getState,\r\n extra: extra,\r\n requestId: requestId,\r\n signal: abortController.signal,\r\n abort: abort,\r\n rejectWithValue: function (value, meta) {\r\n return new RejectWithValue(value, meta);\r\n },\r\n fulfillWithValue: function (value, meta) {\r\n return new FulfillWithMeta(value, meta);\r\n }\r\n })).then(function (result) {\r\n if (result instanceof RejectWithValue) {\r\n throw result;\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta);\r\n }\r\n return fulfilled(result, requestId, arg);\r\n })\r\n ])];\r\n case 3:\r\n finalAction = _c.sent();\r\n return [3 /*break*/, 5];\r\n case 4:\r\n err_1 = _c.sent();\r\n finalAction = err_1 instanceof RejectWithValue ? rejected(null, requestId, arg, err_1.payload, err_1.meta) : rejected(err_1, requestId, arg);\r\n return [3 /*break*/, 5];\r\n case 5:\r\n skipDispatch = options && !options.dispatchConditionRejection && rejected.match(finalAction) && finalAction.meta.condition;\r\n if (!skipDispatch) {\r\n dispatch(finalAction);\r\n }\r\n return [2 /*return*/, finalAction];\r\n }\r\n });\r\n });\r\n }();\r\n return Object.assign(promise2, {\r\n abort: abort,\r\n requestId: requestId,\r\n arg: arg,\r\n unwrap: function () {\r\n return promise2.then(unwrapResult);\r\n }\r\n });\r\n };\r\n }\r\n return Object.assign(actionCreator, {\r\n pending: pending,\r\n rejected: rejected,\r\n fulfilled: fulfilled,\r\n typePrefix: typePrefix\r\n });\r\n }\r\n createAsyncThunk2.withTypes = function () { return createAsyncThunk2; };\r\n return createAsyncThunk2;\r\n})();\r\nfunction unwrapResult(action) {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload;\r\n }\r\n if (action.error) {\r\n throw action.error;\r\n }\r\n return action.payload;\r\n}\r\nfunction isThenable(value) {\r\n return value !== null && typeof value === \"object\" && typeof value.then === \"function\";\r\n}\r\n// src/matchers.ts\r\nvar matches = function (matcher, action) {\r\n if (hasMatchFunction(matcher)) {\r\n return matcher.match(action);\r\n }\r\n else {\r\n return matcher(action);\r\n }\r\n};\r\nfunction isAnyOf() {\r\n var matchers = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n matchers[_i] = arguments[_i];\r\n }\r\n return function (action) {\r\n return matchers.some(function (matcher) { return matches(matcher, action); });\r\n };\r\n}\r\nfunction isAllOf() {\r\n var matchers = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n matchers[_i] = arguments[_i];\r\n }\r\n return function (action) {\r\n return matchers.every(function (matcher) { return matches(matcher, action); });\r\n };\r\n}\r\nfunction hasExpectedRequestMetadata(action, validStatus) {\r\n if (!action || !action.meta)\r\n return false;\r\n var hasValidRequestId = typeof action.meta.requestId === \"string\";\r\n var hasValidRequestStatus = validStatus.indexOf(action.meta.requestStatus) > -1;\r\n return hasValidRequestId && hasValidRequestStatus;\r\n}\r\nfunction isAsyncThunkArray(a) {\r\n return typeof a[0] === \"function\" && \"pending\" in a[0] && \"fulfilled\" in a[0] && \"rejected\" in a[0];\r\n}\r\nfunction isPending() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"pending\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isPending()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.pending; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isRejected() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"rejected\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejected()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.rejected; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isRejectedWithValue() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n var hasFlag = function (action) {\r\n return action && action.meta && action.meta.rejectedWithValue;\r\n };\r\n if (asyncThunks.length === 0) {\r\n return function (action) {\r\n var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n return combinedMatcher(action);\r\n };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isRejectedWithValue()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var combinedMatcher = isAllOf(isRejected.apply(void 0, asyncThunks), hasFlag);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isFulfilled() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"fulfilled\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isFulfilled()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = asyncThunks.map(function (asyncThunk) { return asyncThunk.fulfilled; });\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\nfunction isAsyncThunkAction() {\r\n var asyncThunks = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n asyncThunks[_i] = arguments[_i];\r\n }\r\n if (asyncThunks.length === 0) {\r\n return function (action) { return hasExpectedRequestMetadata(action, [\"pending\", \"fulfilled\", \"rejected\"]); };\r\n }\r\n if (!isAsyncThunkArray(asyncThunks)) {\r\n return isAsyncThunkAction()(asyncThunks[0]);\r\n }\r\n return function (action) {\r\n var matchers = [];\r\n for (var _i = 0, asyncThunks_1 = asyncThunks; _i < asyncThunks_1.length; _i++) {\r\n var asyncThunk = asyncThunks_1[_i];\r\n matchers.push(asyncThunk.pending, asyncThunk.rejected, asyncThunk.fulfilled);\r\n }\r\n var combinedMatcher = isAnyOf.apply(void 0, matchers);\r\n return combinedMatcher(action);\r\n };\r\n}\r\n// src/listenerMiddleware/utils.ts\r\nvar assertFunction = function (func, expected) {\r\n if (typeof func !== \"function\") {\r\n throw new TypeError(expected + \" is not a function\");\r\n }\r\n};\r\nvar noop = function () {\r\n};\r\nvar catchRejection = function (promise2, onError) {\r\n if (onError === void 0) { onError = noop; }\r\n promise2.catch(onError);\r\n return promise2;\r\n};\r\nvar addAbortSignalListener = function (abortSignal, callback) {\r\n abortSignal.addEventListener(\"abort\", callback, { once: true });\r\n return function () { return abortSignal.removeEventListener(\"abort\", callback); };\r\n};\r\nvar abortControllerWithReason = function (abortController, reason) {\r\n var signal = abortController.signal;\r\n if (signal.aborted) {\r\n return;\r\n }\r\n if (!(\"reason\" in signal)) {\r\n Object.defineProperty(signal, \"reason\", {\r\n enumerable: true,\r\n value: reason,\r\n configurable: true,\r\n writable: true\r\n });\r\n }\r\n ;\r\n abortController.abort(reason);\r\n};\r\n// src/listenerMiddleware/exceptions.ts\r\nvar task = \"task\";\r\nvar listener = \"listener\";\r\nvar completed = \"completed\";\r\nvar cancelled = \"cancelled\";\r\nvar taskCancelled = \"task-\" + cancelled;\r\nvar taskCompleted = \"task-\" + completed;\r\nvar listenerCancelled = listener + \"-\" + cancelled;\r\nvar listenerCompleted = listener + \"-\" + completed;\r\nvar TaskAbortError = /** @class */ (function () {\r\n function TaskAbortError(code) {\r\n this.code = code;\r\n this.name = \"TaskAbortError\";\r\n this.message = task + \" \" + cancelled + \" (reason: \" + code + \")\";\r\n }\r\n return TaskAbortError;\r\n}());\r\n// src/listenerMiddleware/task.ts\r\nvar validateActive = function (signal) {\r\n if (signal.aborted) {\r\n throw new TaskAbortError(signal.reason);\r\n }\r\n};\r\nfunction raceWithSignal(signal, promise2) {\r\n var cleanup = noop;\r\n return new Promise(function (resolve, reject) {\r\n var notifyRejection = function () { return reject(new TaskAbortError(signal.reason)); };\r\n if (signal.aborted) {\r\n notifyRejection();\r\n return;\r\n }\r\n cleanup = addAbortSignalListener(signal, notifyRejection);\r\n promise2.finally(function () { return cleanup(); }).then(resolve, reject);\r\n }).finally(function () {\r\n cleanup = noop;\r\n });\r\n}\r\nvar runTask = function (task2, cleanUp) { return __async(void 0, null, function () {\r\n var value, error_1;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n _c.trys.push([0, 3, 4, 5]);\r\n return [4 /*yield*/, Promise.resolve()];\r\n case 1:\r\n _c.sent();\r\n return [4 /*yield*/, task2()];\r\n case 2:\r\n value = _c.sent();\r\n return [2 /*return*/, {\r\n status: \"ok\",\r\n value: value\r\n }];\r\n case 3:\r\n error_1 = _c.sent();\r\n return [2 /*return*/, {\r\n status: error_1 instanceof TaskAbortError ? \"cancelled\" : \"rejected\",\r\n error: error_1\r\n }];\r\n case 4:\r\n cleanUp == null ? void 0 : cleanUp();\r\n return [7 /*endfinally*/];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n}); };\r\nvar createPause = function (signal) {\r\n return function (promise2) {\r\n return catchRejection(raceWithSignal(signal, promise2).then(function (output) {\r\n validateActive(signal);\r\n return output;\r\n }));\r\n };\r\n};\r\nvar createDelay = function (signal) {\r\n var pause = createPause(signal);\r\n return function (timeoutMs) {\r\n return pause(new Promise(function (resolve) { return setTimeout(resolve, timeoutMs); }));\r\n };\r\n};\r\n// src/listenerMiddleware/index.ts\r\nvar assign = Object.assign;\r\nvar INTERNAL_NIL_TOKEN = {};\r\nvar alm = \"listenerMiddleware\";\r\nvar createFork = function (parentAbortSignal, parentBlockingPromises) {\r\n var linkControllers = function (controller) { return addAbortSignalListener(parentAbortSignal, function () { return abortControllerWithReason(controller, parentAbortSignal.reason); }); };\r\n return function (taskExecutor, opts) {\r\n assertFunction(taskExecutor, \"taskExecutor\");\r\n var childAbortController = new AbortController();\r\n linkControllers(childAbortController);\r\n var result = runTask(function () { return __async(void 0, null, function () {\r\n var result2;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n validateActive(parentAbortSignal);\r\n validateActive(childAbortController.signal);\r\n return [4 /*yield*/, taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal\r\n })];\r\n case 1:\r\n result2 = _c.sent();\r\n validateActive(childAbortController.signal);\r\n return [2 /*return*/, result2];\r\n }\r\n });\r\n }); }, function () { return abortControllerWithReason(childAbortController, taskCompleted); });\r\n if (opts == null ? void 0 : opts.autoJoin) {\r\n parentBlockingPromises.push(result);\r\n }\r\n return {\r\n result: createPause(parentAbortSignal)(result),\r\n cancel: function () {\r\n abortControllerWithReason(childAbortController, taskCancelled);\r\n }\r\n };\r\n };\r\n};\r\nvar createTakePattern = function (startListening, signal) {\r\n var take = function (predicate, timeout) { return __async(void 0, null, function () {\r\n var unsubscribe, tuplePromise, promises, output;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n validateActive(signal);\r\n unsubscribe = function () {\r\n };\r\n tuplePromise = new Promise(function (resolve, reject) {\r\n var stopListening = startListening({\r\n predicate: predicate,\r\n effect: function (action, listenerApi) {\r\n listenerApi.unsubscribe();\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState()\r\n ]);\r\n }\r\n });\r\n unsubscribe = function () {\r\n stopListening();\r\n reject();\r\n };\r\n });\r\n promises = [\r\n tuplePromise\r\n ];\r\n if (timeout != null) {\r\n promises.push(new Promise(function (resolve) { return setTimeout(resolve, timeout, null); }));\r\n }\r\n _c.label = 1;\r\n case 1:\r\n _c.trys.push([1, , 3, 4]);\r\n return [4 /*yield*/, raceWithSignal(signal, Promise.race(promises))];\r\n case 2:\r\n output = _c.sent();\r\n validateActive(signal);\r\n return [2 /*return*/, output];\r\n case 3:\r\n unsubscribe();\r\n return [7 /*endfinally*/];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n return function (predicate, timeout) { return catchRejection(take(predicate, timeout)); };\r\n};\r\nvar getListenerEntryPropsFrom = function (options) {\r\n var type = options.type, actionCreator = options.actionCreator, matcher = options.matcher, predicate = options.predicate, effect = options.effect;\r\n if (type) {\r\n predicate = createAction(type).match;\r\n }\r\n else if (actionCreator) {\r\n type = actionCreator.type;\r\n predicate = actionCreator.match;\r\n }\r\n else if (matcher) {\r\n predicate = matcher;\r\n }\r\n else if (predicate) {\r\n }\r\n else {\r\n throw new Error(\"Creating or removing a listener requires one of the known fields for matching an action\");\r\n }\r\n assertFunction(effect, \"options.listener\");\r\n return { predicate: predicate, type: type, effect: effect };\r\n};\r\nvar createListenerEntry = function (options) {\r\n var _c = getListenerEntryPropsFrom(options), type = _c.type, predicate = _c.predicate, effect = _c.effect;\r\n var id = nanoid();\r\n var entry = {\r\n id: id,\r\n effect: effect,\r\n type: type,\r\n predicate: predicate,\r\n pending: new Set(),\r\n unsubscribe: function () {\r\n throw new Error(\"Unsubscribe not initialized\");\r\n }\r\n };\r\n return entry;\r\n};\r\nvar cancelActiveListeners = function (entry) {\r\n entry.pending.forEach(function (controller) {\r\n abortControllerWithReason(controller, listenerCancelled);\r\n });\r\n};\r\nvar createClearListenerMiddleware = function (listenerMap) {\r\n return function () {\r\n listenerMap.forEach(cancelActiveListeners);\r\n listenerMap.clear();\r\n };\r\n};\r\nvar safelyNotifyError = function (errorHandler, errorToNotify, errorInfo) {\r\n try {\r\n errorHandler(errorToNotify, errorInfo);\r\n }\r\n catch (errorHandlerError) {\r\n setTimeout(function () {\r\n throw errorHandlerError;\r\n }, 0);\r\n }\r\n};\r\nvar addListener = createAction(alm + \"/add\");\r\nvar clearAllListeners = createAction(alm + \"/removeAll\");\r\nvar removeListener = createAction(alm + \"/remove\");\r\nvar defaultErrorHandler = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n console.error.apply(console, __spreadArray([alm + \"/error\"], args));\r\n};\r\nfunction createListenerMiddleware(middlewareOptions) {\r\n var _this = this;\r\n if (middlewareOptions === void 0) { middlewareOptions = {}; }\r\n var listenerMap = new Map();\r\n var extra = middlewareOptions.extra, _c = middlewareOptions.onError, onError = _c === void 0 ? defaultErrorHandler : _c;\r\n assertFunction(onError, \"onError\");\r\n var insertEntry = function (entry) {\r\n entry.unsubscribe = function () { return listenerMap.delete(entry.id); };\r\n listenerMap.set(entry.id, entry);\r\n return function (cancelOptions) {\r\n entry.unsubscribe();\r\n if (cancelOptions == null ? void 0 : cancelOptions.cancelActive) {\r\n cancelActiveListeners(entry);\r\n }\r\n };\r\n };\r\n var findListenerEntry = function (comparator) {\r\n for (var _i = 0, _c = Array.from(listenerMap.values()); _i < _c.length; _i++) {\r\n var entry = _c[_i];\r\n if (comparator(entry)) {\r\n return entry;\r\n }\r\n }\r\n return void 0;\r\n };\r\n var startListening = function (options) {\r\n var entry = findListenerEntry(function (existingEntry) { return existingEntry.effect === options.effect; });\r\n if (!entry) {\r\n entry = createListenerEntry(options);\r\n }\r\n return insertEntry(entry);\r\n };\r\n var stopListening = function (options) {\r\n var _c = getListenerEntryPropsFrom(options), type = _c.type, effect = _c.effect, predicate = _c.predicate;\r\n var entry = findListenerEntry(function (entry2) {\r\n var matchPredicateOrType = typeof type === \"string\" ? entry2.type === type : entry2.predicate === predicate;\r\n return matchPredicateOrType && entry2.effect === effect;\r\n });\r\n if (entry) {\r\n entry.unsubscribe();\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry);\r\n }\r\n }\r\n return !!entry;\r\n };\r\n var notifyListener = function (entry, action, api, getOriginalState) { return __async(_this, null, function () {\r\n var internalTaskController, take, autoJoinPromises, listenerError_1;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n internalTaskController = new AbortController();\r\n take = createTakePattern(startListening, internalTaskController.signal);\r\n autoJoinPromises = [];\r\n _c.label = 1;\r\n case 1:\r\n _c.trys.push([1, 3, 4, 6]);\r\n entry.pending.add(internalTaskController);\r\n return [4 /*yield*/, Promise.resolve(entry.effect(action, assign({}, api, {\r\n getOriginalState: getOriginalState,\r\n condition: function (predicate, timeout) { return take(predicate, timeout).then(Boolean); },\r\n take: take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra: extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal, autoJoinPromises),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: function () {\r\n listenerMap.set(entry.id, entry);\r\n },\r\n cancelActiveListeners: function () {\r\n entry.pending.forEach(function (controller, _, set) {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled);\r\n set.delete(controller);\r\n }\r\n });\r\n }\r\n })))];\r\n case 2:\r\n _c.sent();\r\n return [3 /*break*/, 6];\r\n case 3:\r\n listenerError_1 = _c.sent();\r\n if (!(listenerError_1 instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError_1, {\r\n raisedBy: \"effect\"\r\n });\r\n }\r\n return [3 /*break*/, 6];\r\n case 4: return [4 /*yield*/, Promise.allSettled(autoJoinPromises)];\r\n case 5:\r\n _c.sent();\r\n abortControllerWithReason(internalTaskController, listenerCompleted);\r\n entry.pending.delete(internalTaskController);\r\n return [7 /*endfinally*/];\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n }); };\r\n var clearListenerMiddleware = createClearListenerMiddleware(listenerMap);\r\n var middleware = function (api) { return function (next) { return function (action) {\r\n if (!isAction(action)) {\r\n return next(action);\r\n }\r\n if (addListener.match(action)) {\r\n return startListening(action.payload);\r\n }\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware();\r\n return;\r\n }\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload);\r\n }\r\n var originalState = api.getState();\r\n var getOriginalState = function () {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(alm + \": getOriginalState can only be called synchronously\");\r\n }\r\n return originalState;\r\n };\r\n var result;\r\n try {\r\n result = next(action);\r\n if (listenerMap.size > 0) {\r\n var currentState = api.getState();\r\n var listenerEntries = Array.from(listenerMap.values());\r\n for (var _i = 0, listenerEntries_1 = listenerEntries; _i < listenerEntries_1.length; _i++) {\r\n var entry = listenerEntries_1[_i];\r\n var runListener = false;\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState);\r\n }\r\n catch (predicateError) {\r\n runListener = false;\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: \"predicate\"\r\n });\r\n }\r\n if (!runListener) {\r\n continue;\r\n }\r\n notifyListener(entry, action, api, getOriginalState);\r\n }\r\n }\r\n }\r\n finally {\r\n originalState = INTERNAL_NIL_TOKEN;\r\n }\r\n return result;\r\n }; }; };\r\n return {\r\n middleware: middleware,\r\n startListening: startListening,\r\n stopListening: stopListening,\r\n clearListeners: clearListenerMiddleware\r\n };\r\n}\r\n// src/autoBatchEnhancer.ts\r\nvar SHOULD_AUTOBATCH = \"RTK_autoBatch\";\r\nvar prepareAutoBatched = function () { return function (payload) {\r\n var _c;\r\n return ({\r\n payload: payload,\r\n meta: (_c = {}, _c[SHOULD_AUTOBATCH] = true, _c)\r\n });\r\n}; };\r\nvar promise;\r\nvar queueMicrotaskShim = typeof queueMicrotask === \"function\" ? queueMicrotask.bind(typeof window !== \"undefined\" ? window : typeof global !== \"undefined\" ? global : globalThis) : function (cb) { return (promise || (promise = Promise.resolve())).then(cb).catch(function (err) { return setTimeout(function () {\r\n throw err;\r\n}, 0); }); };\r\nvar createQueueWithTimer = function (timeout) {\r\n return function (notify) {\r\n setTimeout(notify, timeout);\r\n };\r\n};\r\nvar rAF = typeof window !== \"undefined\" && window.requestAnimationFrame ? window.requestAnimationFrame : createQueueWithTimer(10);\r\nvar autoBatchEnhancer = function (options) {\r\n if (options === void 0) { options = { type: \"raf\" }; }\r\n return function (next) { return function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var store = next.apply(void 0, args);\r\n var notifying = true;\r\n var shouldNotifyAtEndOfTick = false;\r\n var notificationQueued = false;\r\n var listeners = new Set();\r\n var queueCallback = options.type === \"tick\" ? queueMicrotaskShim : options.type === \"raf\" ? rAF : options.type === \"callback\" ? options.queueNotification : createQueueWithTimer(options.timeout);\r\n var notifyListeners = function () {\r\n notificationQueued = false;\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false;\r\n listeners.forEach(function (l) { return l(); });\r\n }\r\n };\r\n return Object.assign({}, store, {\r\n subscribe: function (listener2) {\r\n var wrappedListener = function () { return notifying && listener2(); };\r\n var unsubscribe = store.subscribe(wrappedListener);\r\n listeners.add(listener2);\r\n return function () {\r\n unsubscribe();\r\n listeners.delete(listener2);\r\n };\r\n },\r\n dispatch: function (action) {\r\n var _a;\r\n try {\r\n notifying = !((_a = action == null ? void 0 : action.meta) == null ? void 0 : _a[SHOULD_AUTOBATCH]);\r\n shouldNotifyAtEndOfTick = !notifying;\r\n if (shouldNotifyAtEndOfTick) {\r\n if (!notificationQueued) {\r\n notificationQueued = true;\r\n queueCallback(notifyListeners);\r\n }\r\n }\r\n return store.dispatch(action);\r\n }\r\n finally {\r\n notifying = true;\r\n }\r\n }\r\n });\r\n }; };\r\n};\r\n// src/index.ts\r\nenableES5();\r\nexport { EnhancerArray, MiddlewareArray, SHOULD_AUTOBATCH, TaskAbortError, addListener, autoBatchEnhancer, clearAllListeners, configureStore, createAction, createActionCreatorInvariantMiddleware, createAsyncThunk, createDraftSafeSelector, createEntityAdapter, createImmutableStateInvariantMiddleware, createListenerMiddleware, default2 as createNextState, createReducer, createSelector2 as createSelector, createSerializableStateInvariantMiddleware, createSlice, current2 as current, findNonSerializableValue, freeze, getDefaultMiddleware, getType, isAction, isActionCreator, isAllOf, isAnyOf, isAsyncThunkAction, isDraft4 as isDraft, isFSA as isFluxStandardAction, isFulfilled, isImmutableDefault, isPending, isPlain, isPlainObject, isRejected, isRejectedWithValue, miniSerializeError, nanoid, original, prepareAutoBatched, removeListener, unwrapResult };\r\n//# sourceMappingURL=redux-toolkit.esm.js.map","import { __read } from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\nvar OPERA10_PRIORITY = 10;\nvar OPERA11_PRIORITY = 20;\nvar CHROME_PRIORITY = 30;\nvar WINJS_PRIORITY = 40;\nvar GECKO_PRIORITY = 50;\nfunction createFrame(filename, func, lineno, colno) {\n var frame = {\n filename: filename,\n function: func,\n // All browser frames are considered in_app\n in_app: true,\n };\n if (lineno !== undefined) {\n frame.lineno = lineno;\n }\n if (colno !== undefined) {\n frame.colno = colno;\n }\n return frame;\n}\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chromeRegex = /^\\s*at (?:(.*?) ?\\((?:address at )?)?((?:file|https?|blob|chrome-extension|address|native|eval|webpack||[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\nvar chromeEvalRegex = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\nvar chrome = function (line) {\n var parts = chromeRegex.exec(line);\n if (parts) {\n var isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval) {\n var subMatch = chromeEvalRegex.exec(parts[2]);\n if (subMatch) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = subMatch[1]; // url\n parts[3] = subMatch[2]; // line\n parts[4] = subMatch[3]; // column\n }\n }\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n var _a = __read(extractSafariExtensionDetails(parts[1] || UNKNOWN_FUNCTION, parts[2]), 2), func = _a[0], filename = _a[1];\n return createFrame(filename, func, parts[3] ? +parts[3] : undefined, parts[4] ? +parts[4] : undefined);\n }\n return;\n};\nexport var chromeStackParser = [CHROME_PRIORITY, chrome];\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar geckoREgex = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar geckoEvalRegex = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar gecko = function (line) {\n var _a;\n var parts = geckoREgex.exec(line);\n if (parts) {\n var isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval) {\n var subMatch = geckoEvalRegex.exec(parts[3]);\n if (subMatch) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || 'eval';\n parts[3] = subMatch[1];\n parts[4] = subMatch[2];\n parts[5] = ''; // no column when eval\n }\n }\n var filename = parts[3];\n var func = parts[1] || UNKNOWN_FUNCTION;\n _a = __read(extractSafariExtensionDetails(func, filename), 2), func = _a[0], filename = _a[1];\n return createFrame(filename, func, parts[4] ? +parts[4] : undefined, parts[5] ? +parts[5] : undefined);\n }\n return;\n};\nexport var geckoStackParser = [GECKO_PRIORITY, gecko];\nvar winjsRegex = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar winjs = function (line) {\n var parts = winjsRegex.exec(line);\n return parts\n ? createFrame(parts[2], parts[1] || UNKNOWN_FUNCTION, +parts[3], parts[4] ? +parts[4] : undefined)\n : undefined;\n};\nexport var winjsStackParser = [WINJS_PRIORITY, winjs];\nvar opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\nvar opera10 = function (line) {\n var parts = opera10Regex.exec(line);\n return parts ? createFrame(parts[2], parts[3] || UNKNOWN_FUNCTION, +parts[1]) : undefined;\n};\nexport var opera10StackParser = [OPERA10_PRIORITY, opera10];\nvar opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:]+)>|([^)]+))\\(.*\\))? in (.*):\\s*$/i;\nvar opera11 = function (line) {\n var parts = opera11Regex.exec(line);\n return parts ? createFrame(parts[5], parts[3] || parts[4] || UNKNOWN_FUNCTION, +parts[1], +parts[2]) : undefined;\n};\nexport var opera11StackParser = [OPERA11_PRIORITY, opera11];\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunately \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = function (func, filename) {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? \"safari-extension:\" + filename : \"safari-web-extension:\" + filename,\n ]\n : [func, filename];\n};\n//# sourceMappingURL=stack-parsers.js.map","import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, createStackParser, extractExceptionKeysForMessage, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, normalizeToSize, resolvedSyncPromise, } from '@sentry/utils';\nimport { chromeStackParser, geckoStackParser, opera10StackParser, opera11StackParser, winjsStackParser, } from './stack-parsers';\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromError(ex) {\n // Get the frames first since Opera can lose the stack if we touch anything else first\n var frames = parseStackFrames(ex);\n var exception = {\n type: ex && ex.name,\n value: extractMessage(ex),\n };\n if (frames.length) {\n exception.stacktrace = { frames: frames };\n }\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, isUnhandledRejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : isUnhandledRejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (isUnhandledRejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var frames_1 = parseStackFrames(syntheticException);\n if (frames_1.length) {\n event.stacktrace = { frames: frames_1 };\n }\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromError(ex) {\n return {\n exception: {\n values: [exceptionFromError(ex)],\n },\n };\n}\n/** Parses stack frames from an error */\nexport function parseStackFrames(ex) {\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace || ex.stack || '';\n var popSize = getPopSize(ex);\n try {\n return createStackParser(opera10StackParser, opera11StackParser, chromeStackParser, winjsStackParser, geckoStackParser)(stacktrace, popSize);\n }\n catch (e) {\n // no-empty\n }\n return [];\n}\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\nfunction getPopSize(ex) {\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n return ex.framesToPop;\n }\n if (reactMinifiedRegexp.test(ex.message)) {\n return 1;\n }\n }\n return 0;\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n/**\n * Creates an {@link Event} from all inputs to `captureException` and non-primitive inputs to `captureMessage`.\n * @hidden\n */\nexport function eventFromException(exception, hint, attachStacktrace) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, attachStacktrace);\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(message, level, hint, attachStacktrace) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, attachStacktrace);\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return resolvedSyncPromise(event);\n}\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(exception, syntheticException, attachStacktrace, isUnhandledRejection) {\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n return eventFromError(errorEvent.error);\n }\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception)) {\n var domException = exception;\n if ('stack' in exception) {\n event = eventFromError(exception);\n }\n else {\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': \"\" + domException.code });\n }\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n return eventFromError(exception);\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it's a plain object or an instance of `Event` (the built-in JS kind, not this SDK's `Event` type), serialize\n // it manually. This will allow us to group events based on top-level keys which is much better than creating a new\n // group on any key/value change.\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, isUnhandledRejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, attachStacktrace);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromString(input, syntheticException, attachStacktrace) {\n var event = {\n message: input,\n };\n if (attachStacktrace && syntheticException) {\n var frames_2 = parseStackFrames(syntheticException);\n if (frames_2.length) {\n event.stacktrace = { frames: frames_2 };\n }\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","import { __assign } from \"tslib\";\nimport { captureException, getReportDialogEndpoint, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, addNonEnumerableProperty, getGlobalObject, getOriginalFunction, logger, markFunctionWrapped, } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nvar global = getGlobalObject();\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n // for future readers what this does is wrap a function and then create\n // a bi-directional wrapping between them.\n //\n // example: wrapped = wrap(original);\n // original.__sentry_wrapped__ -> wrapped\n // wrapped.__sentry_original__ -> original\n if (options === void 0) { options = {}; }\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // if we're dealing with a function that was previously wrapped, return\n // the original wrapper.\n var wrapper = fn.__sentry_wrapped__;\n if (wrapper) {\n return wrapper;\n }\n // We don't wanna wrap it twice\n if (getOriginalFunction(fn)) {\n return fn;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n if (options.mechanism) {\n addExceptionTypeValue(event, undefined, undefined);\n addExceptionMechanism(event, options.mechanism);\n }\n event.extra = __assign(__assign({}, event.extra), { arguments: args });\n return event;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // eslint-disable-line no-empty\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n markFunctionWrapped(sentryWrapped, fn);\n addNonEnumerableProperty(fn, '__sentry_wrapped__', sentryWrapped);\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n }\n catch (_oO) { }\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!global.document) {\n return;\n }\n if (!options.eventId) {\n IS_DEBUG_BUILD && logger.error('Missing eventId option in showReportDialog call');\n return;\n }\n if (!options.dsn) {\n IS_DEBUG_BUILD && logger.error('Missing dsn option in showReportDialog call');\n return;\n }\n var script = global.document.createElement('script');\n script.async = true;\n script.src = getReportDialogEndpoint(options.dsn, options);\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n var injectionPoint = global.document.head || global.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n }\n}\n//# sourceMappingURL=helpers.js.map","export var SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'];\n//# sourceMappingURL=enums.js.map","import { Severity } from '@sentry/types';\nimport { SeverityLevels } from './enums';\nfunction isSupportedSeverity(level) {\n return SeverityLevels.indexOf(level) !== -1;\n}\n/**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\nexport function severityFromString(level) {\n if (level === 'warn')\n return Severity.Warning;\n if (isSupportedSeverity(level)) {\n return level;\n }\n return Severity.Log;\n}\n//# sourceMappingURL=severity.js.map","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin, severityFromString, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n }, {\n event: event,\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n if (this._options.console) {\n addInstrumentationHandler('console', _consoleBreadcrumb);\n }\n if (this._options.dom) {\n addInstrumentationHandler('dom', _domBreadcrumb(this._options.dom));\n }\n if (this._options.xhr) {\n addInstrumentationHandler('xhr', _xhrBreadcrumb);\n }\n if (this._options.fetch) {\n addInstrumentationHandler('fetch', _fetchBreadcrumb);\n }\n if (this._options.history) {\n addInstrumentationHandler('history', _historyBreadcrumb);\n }\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n/**\n * A HOC that creaes a function that creates breadcrumbs from DOM API calls.\n * This is a HOC so that we get access to dom options in the closure.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _domBreadcrumb(dom) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function _innerDomBreadcrumb(handlerData) {\n var target;\n var keyAttrs = typeof dom === 'object' ? dom.serializeAttribute : undefined;\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target, keyAttrs)\n : htmlTreeAsString(handlerData.event, keyAttrs);\n }\n catch (e) {\n target = '';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n }\n return _innerDomBreadcrumb;\n}\n/**\n * Creates breadcrumbs from console API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _consoleBreadcrumb(handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: severityFromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n}\n/**\n * Creates breadcrumbs from XHR API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _xhrBreadcrumb(handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n var _a = handlerData.xhr.__sentry_xhr__ || {}, method = _a.method, url = _a.url, status_code = _a.status_code, body = _a.body;\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code,\n },\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n input: body,\n });\n return;\n }\n}\n/**\n * Creates breadcrumbs from fetch API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _fetchBreadcrumb(handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n}\n/**\n * Creates breadcrumbs from history API calls\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _historyBreadcrumb(handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n}\n//# sourceMappingURL=breadcrumbs.js.map","import { logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags';\n/** Deduplication filter */\nvar Dedupe = /** @class */ (function () {\n function Dedupe() {\n /**\n * @inheritDoc\n */\n this.name = Dedupe.id;\n }\n /**\n * @inheritDoc\n */\n Dedupe.prototype.setupOnce = function (addGlobalEventProcessor, getCurrentHub) {\n addGlobalEventProcessor(function (currentEvent) {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (_shouldDropEvent(currentEvent, self._previousEvent)) {\n IS_DEBUG_BUILD && logger.warn('Event dropped due to being a duplicate of previously captured event.');\n return null;\n }\n }\n catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n };\n /**\n * @inheritDoc\n */\n Dedupe.id = 'Dedupe';\n return Dedupe;\n}());\nexport { Dedupe };\n/** JSDoc */\nfunction _shouldDropEvent(currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n if (_isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n if (_isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n return false;\n}\n/** JSDoc */\nfunction _isSameMessageEvent(currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n if (currentMessage !== previousMessage) {\n return false;\n }\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n}\n/** JSDoc */\nfunction _isSameExceptionEvent(currentEvent, previousEvent) {\n var previousException = _getExceptionFromEvent(previousEvent);\n var currentException = _getExceptionFromEvent(currentEvent);\n if (!previousException || !currentException) {\n return false;\n }\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n if (!_isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!_isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n}\n/** JSDoc */\nfunction _isSameStacktrace(currentEvent, previousEvent) {\n var currentFrames = _getFramesFromEvent(currentEvent);\n var previousFrames = _getFramesFromEvent(previousEvent);\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n currentFrames = currentFrames;\n previousFrames = previousFrames;\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n // Otherwise, compare the two\n for (var i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n if (frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function) {\n return false;\n }\n }\n return true;\n}\n/** JSDoc */\nfunction _isSameFingerprint(currentEvent, previousEvent) {\n var currentFingerprint = currentEvent.fingerprint;\n var previousFingerprint = previousEvent.fingerprint;\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n currentFingerprint = currentFingerprint;\n previousFingerprint = previousFingerprint;\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n }\n catch (_oO) {\n return false;\n }\n}\n/** JSDoc */\nfunction _getExceptionFromEvent(event) {\n return event.exception && event.exception.values && event.exception.values[0];\n}\n/** JSDoc */\nfunction _getFramesFromEvent(event) {\n var exception = event.exception;\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n }\n catch (_oO) {\n return undefined;\n }\n }\n else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n}\n//# sourceMappingURL=dedupe.js.map","import { __assign, __read } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /**\n * Stores references functions to installing handlers. Will set to undefined\n * after they have been run so that they are not used twice.\n */\n this._installFunc = {\n onerror: _installGlobalOnErrorHandler,\n onunhandledrejection: _installGlobalOnUnhandledRejectionHandler,\n };\n this._options = __assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n var options = this._options;\n // We can disable guard-for-in as we construct the options object above + do checks against\n // `this._installFunc` for the property.\n // eslint-disable-next-line guard-for-in\n for (var key in options) {\n var installFunc = this._installFunc[key];\n if (installFunc && options[key]) {\n globalHandlerLog(key);\n installFunc();\n this._installFunc[key] = undefined;\n }\n }\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n/** JSDoc */\nfunction _installGlobalOnErrorHandler() {\n addInstrumentationHandler('error', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (data) {\n var _a = __read(getHubAndAttachStacktrace(), 2), hub = _a[0], attachStacktrace = _a[1];\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n var msg = data.msg, url = data.url, line = data.line, column = data.column, error = data.error;\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return;\n }\n var event = error === undefined && isString(msg)\n ? _eventFromIncompleteOnError(msg, url, line, column)\n : _enhanceEventWithInitialFrame(eventFromUnknownInput(error || msg, undefined, attachStacktrace, false), url, line, column);\n event.level = Severity.Error;\n addMechanismAndCapture(hub, error, event, 'onerror');\n });\n}\n/** JSDoc */\nfunction _installGlobalOnUnhandledRejectionHandler() {\n addInstrumentationHandler('unhandledrejection', \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function (e) {\n var _a = __read(getHubAndAttachStacktrace(), 2), hub = _a[0], attachStacktrace = _a[1];\n if (!hub.getIntegration(GlobalHandlers)) {\n return;\n }\n var error = e;\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n }\n catch (_oO) {\n // no-empty\n }\n if (shouldIgnoreOnError() || (error && error.__sentry_own_request__)) {\n return true;\n }\n var event = isPrimitive(error)\n ? _eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, attachStacktrace, true);\n event.level = Severity.Error;\n addMechanismAndCapture(hub, error, event, 'onunhandledrejection');\n return;\n });\n}\n/**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\nfunction _eventFromRejectionWithPrimitive(reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: \"Non-Error promise rejection captured with value: \" + String(reason),\n },\n ],\n },\n };\n}\n/**\n * This function creates a stack from an old, error-less onerror handler.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _eventFromIncompleteOnError(msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name = 'Error';\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n var event = {\n exception: {\n values: [\n {\n type: name,\n value: message,\n },\n ],\n },\n };\n return _enhanceEventWithInitialFrame(event, url, line, column);\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _enhanceEventWithInitialFrame(event, url, line, column) {\n // event.exception\n var e = (event.exception = event.exception || {});\n // event.exception.values\n var ev = (e.values = e.values || []);\n // event.exception.values[0]\n var ev0 = (ev[0] = ev[0] || {});\n // event.exception.values[0].stacktrace\n var ev0s = (ev0.stacktrace = ev0.stacktrace || {});\n // event.exception.values[0].stacktrace.frames\n var ev0sf = (ev0s.frames = ev0s.frames || []);\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n // event.exception.values[0].stacktrace.frames\n if (ev0sf.length === 0) {\n ev0sf.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n}\nfunction globalHandlerLog(type) {\n IS_DEBUG_BUILD && logger.log(\"Global Handler attached: \" + type);\n}\nfunction addMechanismAndCapture(hub, error, event, type) {\n addExceptionMechanism(event, {\n handled: false,\n type: type,\n });\n hub.captureEvent(event, {\n originalException: error,\n });\n}\nfunction getHubAndAttachStacktrace() {\n var hub = getCurrentHub();\n var client = hub.getClient();\n var attachStacktrace = client && client.getOptions().attachStacktrace;\n return [hub, attachStacktrace];\n}\n//# sourceMappingURL=globalhandlers.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromError } from '../eventbuilder';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n return self ? _handler(self._key, self._limit, event, hint) : event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n/**\n * @inheritDoc\n */\nexport function _handler(key, limit, event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = _walkErrorTree(limit, hint.originalException, key);\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n}\n/**\n * JSDOC\n */\nexport function _walkErrorTree(limit, error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= limit) {\n return stack;\n }\n var exception = exceptionFromError(error[key]);\n return _walkErrorTree(limit, error[key], key, __spread([exception], stack));\n}\n//# sourceMappingURL=linkederrors.js.map","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject, getOriginalFunction } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', _wrapTimeFunction);\n }\n if (this._options.setInterval) {\n fill(global, 'setInterval', _wrapTimeFunction);\n }\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', _wrapRAF);\n }\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', _wrapXHR);\n }\n var eventTargetOption = this._options.eventTarget;\n if (eventTargetOption) {\n var eventTarget = Array.isArray(eventTargetOption) ? eventTargetOption : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(_wrapEventTarget);\n }\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n/** JSDoc */\nfunction _wrapTimeFunction(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction _wrapRAF(original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.apply(this, [\n wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }),\n ]);\n };\n}\n/** JSDoc */\nfunction _wrapXHR(originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n var originalFunction = getOriginalFunction(original);\n if (originalFunction) {\n wrapOptions.mechanism.data.handler = getFunctionName(originalFunction);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n}\n/** JSDoc */\nfunction _wrapEventTarget(target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.apply(this, [\n eventName,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }),\n options,\n ]);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn;\n try {\n var originalEventHandler = wrappedEventHandler && wrappedEventHandler.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n}\n//# sourceMappingURL=trycatch.js.map","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n // grab as much info as exists and add it to the event\n var url = (event.request && event.request.url) || (global.location && global.location.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n var headers = __assign(__assign(__assign({}, (event.request && event.request.headers)), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));\n var request = __assign(__assign({}, (url && { url: url })), { headers: headers });\n return __assign(__assign({}, event), { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { addNonEnumerableProperty, logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nexport var installedIntegrations = [];\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce(function (acc, integrations) {\n if (acc.every(function (accIntegration) { return integrations.name !== accIntegration.name; })) {\n acc.push(integrations);\n }\n return acc;\n }, []);\n}\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = __spread(filterDuplicates(defaultIntegrations));\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = __spread(integrations.filter(function (integrations) {\n return userIntegrations.every(function (userIntegration) { return userIntegration.name !== integrations.name; });\n }), filterDuplicates(userIntegrations));\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n IS_DEBUG_BUILD && logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n addNonEnumerableProperty(integrations, 'initialized', true);\n return integrations;\n}\n//# sourceMappingURL=integration.js.map","import { __assign, __read, __spread, __values } from \"tslib\";\n/* eslint-disable max-lines */\nimport { Scope } from '@sentry/hub';\nimport { checkOrSetAlreadyCaught, dateTimestampInSeconds, isPlainObject, isPrimitive, isThenable, logger, makeDsn, normalize, rejectedSyncPromise, resolvedSyncPromise, SentryError, SyncPromise, truncate, uuid4, } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { setupIntegrations } from './integration';\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of calls being processed */\n this._numProcessing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = makeDsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n var eventId = hint && hint.event_id;\n this._process(this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n this._process(promisedEvent\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n // ensure we haven't captured this very object before\n if (hint && hint.originalException && checkOrSetAlreadyCaught(hint.originalException)) {\n IS_DEBUG_BUILD && logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n var eventId = hint && hint.event_id;\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureSession = function (session) {\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n if (!(typeof session.release === 'string')) {\n IS_DEBUG_BUILD && logger.warn('Discarded session because of missing or non-string release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getTransport = function () {\n return this._getBackend().getTransport();\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientDoneProcessing(timeout).then(function (clientFinished) {\n return _this.getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return clientFinished && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n var crashed = false;\n var errored = false;\n var exceptions = event.exception && event.exception.values;\n if (exceptions) {\n errored = true;\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === 'ok';\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n if (shouldUpdateAndSend) {\n session.update(__assign(__assign({}, (crashed && { status: 'crashed' })), { errors: session.errors || Number(errored || crashed) }));\n this.captureSession(session);\n }\n };\n /** Deliver captured session to Sentry */\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\n };\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n BaseClient.prototype._isClientDoneProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions(), _b = _a.normalizeDepth, normalizeDepth = _b === void 0 ? 3 : _b, _c = _a.normalizeMaxBreadth, normalizeMaxBreadth = _c === void 0 ? 1000 : _c;\n var prepared = __assign(__assign({}, event), { event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), timestamp: event.timestamp || dateTimestampInSeconds() });\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n var finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n // We prepare the result here with a resolved Event.\n var result = resolvedSyncPromise(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n if (evt) {\n // TODO this is more of the hack trying to solve https://github.com/getsentry/sentry-javascript/issues/2809\n // it is only attached as extra data to the event if the event somehow skips being normalized\n evt.sdkProcessingMetadata = __assign(__assign({}, evt.sdkProcessingMetadata), { normalizeDepth: normalize(normalizeDepth) + \" (\" + typeof normalizeDepth + \")\" });\n }\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth, normalizeMaxBreadth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth, maxBreadth) {\n if (!event) {\n return null;\n }\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (__assign(__assign({}, b), (b.data && {\n data: normalize(b.data, depth, maxBreadth),\n }))); }),\n })), (event.user && {\n user: normalize(event.user, depth, maxBreadth),\n })), (event.contexts && {\n contexts: normalize(event.contexts, depth, maxBreadth),\n })), (event.extra && {\n extra: normalize(event.extra, depth, maxBreadth),\n }));\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n normalized.sdkProcessingMetadata = __assign(__assign({}, normalized.sdkProcessingMetadata), { baseClientNormalized: true });\n return normalized;\n };\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment, release = options.release, dist = options.dist, _a = options.maxValueLength, maxValueLength = _a === void 0 ? 250 : _a;\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = __spread((event.sdk.integrations || []), integrationsArray);\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\n };\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n IS_DEBUG_BUILD && logger.error(reason);\n return undefined;\n });\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.getOptions(), beforeSend = _a.beforeSend, sampleRate = _a.sampleRate;\n var transport = this.getTransport();\n function recordLostEvent(outcome, category) {\n if (transport.recordLostEvent) {\n transport.recordLostEvent(outcome, category);\n }\n }\n if (!this._isEnabled()) {\n return rejectedSyncPromise(new SentryError('SDK not enabled, will not capture event.'));\n }\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n recordLostEvent('sample_rate', 'event');\n return rejectedSyncPromise(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \" + sampleRate + \")\"));\n }\n return this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n if (prepared === null) {\n recordLostEvent('event_processor', event.type || 'event');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n return _ensureBeforeSendRv(beforeSendResult);\n })\n .then(function (processedEvent) {\n if (processedEvent === null) {\n recordLostEvent('before_send', event.type || 'event');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n var session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n _this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n _this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \" + reason);\n });\n };\n /**\n * Occupies the client with processing and event\n */\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n this._numProcessing += 1;\n void promise.then(function (value) {\n _this._numProcessing -= 1;\n return value;\n }, function (reason) {\n _this._numProcessing -= 1;\n return reason;\n });\n };\n return BaseClient;\n}());\nexport { BaseClient };\n/**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\nfunction _ensureBeforeSendRv(rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(function (event) {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n}\n//# sourceMappingURL=baseclient.js.map","import { __read, __spread } from \"tslib\";\nimport { isPrimitive } from './is';\n/**\n * Creates an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function createEnvelope(headers, items) {\n if (items === void 0) { items = []; }\n return [headers, items];\n}\n/**\n * Add an item to an envelope.\n * Make sure to always explicitly provide the generic to this function\n * so that the envelope types resolve correctly.\n */\nexport function addItemToEnvelope(envelope, newItem) {\n var _a = __read(envelope, 2), headers = _a[0], items = _a[1];\n return [headers, __spread(items, [newItem])];\n}\n/**\n * Get the type of the envelope. Grabs the type from the first envelope item.\n */\nexport function getEnvelopeType(envelope) {\n var _a = __read(envelope, 2), _b = __read(_a[1], 1), _c = __read(_b[0], 1), firstItemHeader = _c[0];\n return firstItemHeader.type;\n}\n/**\n * Serializes an envelope into a string.\n */\nexport function serializeEnvelope(envelope) {\n var _a = __read(envelope, 2), headers = _a[0], items = _a[1];\n var serializedHeaders = JSON.stringify(headers);\n // Have to cast items to any here since Envelope is a union type\n // Fixed in Typescript 4.2\n // TODO: Remove any[] cast when we upgrade to TS 4.2\n // https://github.com/microsoft/TypeScript/issues/36390\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return items.reduce(function (acc, item) {\n var _a = __read(item, 2), itemHeaders = _a[0], payload = _a[1];\n // We do not serialize payloads that are primitives\n var serializedPayload = isPrimitive(payload) ? String(payload) : JSON.stringify(payload);\n return acc + \"\\n\" + JSON.stringify(itemHeaders) + \"\\n\" + serializedPayload;\n }, serializedHeaders);\n}\n//# sourceMappingURL=envelope.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { createEnvelope, dsnToString, normalize, serializeEnvelope } from '@sentry/utils';\nimport { getEnvelopeEndpointWithUrlEncodedAuth, getStoreEndpointWithUrlEncodedAuth } from './api';\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api) {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n var _a = api.metadata.sdk, name = _a.name, version = _a.version;\n return { name: name, version: version };\n}\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = __spread((event.sdk.integrations || []), (sdkInfo.integrations || []));\n event.sdk.packages = __spread((event.sdk.packages || []), (sdkInfo.packages || []));\n return event;\n}\n/** Creates an envelope from a Session */\nexport function createSessionEnvelope(session, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var envelopeHeaders = __assign(__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (!!api.tunnel && { dsn: dsnToString(api.dsn) }));\n // I know this is hacky but we don't want to add `sessions` to request type since it's never rate limited\n var type = 'aggregates' in session ? 'sessions' : 'session';\n // TODO (v7) Have to cast type because envelope items do not accept a `SentryRequestType`\n var envelopeItem = [{ type: type }, session];\n var envelope = createEnvelope(envelopeHeaders, [envelopeItem]);\n return [envelope, type];\n}\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session, api) {\n var _a = __read(createSessionEnvelope(session, api), 2), envelope = _a[0], type = _a[1];\n return {\n body: serializeEnvelope(envelope),\n type: type,\n url: getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel),\n };\n}\n/**\n * Create an Envelope from an event. Note that this is duplicated from below,\n * but on purpose as this will be refactored in v7.\n */\nexport function createEventEnvelope(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var transactionSampling = (event.sdkProcessingMetadata || {}).transactionSampling;\n var _a = transactionSampling || {}, samplingMethod = _a.method, sampleRate = _a.rate;\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n var envelopeHeaders = __assign(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (!!api.tunnel && { dsn: dsnToString(api.dsn) }));\n var eventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n event,\n ];\n return createEnvelope(envelopeHeaders, [eventItem]);\n}\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var useEnvelope = eventType === 'transaction' || !!api.tunnel;\n var transactionSampling = (event.sdkProcessingMetadata || {}).transactionSampling;\n var _a = transactionSampling || {}, samplingMethod = _a.method, sampleRate = _a.rate;\n // TODO: Below is a temporary hack in order to debug a serialization error - see\n // https://github.com/getsentry/sentry-javascript/issues/2809,\n // https://github.com/getsentry/sentry-javascript/pull/4425, and\n // https://github.com/getsentry/sentry-javascript/pull/4574.\n //\n // TL; DR: even though we normalize all events (which should prevent this), something is causing `JSON.stringify` to\n // throw a circular reference error.\n //\n // When it's time to remove it:\n // 1. Delete everything between here and where the request object `req` is created, EXCEPT the line deleting\n // `sdkProcessingMetadata`\n // 2. Restore the original version of the request body, which is commented out\n // 3. Search for either of the PR URLs above and pull out the companion hacks in the browser playwright tests and the\n // baseClient tests in this package\n enhanceEventWithSdkInfo(event, api.metadata.sdk);\n event.tags = event.tags || {};\n event.extra = event.extra || {};\n // In theory, all events should be marked as having gone through normalization and so\n // we should never set this tag/extra data\n if (!(event.sdkProcessingMetadata && event.sdkProcessingMetadata.baseClientNormalized)) {\n event.tags.skippedNormalization = true;\n event.extra.normalizeDepth = event.sdkProcessingMetadata ? event.sdkProcessingMetadata.normalizeDepth : 'unset';\n }\n // prevent this data from being sent to sentry\n // TODO: This is NOT part of the hack - DO NOT DELETE\n delete event.sdkProcessingMetadata;\n var body;\n try {\n // 99.9% of events should get through just fine - no change in behavior for them\n body = JSON.stringify(event);\n }\n catch (err) {\n // Record data about the error without replacing original event data, then force renormalization\n event.tags.JSONStringifyError = true;\n event.extra.JSONStringifyError = err;\n try {\n body = JSON.stringify(normalize(event));\n }\n catch (newErr) {\n // At this point even renormalization hasn't worked, meaning something about the event data has gone very wrong.\n // Time to cut our losses and record only the new error. With luck, even in the problematic cases we're trying to\n // debug with this hack, we won't ever land here.\n var innerErr = newErr;\n body = JSON.stringify({\n message: 'JSON.stringify error after renormalization',\n // setting `extra: { innerErr }` here for some reason results in an empty object, so unpack manually\n extra: { message: innerErr.message, stack: innerErr.stack },\n });\n }\n }\n var req = {\n // this is the relevant line of code before the hack was added, to make it easy to undo said hack once we've solved\n // the mystery\n // body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n body: body,\n type: eventType,\n url: useEnvelope\n ? getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel)\n : getStoreEndpointWithUrlEncodedAuth(api.dsn),\n };\n // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n var envelopeHeaders = __assign(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (!!api.tunnel && { dsn: dsnToString(api.dsn) }));\n var eventItem = [\n {\n type: eventType,\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n },\n req.body,\n ];\n var envelope = createEnvelope(envelopeHeaders, [eventItem]);\n req.body = serializeEnvelope(envelope);\n }\n return req;\n}\n//# sourceMappingURL=request.js.map","import { resolvedSyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return resolvedSyncPromise({\n reason: 'NoopTransport: Event has been skipped because no Dsn is configured.',\n status: 'skipped',\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return resolvedSyncPromise(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map","import { __read } from \"tslib\";\nimport { logger, SentryError } from '@sentry/utils';\nimport { initAPIDetails } from './api';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { createEventEnvelope, createSessionEnvelope } from './request';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n IS_DEBUG_BUILD && logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n // TODO(v7): Remove the if-else\n if (this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport) {\n var api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n var env = createEventEnvelope(event, api);\n void this._newTransport.send(env).then(null, function (reason) {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n }\n else {\n void this._transport.sendEvent(event).then(null, function (reason) {\n IS_DEBUG_BUILD && logger.error('Error while sending event:', reason);\n });\n }\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n IS_DEBUG_BUILD && logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n // TODO(v7): Remove the if-else\n if (this._newTransport &&\n this._options.dsn &&\n this._options._experiments &&\n this._options._experiments.newTransport) {\n var api = initAPIDetails(this._options.dsn, this._options._metadata, this._options.tunnel);\n var _a = __read(createSessionEnvelope(session, api), 1), env = _a[0];\n void this._newTransport.send(env).then(null, function (reason) {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n }\n else {\n void this._transport.sendSession(session).then(null, function (reason) {\n IS_DEBUG_BUILD && logger.error('Error while sending session:', reason);\n });\n }\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map","import { SentryError } from './error';\nimport { rejectedSyncPromise, resolvedSyncPromise, SyncPromise } from './syncpromise';\n/**\n * Creates an new PromiseBuffer object with the specified limit\n * @param limit max number of promises that can be stored in the buffer\n */\nexport function makePromiseBuffer(limit) {\n var buffer = [];\n function isReady() {\n return limit === undefined || buffer.length < limit;\n }\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike\n * @returns Removed promise.\n */\n function remove(task) {\n return buffer.splice(buffer.indexOf(task), 1)[0];\n }\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike; In previous versions this used to be `task:\n * PromiseLike`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n function add(taskProducer) {\n if (!isReady()) {\n return rejectedSyncPromise(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (buffer.indexOf(task) === -1) {\n buffer.push(task);\n }\n void task\n .then(function () { return remove(task); })\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, function () {\n return remove(task).then(null, function () {\n // We have to add another catch here because `remove()` starts a new promise chain.\n });\n });\n return task;\n }\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n function drain(timeout) {\n return new SyncPromise(function (resolve, reject) {\n var counter = buffer.length;\n if (!counter) {\n return resolve(true);\n }\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n // if all promises resolve in time, cancel the timer and resolve to `true`\n buffer.forEach(function (item) {\n void resolvedSyncPromise(item).then(function () {\n // eslint-disable-next-line no-plusplus\n if (!--counter) {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n }\n }, reject);\n });\n });\n }\n return {\n $: buffer,\n add: add,\n drain: drain,\n };\n}\n//# sourceMappingURL=promisebuffer.js.map","import { __assign, __values } from \"tslib\";\nexport var DEFAULT_RETRY_AFTER = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param header string representation of 'Retry-After' header\n * @param now current unix timestamp\n *\n */\nexport function parseRetryAfterHeader(header, now) {\n if (now === void 0) { now = Date.now(); }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return DEFAULT_RETRY_AFTER;\n}\n/**\n * Gets the time that given category is disabled until for rate limiting\n */\nexport function disabledUntil(limits, category) {\n return limits[category] || limits.all || 0;\n}\n/**\n * Checks if a category is rate limited\n */\nexport function isRateLimited(limits, category, now) {\n if (now === void 0) { now = Date.now(); }\n return disabledUntil(limits, category) > now;\n}\n/**\n * Update ratelimits from incoming headers.\n * Returns true if headers contains a non-empty rate limiting header.\n */\nexport function updateRateLimits(limits, headers, now) {\n var e_1, _a, e_2, _b;\n if (now === void 0) { now = Date.now(); }\n var updatedRateLimits = __assign({}, limits);\n // \"The name is case-insensitive.\"\n // https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n var rateLimitHeader = headers['x-sentry-rate-limits'];\n var retryAfterHeader = headers['retry-after'];\n if (rateLimitHeader) {\n try {\n /**\n * rate limit headers are of the form\n *
,
,..\n * where each
is of the form\n * : : : \n * where\n * is a delay in seconds\n * is the event type(s) (error, transaction, etc) being rate limited and is of the form\n * ;;...\n * is what's being limited (org, project, or key) - ignored by SDK\n * is an arbitrary string like \"org_quota\" - ignored by SDK\n */\n for (var _c = __values(rateLimitHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n if (!parameters[1]) {\n updatedRateLimits.all = now + delay;\n }\n else {\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n updatedRateLimits[category] = now + delay;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else if (retryAfterHeader) {\n updatedRateLimits.all = now + parseRetryAfterHeader(retryAfterHeader, now);\n }\n return updatedRateLimits;\n}\n//# sourceMappingURL=ratelimit.js.map","/**\n * Converts an HTTP status code to sentry status {@link EventStatus}.\n *\n * @param code number HTTP status code\n * @returns EventStatus\n */\nexport function eventStatusFromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return 'success';\n }\n if (code === 429) {\n return 'rate_limit';\n }\n if (code >= 400 && code < 500) {\n return 'invalid';\n }\n if (code >= 500) {\n return 'failed';\n }\n return 'unknown';\n}\n//# sourceMappingURL=status.js.map","import { disabledUntil, eventStatusFromHttpCode, getEnvelopeType, isRateLimited, makePromiseBuffer, rejectedSyncPromise, resolvedSyncPromise, serializeEnvelope, updateRateLimits, } from '@sentry/utils';\nexport var ERROR_TRANSPORT_CATEGORY = 'error';\nexport var TRANSACTION_TRANSPORT_CATEGORY = 'transaction';\nexport var ATTACHMENT_TRANSPORT_CATEGORY = 'attachment';\nexport var SESSION_TRANSPORT_CATEGORY = 'session';\nexport var DEFAULT_TRANSPORT_BUFFER_SIZE = 30;\n/**\n * Creates a `NewTransport`\n *\n * @param options\n * @param makeRequest\n */\nexport function createTransport(options, makeRequest, buffer) {\n if (buffer === void 0) { buffer = makePromiseBuffer(options.bufferSize || DEFAULT_TRANSPORT_BUFFER_SIZE); }\n var rateLimits = {};\n var flush = function (timeout) { return buffer.drain(timeout); };\n function send(envelope) {\n var envCategory = getEnvelopeType(envelope);\n var category = envCategory === 'event' ? 'error' : envCategory;\n var request = {\n category: category,\n body: serializeEnvelope(envelope),\n };\n // Don't add to buffer if transport is already rate-limited\n if (isRateLimited(rateLimits, category)) {\n return rejectedSyncPromise({\n status: 'rate_limit',\n reason: getRateLimitReason(rateLimits, category),\n });\n }\n var requestTask = function () {\n return makeRequest(request).then(function (_a) {\n var body = _a.body, headers = _a.headers, reason = _a.reason, statusCode = _a.statusCode;\n var status = eventStatusFromHttpCode(statusCode);\n if (headers) {\n rateLimits = updateRateLimits(rateLimits, headers);\n }\n if (status === 'success') {\n return resolvedSyncPromise({ status: status, reason: reason });\n }\n return rejectedSyncPromise({\n status: status,\n reason: reason ||\n body ||\n (status === 'rate_limit' ? getRateLimitReason(rateLimits, category) : 'Unknown transport error'),\n });\n });\n };\n return buffer.add(requestTask);\n }\n return {\n send: send,\n flush: flush,\n };\n}\nfunction getRateLimitReason(rateLimits, category) {\n return \"Too many \" + category + \" requests, backing off until: \" + new Date(disabledUntil(rateLimits, category)).toISOString();\n}\n//# sourceMappingURL=base.js.map","import { forget, getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags';\nvar global = getGlobalObject();\nvar cachedFetchImpl;\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation() {\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n /* eslint-disable @typescript-eslint/unbound-method */\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n var document = global.document;\n var fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (document && typeof document.createElement === 'function') {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n var contentWindow = sandbox.contentWindow;\n if (contentWindow && contentWindow.fetch) {\n fetchImpl = contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nexport function sendReport(url, body) {\n var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n return sendBeacon(url, body);\n }\n if (supportsFetch()) {\n var fetch_1 = getNativeFetchImplementation();\n return forget(fetch_1(url, {\n body: body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }));\n }\n}\n//# sourceMappingURL=utils.js.map","/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forget(promise) {\n void promise.then(null, function (e) {\n // TODO: Use a better logging mechanism\n // eslint-disable-next-line no-console\n console.error(e);\n });\n}\n//# sourceMappingURL=async.js.map","import { __read } from \"tslib\";\nimport { eventToSentryRequest, getEnvelopeEndpointWithUrlEncodedAuth, getStoreEndpointWithUrlEncodedAuth, initAPIDetails, sessionToSentryRequest, } from '@sentry/core';\nimport { createClientReportEnvelope, disabledUntil, dsnToString, eventStatusFromHttpCode, getGlobalObject, isRateLimited, logger, makePromiseBuffer, serializeEnvelope, updateRateLimits, } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags';\nimport { sendReport } from './utils';\nfunction requestTypeToCategory(ty) {\n var tyStr = ty;\n return tyStr === 'event' ? 'error' : tyStr;\n}\nvar global = getGlobalObject();\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n var _this = this;\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = makePromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n this._rateLimits = {};\n this._outcomes = {};\n this._api = initAPIDetails(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = getStoreEndpointWithUrlEncodedAuth(this._api.dsn);\n if (this.options.sendClientReports && global.document) {\n global.document.addEventListener('visibilitychange', function () {\n if (global.document.visibilityState === 'hidden') {\n _this._flushOutcomes();\n }\n });\n }\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.recordLostEvent = function (reason, category) {\n var _a;\n if (!this.options.sendClientReports) {\n return;\n }\n // We want to track each category (event, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial>>>`\n var key = requestTypeToCategory(category) + \":\" + reason;\n IS_DEBUG_BUILD && logger.log(\"Adding outcome: \" + key);\n this._outcomes[key] = (_a = this._outcomes[key], (_a !== null && _a !== void 0 ? _a : 0)) + 1;\n };\n /**\n * Send outcomes as an envelope\n */\n BaseTransport.prototype._flushOutcomes = function () {\n if (!this.options.sendClientReports) {\n return;\n }\n var outcomes = this._outcomes;\n this._outcomes = {};\n // Nothing to send\n if (!Object.keys(outcomes).length) {\n IS_DEBUG_BUILD && logger.log('No outcomes to flush');\n return;\n }\n IS_DEBUG_BUILD && logger.log(\"Flushing outcomes:\\n\" + JSON.stringify(outcomes, null, 2));\n var url = getEnvelopeEndpointWithUrlEncodedAuth(this._api.dsn, this._api.tunnel);\n var discardedEvents = Object.keys(outcomes).map(function (key) {\n var _a = __read(key.split(':'), 2), category = _a[0], reason = _a[1];\n return {\n reason: reason,\n category: category,\n quantity: outcomes[key],\n };\n // TODO: Improve types on discarded_events to get rid of cast\n });\n var envelope = createClientReportEnvelope(discardedEvents, this._api.tunnel && dsnToString(this._api.dsn));\n try {\n sendReport(url, serializeEnvelope(envelope));\n }\n catch (e) {\n IS_DEBUG_BUILD && logger.error(e);\n }\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType, response = _a.response, headers = _a.headers, resolve = _a.resolve, reject = _a.reject;\n var status = eventStatusFromHttpCode(response.status);\n this._rateLimits = updateRateLimits(this._rateLimits, headers);\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(requestType)) {\n IS_DEBUG_BUILD &&\n // eslint-disable-next-line deprecation/deprecation\n logger.warn(\"Too many \" + requestType + \" requests, backing off until: \" + this._disabledUntil(requestType));\n }\n if (status === 'success') {\n resolve({ status: status });\n return;\n }\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n *\n * @deprecated Please use `disabledUntil` from @sentry/utils\n */\n BaseTransport.prototype._disabledUntil = function (requestType) {\n var category = requestTypeToCategory(requestType);\n return new Date(disabledUntil(this._rateLimits, category));\n };\n /**\n * Checks if a category is rate limited\n *\n * @deprecated Please use `isRateLimited` from @sentry/utils\n */\n BaseTransport.prototype._isRateLimited = function (requestType) {\n var category = requestTypeToCategory(requestType);\n return isRateLimited(this._rateLimits, category);\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","import { createEnvelope } from './envelope';\nimport { dateTimestampInSeconds } from './time';\n/**\n * Creates client report envelope\n * @param discarded_events An array of discard events\n * @param dsn A DSN that can be set on the header. Optional.\n */\nexport function createClientReportEnvelope(discarded_events, dsn, timestamp) {\n var clientReportItem = [\n { type: 'client_report' },\n {\n timestamp: timestamp || dateTimestampInSeconds(),\n discarded_events: discarded_events,\n },\n ];\n return createEnvelope(dsn ? { dsn: dsn } : {}, [clientReportItem]);\n}\n//# sourceMappingURL=clientreport.js.map","import { __extends } from \"tslib\";\nimport { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\nimport { getNativeFetchImplementation } from './utils';\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport(options, fetchImpl) {\n if (fetchImpl === void 0) { fetchImpl = getNativeFetchImplementation(); }\n var _this = _super.call(this, options) || this;\n _this._fetch = fetchImpl;\n return _this;\n }\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n return this._buffer\n .add(function () {\n return new SyncPromise(function (resolve, reject) {\n void _this._fetch(sentryRequest.url, options)\n .then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject,\n });\n })\n .catch(reject);\n });\n })\n .then(undefined, function (reason) {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n _this.recordLostEvent('queue_overflow', sentryRequest.type);\n }\n else {\n _this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","import { __extends } from \"tslib\";\nimport { SentryError, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n // eslint-disable-next-line deprecation/deprecation\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent('ratelimit_backoff', sentryRequest.type);\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n // eslint-disable-next-line deprecation/deprecation\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer\n .add(function () {\n return new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n _this._handleResponse({ requestType: sentryRequest.type, response: request, headers: headers, resolve: resolve, reject: reject });\n }\n };\n request.open('POST', sentryRequest.url);\n for (var header in _this.options.headers) {\n if (Object.prototype.hasOwnProperty.call(_this.options.headers, header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n });\n })\n .then(undefined, function (reason) {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n _this.recordLostEvent('queue_overflow', sentryRequest.type);\n }\n else {\n _this.recordLostEvent('network_error', sentryRequest.type);\n }\n throw reason;\n });\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend, getEnvelopeEndpointWithUrlEncodedAuth, initAPIDetails } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, makeNewFetchTransport, makeNewXHRTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n __extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(exception, hint, this._options.attachStacktrace);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n return eventFromMessage(message, level, hint, this._options.attachStacktrace);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, tunnel: this._options.tunnel, sendClientReports: this._options.sendClientReports, _metadata: this._options._metadata });\n var api = initAPIDetails(transportOptions.dsn, transportOptions._metadata, transportOptions.tunnel);\n var url = getEnvelopeEndpointWithUrlEncodedAuth(api.dsn, api.tunnel);\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n var requestOptions = __assign({}, transportOptions.fetchParameters);\n this._newTransport = makeNewFetchTransport({ requestOptions: requestOptions, url: url });\n return new FetchTransport(transportOptions);\n }\n this._newTransport = makeNewXHRTransport({\n url: url,\n headers: transportOptions.headers,\n });\n return new XHRTransport(transportOptions);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map","import { __assign } from \"tslib\";\nimport { createTransport, } from '@sentry/core';\nimport { getNativeFetchImplementation } from './utils';\n/**\n * Creates a Transport that uses the Fetch API to send events to Sentry.\n */\nexport function makeNewFetchTransport(options, nativeFetch) {\n if (nativeFetch === void 0) { nativeFetch = getNativeFetchImplementation(); }\n function makeRequest(request) {\n var requestOptions = __assign({ body: request.body, method: 'POST', referrerPolicy: 'origin' }, options.requestOptions);\n return nativeFetch(options.url, requestOptions).then(function (response) {\n return response.text().then(function (body) { return ({\n body: body,\n headers: {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n },\n reason: response.statusText,\n statusCode: response.status,\n }); });\n });\n }\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n//# sourceMappingURL=new-fetch.js.map","import { createTransport, } from '@sentry/core';\nimport { SyncPromise } from '@sentry/utils';\n/**\n * The DONE ready state for XmlHttpRequest\n *\n * Defining it here as a constant b/c XMLHttpRequest.DONE is not always defined\n * (e.g. during testing, it is `undefined`)\n *\n * @see {@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState}\n */\nvar XHR_READYSTATE_DONE = 4;\n/**\n * Creates a Transport that uses the XMLHttpRequest API to send events to Sentry.\n */\nexport function makeNewXHRTransport(options) {\n function makeRequest(request) {\n return new SyncPromise(function (resolve, _reject) {\n var xhr = new XMLHttpRequest();\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XHR_READYSTATE_DONE) {\n var response = {\n body: xhr.response,\n headers: {\n 'x-sentry-rate-limits': xhr.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': xhr.getResponseHeader('Retry-After'),\n },\n reason: xhr.statusText,\n statusCode: xhr.status,\n };\n resolve(response);\n }\n };\n xhr.open('POST', options.url);\n for (var header in options.headers) {\n if (Object.prototype.hasOwnProperty.call(options.headers, header)) {\n xhr.setRequestHeader(header, options.headers[header]);\n }\n }\n xhr.send(request.body);\n });\n }\n return createTransport({ bufferSize: options.bufferSize }, makeRequest);\n}\n//# sourceMappingURL=new-xhr.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n _this = _super.call(this, BrowserBackend, options) || this;\n return _this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n IS_DEBUG_BUILD && logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n _super.prototype._sendEvent.call(this, event);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map","import { __assign } from \"tslib\";\nimport { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, resolvedSyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n initAndBind(BrowserClient, options);\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n options.user = __assign(__assign({}, scope.getUser()), options.user);\n }\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n var client = hub.getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events. No client defined.');\n return resolvedSyncPromise(false);\n}\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n IS_DEBUG_BUILD && logger.warn('Cannot flush events and disable SDK. No client defined.');\n return resolvedSyncPromise(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\nfunction startSessionOnHub(hub) {\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n if (typeof document === 'undefined') {\n IS_DEBUG_BUILD && logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n var hub = getCurrentHub();\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (!hub.captureSession) {\n return;\n }\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n startSessionOnHub(hub);\n // We want to create a session for every navigation as well\n addInstrumentationHandler('history', function (_a) {\n var from = _a.from, to = _a.to;\n // Don't create an additional session for the initial route or if the location did not change\n if (!(from === undefined || from === to)) {\n startSessionOnHub(getCurrentHub());\n }\n });\n}\n//# sourceMappingURL=sdk.js.map","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n if (options.debug === true) {\n if (IS_DEBUG_BUILD) {\n logger.enable();\n }\n else {\n // use `console.warn` rather than `logger.warn` since by non-debug bundles have all `logger.x` statements stripped\n // eslint-disable-next-line no-console\n console.warn('[Sentry] Cannot initialize SDK with `debug` option using a non-debug bundle.');\n }\n }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n scope.update(options.initialScope);\n }\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n//# sourceMappingURL=sdk.js.map","import { dsnToString, makeDsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n *\n * @deprecated Please use APIDetails\n **/\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn, metadata, tunnel) {\n if (metadata === void 0) { metadata = {}; }\n this.dsn = dsn;\n this._dsnObject = makeDsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Does this transport force envelopes? */\n API.prototype.forceEnvelope = function () {\n return !!this._tunnel;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n API.prototype.getBaseApiEndpoint = function () {\n return getBaseApiEndpoint(this._dsnObject);\n };\n /** Returns the store endpoint URL. */\n API.prototype.getStoreEndpoint = function () {\n return getStoreEndpoint(this._dsnObject);\n };\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return getStoreEndpointWithUrlEncodedAuth(this._dsnObject);\n };\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n return getEnvelopeEndpointWithUrlEncodedAuth(this._dsnObject, this._tunnel);\n };\n return API;\n}());\nexport { API };\n/** Initializes API Details */\nexport function initAPIDetails(dsn, metadata, tunnel) {\n return {\n initDsn: dsn,\n metadata: metadata || {},\n dsn: makeDsn(dsn),\n tunnel: tunnel,\n };\n}\n/** Returns the prefix to construct Sentry ingestion API endpoints. */\nfunction getBaseApiEndpoint(dsn) {\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n}\n/** Returns the ingest API endpoint for target. */\nfunction _getIngestEndpoint(dsn, target) {\n return \"\" + getBaseApiEndpoint(dsn) + dsn.projectId + \"/\" + target + \"/\";\n}\n/** Returns a URL-encoded string with auth config suitable for a query string. */\nfunction _encodedAuth(dsn) {\n return urlEncode({\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n });\n}\n/** Returns the store endpoint URL. */\nfunction getStoreEndpoint(dsn) {\n return _getIngestEndpoint(dsn, 'store');\n}\n/**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getStoreEndpointWithUrlEncodedAuth(dsn) {\n return getStoreEndpoint(dsn) + \"?\" + _encodedAuth(dsn);\n}\n/** Returns the envelope endpoint URL. */\nfunction _getEnvelopeEndpoint(dsn) {\n return _getIngestEndpoint(dsn, 'envelope');\n}\n/**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\nexport function getEnvelopeEndpointWithUrlEncodedAuth(dsn, tunnel) {\n return tunnel ? tunnel : _getEnvelopeEndpoint(dsn) + \"?\" + _encodedAuth(dsn);\n}\n/**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\nexport function getRequestHeaders(dsn, clientName, clientVersion) {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.publicKey);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n}\n/** Returns the url to the report dialog endpoint. */\nexport function getReportDialogEndpoint(dsnLike, dialogOptions) {\n var dsn = makeDsn(dsnLike);\n var endpoint = getBaseApiEndpoint(dsn) + \"embed/error-page/\";\n var encodedOptions = \"dsn=\" + dsnToString(dsn);\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions += \"&name=\" + encodeURIComponent(dialogOptions.user.name);\n }\n if (dialogOptions.user.email) {\n encodedOptions += \"&email=\" + encodeURIComponent(dialogOptions.user.email);\n }\n }\n else {\n encodedOptions += \"&\" + encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]);\n }\n }\n return endpoint + \"?\" + encodedOptions;\n}\n//# sourceMappingURL=api.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","import { getOriginalFunction } from '@sentry/utils';\nvar originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = getOriginalFunction(this) || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map","import { __read, __spread } from \"tslib\";\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from '../flags';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function (addGlobalEventProcessor, getCurrentHub) {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (hub) {\n var self_1 = hub.getIntegration(InboundFilters);\n if (self_1) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n var options = _mergeOptions(self_1._options, clientOptions);\n return _shouldDropEvent(event, options) ? null : event;\n }\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n/** JSDoc */\nexport function _mergeOptions(internalOptions, clientOptions) {\n if (internalOptions === void 0) { internalOptions = {}; }\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n allowUrls: __spread((internalOptions.whitelistUrls || []), (internalOptions.allowUrls || []), (clientOptions.whitelistUrls || []), (clientOptions.allowUrls || [])),\n denyUrls: __spread((internalOptions.blacklistUrls || []), (internalOptions.denyUrls || []), (clientOptions.blacklistUrls || []), (clientOptions.denyUrls || [])),\n ignoreErrors: __spread((internalOptions.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: internalOptions.ignoreInternal !== undefined ? internalOptions.ignoreInternal : true,\n };\n}\n/** JSDoc */\nexport function _shouldDropEvent(event, options) {\n if (options.ignoreInternal && _isSentryError(event)) {\n IS_DEBUG_BUILD &&\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (_isIgnoredError(event, options.ignoreErrors)) {\n IS_DEBUG_BUILD &&\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (_isDeniedUrl(event, options.denyUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + _getEventFilterUrl(event));\n return true;\n }\n if (!_isAllowedUrl(event, options.allowUrls)) {\n IS_DEBUG_BUILD &&\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + _getEventFilterUrl(event));\n return true;\n }\n return false;\n}\nfunction _isIgnoredError(event, ignoreErrors) {\n if (!ignoreErrors || !ignoreErrors.length) {\n return false;\n }\n return _getPossibleEventMessages(event).some(function (message) {\n return ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n}\nfunction _isDeniedUrl(event, denyUrls) {\n // TODO: Use Glob instead?\n if (!denyUrls || !denyUrls.length) {\n return false;\n }\n var url = _getEventFilterUrl(event);\n return !url ? false : denyUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n}\nfunction _isAllowedUrl(event, allowUrls) {\n // TODO: Use Glob instead?\n if (!allowUrls || !allowUrls.length) {\n return true;\n }\n var url = _getEventFilterUrl(event);\n return !url ? true : allowUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n}\nfunction _getPossibleEventMessages(event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n IS_DEBUG_BUILD && logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n}\nfunction _isSentryError(event) {\n try {\n // @ts-ignore can't be a sentry error if undefined\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return event.exception.values[0].type === 'SentryError';\n }\n catch (e) {\n // ignore\n }\n return false;\n}\nfunction _getLastValidUrl(frames) {\n if (frames === void 0) { frames = []; }\n for (var i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n if (frame && frame.filename !== '' && frame.filename !== '[native code]') {\n return frame.filename || null;\n }\n }\n return null;\n}\nfunction _getEventFilterUrl(event) {\n try {\n if (event.stacktrace) {\n return _getLastValidUrl(event.stacktrace.frames);\n }\n var frames_1;\n try {\n // @ts-ignore we only care about frames if the whole thing here is defined\n frames_1 = event.exception.values[0].stacktrace.frames;\n }\n catch (e) {\n // ignore\n }\n return frames_1 ? _getLastValidUrl(frames_1) : null;\n }\n catch (oO) {\n IS_DEBUG_BUILD && logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n}\n//# sourceMappingURL=inboundfilters.js.map","export var SDK_VERSION = '6.19.6';\n//# sourceMappingURL=version.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","import { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.duration = 0;\n this.status = 'ok';\n this.init = true;\n this.ignoreDuration = false;\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n }\n else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n var duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === 'ok') {\n this.update({ status: 'exited' });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: {\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n },\n });\n };\n return Session;\n}());\nexport { Session };\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, getGlobalSingleton, isNodeEnv, logger, uuid4, } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = hint && hint.event_id ? hint.event_id : uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = hint && hint.event_id ? hint.event_id : uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n IS_DEBUG_BUILD && logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var layer = this.getStackTop();\n var scope = layer && layer.scope;\n var session = scope && scope.getSession();\n if (session) {\n session.close();\n }\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n if (scope) {\n scope.setSession();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n var userAgent = (global.navigator || {}).userAgent;\n var session = new Session(__assign(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), (userAgent && { userAgent: userAgent })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === 'ok') {\n currentSession.update({ status: 'exited' });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n IS_DEBUG_BUILD && logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n IS_DEBUG_BUILD && logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n try {\n var sentry = getMainCarrier().__SENTRY__;\n var activeDomain = sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n return getGlobalSingleton('hub', function () { return new Hub(); }, carrier);\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n var __SENTRY__ = (carrier.__SENTRY__ = carrier.__SENTRY__ || {});\n __SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalSingleton, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n /**\n * A place to stash data which is needed at some point in the SDK's event processing pipeline but which shouldn't get\n * sent to Sentry\n */\n this._sdkProcessingMetadata = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n // Often, this span (if it exists at all) will be a transaction, but it's not guaranteed to be. Regardless, it will\n // have a pointer to the currently-active transaction.\n var span = this.getSpan();\n return span && span.transaction;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs = __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxCrumbs);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = this._span.transaction && this._span.transaction.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n event.sdkProcessingMetadata = this._sdkProcessingMetadata;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * Add data which will be accessible during event processing but won't get sent to Sentry\n */\n Scope.prototype.setSDKProcessingMetadata = function (newData) {\n this._sdkProcessingMetadata = __assign(__assign({}, this._sdkProcessingMetadata), newData);\n return this;\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n void result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n return getGlobalSingleton('globalEventProcessors', function () { return []; });\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException = new Error('Sentry syntheticException');\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param Severity Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException = new Error(message);\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n//# sourceMappingURL=index.js.map","// Store finish reasons in tuple to save on bundle size\n// Readonly type should enforce that this is not mutated.\nexport var FINISH_REASON_TAG = 'finishReason';\nexport var IDLE_TRANSACTION_FINISH_REASONS = ['heartbeatFailed', 'idleTimeout', 'documentHidden'];\n//# sourceMappingURL=constants.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getMainCarrier } from '@sentry/hub';\nimport { dynamicRequire, isNaN, isNodeEnv, loadModule, logger } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n var scope = this.getScope();\n if (scope) {\n var span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param transaction: The transaction needing a sampling decision\n * @param options: The current client's options, so we can access `tracesSampleRate` and/or `tracesSampler`\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction, options, samplingContext) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: 'explicitly_set' },\n });\n return transaction;\n }\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n var sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_sampler',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: 'inheritance' },\n });\n }\n else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: 'client_rate',\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n IS_DEBUG_BUILD && logger.warn('[Tracing] Discarding transaction because of invalid sample rate.');\n transaction.sampled = false;\n return transaction;\n }\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n IS_DEBUG_BUILD &&\n logger.log(\"[Tracing] Discarding transaction because \" + (typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'));\n transaction.sampled = false;\n return transaction;\n }\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < sampleRate;\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n IS_DEBUG_BUILD &&\n logger.log(\"[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = \" + Number(sampleRate) + \")\");\n return transaction;\n }\n IS_DEBUG_BUILD && logger.log(\"[Tracing] starting \" + transaction.op + \" transaction - \" + transaction.name);\n return transaction;\n}\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n IS_DEBUG_BUILD &&\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got \" + JSON.stringify(rate) + \" of type \" + JSON.stringify(typeof rate) + \".\");\n return false;\n }\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n IS_DEBUG_BUILD &&\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got \" + rate + \".\");\n return false;\n }\n return true;\n}\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(transactionContext, customSamplingContext) {\n var client = this.getClient();\n var options = (client && client.getOptions()) || {};\n var transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && options._experiments.maxSpans);\n }\n return transaction;\n}\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(hub, transactionContext, idleTimeout, onScope, customSamplingContext) {\n var client = hub.getClient();\n var options = (client && client.getOptions()) || {};\n var transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder(options._experiments && options._experiments.maxSpans);\n }\n return transaction;\n}\n/**\n * @private\n */\nexport function _addTracingExtensions() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n var packageToIntegrationMapping = {\n mongodb: function () {\n var integration = dynamicRequire(module, './integrations/node/mongo');\n return new integration.Mongo();\n },\n mongoose: function () {\n var integration = dynamicRequire(module, './integrations/node/mongo');\n return new integration.Mongo({ mongoose: true });\n },\n mysql: function () {\n var integration = dynamicRequire(module, './integrations/node/mysql');\n return new integration.Mysql();\n },\n pg: function () {\n var integration = dynamicRequire(module, './integrations/node/postgres');\n return new integration.Postgres();\n },\n };\n var mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(function (moduleName) { return !!loadModule(moduleName); })\n .map(function (pkg) {\n try {\n return packageToIntegrationMapping[pkg]();\n }\n catch (e) {\n return undefined;\n }\n })\n .filter(function (p) { return p; });\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = __spread((carrier.__SENTRY__.integrations || []), mappedPackages);\n }\n}\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods() {\n _addTracingExtensions();\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n//# sourceMappingURL=hubextensions.js.map","import { __assign } from \"tslib\";\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nvar SpanRecorder = /** @class */ (function () {\n function SpanRecorder(maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n this.spans = [];\n this._maxlen = maxlen;\n }\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n SpanRecorder.prototype.add = function (span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n }\n else {\n this.spans.push(span);\n }\n };\n return SpanRecorder;\n}());\nexport { SpanRecorder };\n/**\n * Span contains all data about a span\n */\nvar Span = /** @class */ (function () {\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Span(spanContext) {\n /**\n * @inheritDoc\n */\n this.traceId = uuid4();\n /**\n * @inheritDoc\n */\n this.spanId = uuid4().substring(16);\n /**\n * Timestamp in seconds when the span was created.\n */\n this.startTimestamp = timestampWithMs();\n /**\n * @inheritDoc\n */\n this.tags = {};\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.data = {};\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n /**\n * @inheritDoc\n * @deprecated\n */\n Span.prototype.child = function (spanContext) {\n return this.startChild(spanContext);\n };\n /**\n * @inheritDoc\n */\n Span.prototype.startChild = function (spanContext) {\n var childSpan = new Span(__assign(__assign({}, spanContext), { parentSpanId: this.spanId, sampled: this.sampled, traceId: this.traceId }));\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n childSpan.transaction = this.transaction;\n return childSpan;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setTag = function (key, value) {\n var _a;\n this.tags = __assign(__assign({}, this.tags), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Span.prototype.setData = function (key, value) {\n var _a;\n this.data = __assign(__assign({}, this.data), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setStatus = function (value) {\n this.status = value;\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setHttpStatus = function (httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = spanStatusfromHttpCode(httpStatus);\n if (spanStatus !== 'unknown_error') {\n this.setStatus(spanStatus);\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.isSuccess = function () {\n return this.status === 'ok';\n };\n /**\n * @inheritDoc\n */\n Span.prototype.finish = function (endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toTraceparent = function () {\n var sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return this.traceId + \"-\" + this.spanId + sampledString;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toContext = function () {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.updateWithContext = function (spanContext) {\n var _a, _b, _c, _d, _e;\n this.data = (_a = spanContext.data, (_a !== null && _a !== void 0 ? _a : {}));\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = (_b = spanContext.spanId, (_b !== null && _b !== void 0 ? _b : this.spanId));\n this.startTimestamp = (_c = spanContext.startTimestamp, (_c !== null && _c !== void 0 ? _c : this.startTimestamp));\n this.status = spanContext.status;\n this.tags = (_d = spanContext.tags, (_d !== null && _d !== void 0 ? _d : {}));\n this.traceId = (_e = spanContext.traceId, (_e !== null && _e !== void 0 ? _e : this.traceId));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.getTraceContext = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toJSON = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n };\n return Span;\n}());\nexport { Span };\n/**\n * Converts a HTTP status code into a {@link SpanStatusType}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or unknown_error.\n */\nexport function spanStatusfromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return 'ok';\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return 'unauthenticated';\n case 403:\n return 'permission_denied';\n case 404:\n return 'not_found';\n case 409:\n return 'already_exists';\n case 413:\n return 'failed_precondition';\n case 429:\n return 'resource_exhausted';\n default:\n return 'invalid_argument';\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return 'unimplemented';\n case 503:\n return 'unavailable';\n case 504:\n return 'deadline_exceeded';\n default:\n return 'internal_error';\n }\n }\n return 'unknown_error';\n}\n//# sourceMappingURL=span.js.map","import { __assign, __extends } from \"tslib\";\nimport { getCurrentHub, Hub } from '@sentry/hub';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { Span as SpanClass, SpanRecorder } from './span';\n/** JSDoc */\nvar Transaction = /** @class */ (function (_super) {\n __extends(Transaction, _super);\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Transaction(transactionContext, hub) {\n var _this = _super.call(this, transactionContext) || this;\n _this._measurements = {};\n /**\n * The reference to the current hub.\n */\n _this._hub = getCurrentHub();\n if (isInstanceOf(hub, Hub)) {\n _this._hub = hub;\n }\n _this.name = transactionContext.name || '';\n _this.metadata = transactionContext.metadata || {};\n _this._trimEnd = transactionContext.trimEnd;\n // this is because transactions are also spans, and spans have a transaction pointer\n _this.transaction = _this;\n return _this;\n }\n /**\n * JSDoc\n */\n Transaction.prototype.setName = function (name) {\n this.name = name;\n };\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n Transaction.prototype.initSpanRecorder = function (maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n };\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n Transaction.prototype.setMeasurements = function (measurements) {\n this._measurements = __assign({}, measurements);\n };\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n Transaction.prototype.setMetadata = function (newMetadata) {\n this.metadata = __assign(__assign({}, this.metadata), newMetadata);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.finish = function (endTimestamp) {\n var _this = this;\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n if (!this.name) {\n IS_DEBUG_BUILD && logger.warn('Transaction has no name, falling back to ``.');\n this.name = '';\n }\n // just sets the end timestamp\n _super.prototype.finish.call(this, endTimestamp);\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n IS_DEBUG_BUILD && logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n var client = this._hub.getClient();\n var transport = client && client.getTransport && client.getTransport();\n if (transport && transport.recordLostEvent) {\n transport.recordLostEvent('sample_rate', 'transaction');\n }\n return undefined;\n }\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(function (s) { return s !== _this && s.endTimestamp; }) : [];\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce(function (prev, current) {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n var transaction = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n sdkProcessingMetadata: this.metadata,\n };\n var hasMeasurements = Object.keys(this._measurements).length > 0;\n if (hasMeasurements) {\n IS_DEBUG_BUILD &&\n logger.log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));\n transaction.measurements = this._measurements;\n }\n IS_DEBUG_BUILD && logger.log(\"[Tracing] Finishing \" + this.op + \" transaction: \" + this.name + \".\");\n return this._hub.captureEvent(transaction);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.toContext = function () {\n var spanContext = _super.prototype.toContext.call(this);\n return dropUndefinedKeys(__assign(__assign({}, spanContext), { name: this.name, trimEnd: this._trimEnd }));\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.updateWithContext = function (transactionContext) {\n var _a;\n _super.prototype.updateWithContext.call(this, transactionContext);\n this.name = (_a = transactionContext.name, (_a !== null && _a !== void 0 ? _a : ''));\n this._trimEnd = transactionContext.trimEnd;\n return this;\n };\n return Transaction;\n}(SpanClass));\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map","import { __extends, __values } from \"tslib\";\nimport { logger, timestampWithMs } from '@sentry/utils';\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from './constants';\nimport { IS_DEBUG_BUILD } from './flags';\nimport { SpanRecorder } from './span';\nimport { Transaction } from './transaction';\nexport var DEFAULT_IDLE_TIMEOUT = 1000;\nexport var HEARTBEAT_INTERVAL = 5000;\n/**\n * @inheritDoc\n */\nvar IdleTransactionSpanRecorder = /** @class */ (function (_super) {\n __extends(IdleTransactionSpanRecorder, _super);\n function IdleTransactionSpanRecorder(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n if (transactionSpanId === void 0) { transactionSpanId = ''; }\n var _this = _super.call(this, maxlen) || this;\n _this._pushActivity = _pushActivity;\n _this._popActivity = _popActivity;\n _this.transactionSpanId = transactionSpanId;\n return _this;\n }\n /**\n * @inheritDoc\n */\n IdleTransactionSpanRecorder.prototype.add = function (span) {\n var _this = this;\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = function (endTimestamp) {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n _this._popActivity(span.spanId);\n };\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n _super.prototype.add.call(this, span);\n };\n return IdleTransactionSpanRecorder;\n}(SpanRecorder));\nexport { IdleTransactionSpanRecorder };\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nvar IdleTransaction = /** @class */ (function (_super) {\n __extends(IdleTransaction, _super);\n function IdleTransaction(transactionContext, _idleHub, \n /**\n * The time to wait in ms until the idle transaction will be finished.\n * @default 1000\n */\n _idleTimeout, \n // Whether or not the transaction should put itself on the scope when it starts and pop itself off when it ends\n _onScope) {\n if (_idleTimeout === void 0) { _idleTimeout = DEFAULT_IDLE_TIMEOUT; }\n if (_onScope === void 0) { _onScope = false; }\n var _this = _super.call(this, transactionContext, _idleHub) || this;\n _this._idleHub = _idleHub;\n _this._idleTimeout = _idleTimeout;\n _this._onScope = _onScope;\n // Activities store a list of active spans\n _this.activities = {};\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n _this._heartbeatCounter = 0;\n // We should not use heartbeat if we finished a transaction\n _this._finished = false;\n _this._beforeFinishCallbacks = [];\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n IS_DEBUG_BUILD && logger.log(\"Setting idle transaction on scope. Span ID: \" + _this.spanId);\n _idleHub.configureScope(function (scope) { return scope.setSpan(_this); });\n }\n _this._initTimeout = setTimeout(function () {\n if (!_this._finished) {\n _this.finish();\n }\n }, _this._idleTimeout);\n return _this;\n }\n /** {@inheritDoc} */\n IdleTransaction.prototype.finish = function (endTimestamp) {\n var e_1, _a;\n var _this = this;\n if (endTimestamp === void 0) { endTimestamp = timestampWithMs(); }\n this._finished = true;\n this.activities = {};\n if (this.spanRecorder) {\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n try {\n for (var _b = __values(this._beforeFinishCallbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var callback = _c.value;\n callback(this, endTimestamp);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.spanRecorder.spans = this.spanRecorder.spans.filter(function (span) {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === _this.spanId) {\n return true;\n }\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus('cancelled');\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n IS_DEBUG_BUILD &&\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n return keepSpan;\n });\n IS_DEBUG_BUILD && logger.log('[Tracing] flushing IdleTransaction');\n }\n else {\n IS_DEBUG_BUILD && logger.log('[Tracing] No active IdleTransaction');\n }\n // if `this._onScope` is `true`, the transaction put itself on the scope when it started\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n return _super.prototype.finish.call(this, endTimestamp);\n };\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n IdleTransaction.prototype.registerBeforeFinishCallback = function (callback) {\n this._beforeFinishCallbacks.push(callback);\n };\n /**\n * @inheritDoc\n */\n IdleTransaction.prototype.initSpanRecorder = function (maxlen) {\n var _this = this;\n if (!this.spanRecorder) {\n var pushActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._pushActivity(id);\n };\n var popActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._popActivity(id);\n };\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n // Start heartbeat so that transactions do not run forever.\n IS_DEBUG_BUILD && logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n };\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._pushActivity = function (spanId) {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n IS_DEBUG_BUILD && logger.log(\"[Tracing] pushActivity: \" + spanId);\n this.activities[spanId] = true;\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n };\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._popActivity = function (spanId) {\n var _this = this;\n if (this.activities[spanId]) {\n IS_DEBUG_BUILD && logger.log(\"[Tracing] popActivity \" + spanId);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n IS_DEBUG_BUILD && logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n if (Object.keys(this.activities).length === 0) {\n var timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var end_1 = timestampWithMs() + timeout / 1000;\n setTimeout(function () {\n if (!_this._finished) {\n _this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[1]);\n _this.finish(end_1);\n }\n }, timeout);\n }\n };\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n IdleTransaction.prototype._beat = function () {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n var heartbeatString = Object.keys(this.activities).join('');\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n }\n else {\n this._heartbeatCounter = 1;\n }\n this._prevHeartbeatString = heartbeatString;\n if (this._heartbeatCounter >= 3) {\n IS_DEBUG_BUILD && logger.log('[Tracing] Transaction finished because of no change for 3 heart beats');\n this.setStatus('deadline_exceeded');\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[0]);\n this.finish();\n }\n else {\n this._pingHeartbeat();\n }\n };\n /**\n * Pings the heartbeat\n */\n IdleTransaction.prototype._pingHeartbeat = function () {\n var _this = this;\n IS_DEBUG_BUILD && logger.log(\"pinging Heartbeat -> current counter: \" + this._heartbeatCounter);\n setTimeout(function () {\n _this._beat();\n }, HEARTBEAT_INTERVAL);\n };\n return IdleTransaction;\n}(Transaction));\nexport { IdleTransaction };\n/**\n * Reset transaction on scope to `undefined`\n */\nfunction clearActiveTransaction(hub) {\n if (hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n//# sourceMappingURL=idletransaction.js.map","import { getCurrentHub } from '@sentry/hub';\n/**\n * The `extractTraceparentData` function and `TRACEPARENT_REGEXP` constant used\n * to be declared in this file. It was later moved into `@sentry/utils` as part of a\n * move to remove `@sentry/tracing` dependencies from `@sentry/node` (`extractTraceparentData`\n * is the only tracing function used by `@sentry/node`).\n *\n * These exports are kept here for backwards compatability's sake.\n *\n * TODO(v7): Reorganize these exports\n *\n * See https://github.com/getsentry/sentry-javascript/issues/4642 for more details.\n */\nexport { TRACEPARENT_REGEXP, extractTraceparentData } from '@sentry/utils';\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(maybeOptions) {\n var client = getCurrentHub().getClient();\n var options = maybeOptions || (client && client.getOptions());\n return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(maybeHub) {\n var hub = maybeHub || getCurrentHub();\n var scope = hub.getScope();\n return scope && scope.getTransaction();\n}\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time) {\n return time / 1000;\n}\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time) {\n return time * 1000;\n}\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n//# sourceMappingURL=utils.js.map","/**\n * TODO(v7): Remove this enum and replace with SeverityLevel\n */\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// TODO: in v7, these can disappear, because they now also exist in `@sentry/utils`. (Having them there rather than here\n// is nice because then it enforces the idea that only types are exported from `@sentry/types`.)\nexport var SeverityLevels = ['fatal', 'error', 'warning', 'log', 'info', 'debug', 'critical'];\n//# sourceMappingURL=severity.js.map","import { getGlobalObject } from './global';\nimport { isString } from './is';\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem, keyAttrs) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = keyAttrs && keyAttrs.length\n ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if (keyAttrPairs && keyAttrPairs.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n//# sourceMappingURL=browser.js.map","import { __read } from \"tslib\";\nimport { SentryError } from './error';\nimport { IS_DEBUG_BUILD } from './flags';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\nfunction isValidProtocol(protocol) {\n return protocol === 'http' || protocol === 'https';\n}\n/**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\nexport function dsnToString(dsn, withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n var host = dsn.host, path = dsn.path, pass = dsn.pass, port = dsn.port, projectId = dsn.projectId, protocol = dsn.protocol, publicKey = dsn.publicKey;\n return (protocol + \"://\" + publicKey + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n}\nfunction dsnFromString(str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(\"Invalid Sentry Dsn: \" + str);\n }\n var _a = __read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n return dsnFromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });\n}\nfunction dsnFromComponents(components) {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n return {\n user: components.publicKey || '',\n protocol: components.protocol,\n publicKey: components.publicKey || '',\n pass: components.pass || '',\n host: components.host,\n port: components.port || '',\n path: components.path || '',\n projectId: components.projectId,\n };\n}\nfunction validateDsn(dsn) {\n if (!IS_DEBUG_BUILD) {\n return;\n }\n var port = dsn.port, projectId = dsn.projectId, protocol = dsn.protocol;\n var requiredComponents = ['protocol', 'publicKey', 'host', 'projectId'];\n requiredComponents.forEach(function (component) {\n if (!dsn[component]) {\n throw new SentryError(\"Invalid Sentry Dsn: \" + component + \" missing\");\n }\n });\n if (!projectId.match(/^\\d+$/)) {\n throw new SentryError(\"Invalid Sentry Dsn: Invalid projectId \" + projectId);\n }\n if (!isValidProtocol(protocol)) {\n throw new SentryError(\"Invalid Sentry Dsn: Invalid protocol \" + protocol);\n }\n if (port && isNaN(parseInt(port, 10))) {\n throw new SentryError(\"Invalid Sentry Dsn: Invalid port \" + port);\n }\n return true;\n}\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nexport function makeDsn(from) {\n var components = typeof from === 'string' ? dsnFromString(from) : dsnFromComponents(from);\n validateDsn(components);\n return components;\n}\n//# sourceMappingURL=dsn.js.map","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n __extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map","/*\n * This file defines flags and constants that can be modified during compile time in order to facilitate tree shaking\n * for users.\n *\n * Debug flags need to be declared in each package individually and must not be imported across package boundaries,\n * because some build tools have trouble tree-shaking imported guards.\n *\n * As a convention, we define debug flags in a `flags.ts` file in the root of a package's `src` folder.\n *\n * Debug flag files will contain \"magic strings\" like `__SENTRY_DEBUG__` that may get replaced with actual values during\n * our, or the user's build process. Take care when introducing new flags - they must not throw if they are not\n * replaced.\n */\n/** Flag that is true for debug builds, false otherwise. */\nexport var IS_DEBUG_BUILD = typeof __SENTRY_DEBUG__ === 'undefined' ? true : __SENTRY_DEBUG__;\n//# sourceMappingURL=flags.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isNodeEnv } from './node';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n/**\n * Returns a global singleton contained in the global `__SENTRY__` object.\n *\n * If the singleton doesn't already exist in `__SENTRY__`, it will be created using the given factory\n * function and added to the `__SENTRY__` object.\n *\n * @param name name of the global singleton on __SENTRY__\n * @param creator creator Factory function to create the singleton if it doesn't already exist on `__SENTRY__`\n * @param obj (Optional) The global object on which to look for `__SENTRY__`, if not `getGlobalObject`'s return value\n * @returns the singleton\n */\nexport function getGlobalSingleton(name, creator, obj) {\n var global = (obj || getGlobalObject());\n var __SENTRY__ = (global.__SENTRY__ = global.__SENTRY__ || {});\n var singleton = __SENTRY__[name] || (__SENTRY__[name] = creator());\n return singleton;\n}\n//# sourceMappingURL=global.js.map","import { __assign, __values } from \"tslib\";\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { isInstanceOf, isString } from './is';\nimport { CONSOLE_LEVELS, logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n IS_DEBUG_BUILD && logger.warn('unknown instrumentation type:', type);\n return;\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(type, callback) {\n handlers[type] = handlers[type] || [];\n handlers[type].push(callback);\n instrument(type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n IS_DEBUG_BUILD &&\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError:\", e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n CONSOLE_LEVELS.forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleMethod) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleMethod) {\n originalConsoleMethod.apply(global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', __assign({}, handlerData));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), error: error }));\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n var xhrInfo = (xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n });\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhrInfo.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n xhrInfo.status_code = xhr.status;\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr,\n });\n }\n };\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (this.__sentry_xhr__ && args[0] !== undefined) {\n this.__sentry_xhr__.body = args[0];\n }\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n }\n catch (_oO) {\n // no-empty\n }\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n try {\n var target = event.target;\n if (!target || !target.tagName) {\n return true;\n }\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n return true;\n}\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener) {\n if (globalListener === void 0) { globalListener = false; }\n return function (event) {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n var name = event.type === 'keypress' ? 'input' : event.type;\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_1 = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers_1[type] = handlers_1[type] || { refCount: 0 });\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n handlerForType.refCount += 1;\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_2 = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers_2[type];\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers_2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers_2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\nvar _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url,\n });\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n}\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n}\n//# sourceMappingURL=instrument.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n// eslint-disable-next-line @typescript-eslint/unbound-method\nvar objectToString = Object.prototype.toString;\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (objectToString.call(wat)) {\n case '[object Error]':\n case '[object Exception]':\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\nfunction isBuiltin(wat, ty) {\n return objectToString.call(wat) === \"[object \" + ty + \"]\";\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return isBuiltin(wat, 'ErrorEvent');\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return isBuiltin(wat, 'DOMError');\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return isBuiltin(wat, 'DOMException');\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return isBuiltin(wat, 'String');\n}\n/**\n * Checks whether given value is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return isBuiltin(wat, 'Object');\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return isBuiltin(wat, 'RegExp');\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value is NaN\n * {@link isNaN}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isNaN(wat) {\n return typeof wat === 'number' && wat !== wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","import { __read, __spread } from \"tslib\";\nimport { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject, getGlobalSingleton } from './global';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\nexport var CONSOLE_LEVELS = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n/**\n * Temporarily disable sentry console instrumentations.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n if (!('console' in global)) {\n return callback();\n }\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n CONSOLE_LEVELS.forEach(function (level) {\n // TODO(v7): Remove this check as it's only needed for Node 6\n var originalWrappedFunc = originalConsole[level] && originalConsole[level].__sentry_original__;\n if (level in global.console && originalWrappedFunc) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalWrappedFunc;\n }\n });\n try {\n return callback();\n }\n finally {\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n }\n}\nfunction makeLogger() {\n var enabled = false;\n var logger = {\n enable: function () {\n enabled = true;\n },\n disable: function () {\n enabled = false;\n },\n };\n if (IS_DEBUG_BUILD) {\n CONSOLE_LEVELS.forEach(function (name) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n logger[name] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (enabled) {\n consoleSandbox(function () {\n var _a;\n (_a = global.console)[name].apply(_a, __spread([PREFIX + \"[\" + name + \"]:\"], args));\n });\n }\n };\n });\n }\n else {\n CONSOLE_LEVELS.forEach(function (name) {\n logger[name] = function () { return undefined; };\n });\n }\n return logger;\n}\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nvar logger;\nif (IS_DEBUG_BUILD) {\n logger = getGlobalSingleton('logger', makeLogger);\n}\nelse {\n logger = makeLogger();\n}\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { __assign } from \"tslib\";\nimport { getGlobalObject } from './global';\nimport { addNonEnumerableProperty } from './object';\nimport { snipLine } from './string';\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\nfunction getFirstException(event) {\n return event.exception && event.exception.values ? event.exception.values[0] : undefined;\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n var message = event.message, eventId = event.event_id;\n if (message) {\n return message;\n }\n var firstException = getFirstException(event);\n if (firstException) {\n if (firstException.type && firstException.value) {\n return firstException.type + \": \" + firstException.value;\n }\n return firstException.type || firstException.value || eventId || '';\n }\n return eventId || '';\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n var exception = (event.exception = event.exception || {});\n var values = (exception.values = exception.values || []);\n var firstException = (values[0] = values[0] || {});\n if (!firstException.value) {\n firstException.value = value || '';\n }\n if (!firstException.type) {\n firstException.type = type || 'Error';\n }\n}\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event, newMechanism) {\n var firstException = getFirstException(event);\n if (!firstException) {\n return;\n }\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = firstException.mechanism;\n firstException.mechanism = __assign(__assign(__assign({}, defaultMechanism), currentMechanism), newMechanism);\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = __assign(__assign({}, (currentMechanism && currentMechanism.data)), newMechanism.data);\n firstException.mechanism.data = mergedData;\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (exception && exception.__sentry_captured__) {\n return true;\n }\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n addNonEnumerableProperty(exception, '__sentry_captured__', true);\n }\n catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n return false;\n}\n//# sourceMappingURL=misc.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isBrowserBundle } from './env';\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n // explicitly check for browser bundles as those can be optimized statically\n // by terser/rollup.\n return (!isBrowserBundle() &&\n Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]');\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n//# sourceMappingURL=node.js.map","/*\n * This module exists for optimizations in the build process through rollup and terser. We define some global\n * constants, which can be overridden during build. By guarding certain pieces of code with functions that return these\n * constants, we can control whether or not they appear in the final bundle. (Any code guarded by a false condition will\n * never run, and will hence be dropped during treeshaking.) The two primary uses for this are stripping out calls to\n * `logger` and preventing node-related code from appearing in browser bundles.\n *\n * Attention:\n * This file should not be used to define constants/flags that are intended to be used for tree-shaking conducted by\n * users. These fags should live in their respective packages, as we identified user tooling (specifically webpack)\n * having issues tree-shaking these constants across package boundaries.\n * An example for this is the __SENTRY_DEBUG__ constant. It is declared in each package individually because we want\n * users to be able to shake away expressions that it guards.\n */\n/**\n * Figures out if we're building a browser bundle.\n *\n * @returns true if this is a browser bundle build.\n */\nexport function isBrowserBundle() {\n return typeof __SENTRY_BROWSER_BUNDLE__ !== 'undefined' && !!__SENTRY_BROWSER_BUNDLE__;\n}\n//# sourceMappingURL=env.js.map","import { __read } from \"tslib\";\nimport { isError, isEvent, isNaN, isSyntheticEvent } from './is';\nimport { memoBuilder } from './memo';\nimport { convertToPlainObject } from './object';\nimport { getFunctionName } from './stacktrace';\n/**\n * Recursively normalizes the given object.\n *\n * - Creates a copy to prevent original input mutation\n * - Skips non-enumerable properties\n * - When stringifying, calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializable values (`undefined`/`NaN`/functions) to serializable format\n * - Translates known global objects/classes to a string representations\n * - Takes care of `Error` object serialization\n * - Optionally limits depth of final output\n * - Optionally limits number of properties/elements included in any single object/array\n *\n * @param input The object to be normalized.\n * @param depth The max depth to which to normalize the object. (Anything deeper stringified whole.)\n * @param maxProperties The max number of elements or properties to be included in any single array or\n * object in the normallized output..\n * @returns A normalized version of the object, or `\"**non-serializable**\"` if any errors are thrown during normalization.\n */\nexport function normalize(input, depth, maxProperties) {\n if (depth === void 0) { depth = +Infinity; }\n if (maxProperties === void 0) { maxProperties = +Infinity; }\n try {\n // since we're at the outermost level, there is no key\n return visit('', input, depth, maxProperties);\n }\n catch (err) {\n return { ERROR: \"**non-serializable** (\" + err + \")\" };\n }\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var normalized = normalize(object, depth);\n if (jsonSize(normalized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return normalized;\n}\n/**\n * Visits a node to perform normalization on it\n *\n * @param key The key corresponding to the given node\n * @param value The node to be visited\n * @param depth Optional number indicating the maximum recursion depth\n * @param maxProperties Optional maximum number of properties/elements included in any single object/array\n * @param memo Optional Memo class handling decycling\n */\nfunction visit(key, value, depth, maxProperties, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (maxProperties === void 0) { maxProperties = +Infinity; }\n if (memo === void 0) { memo = memoBuilder(); }\n var _a = __read(memo, 2), memoize = _a[0], unmemoize = _a[1];\n // If the value has a `toJSON` method, see if we can bail and let it do the work\n var valueWithToJSON = value;\n if (valueWithToJSON && typeof valueWithToJSON.toJSON === 'function') {\n try {\n return valueWithToJSON.toJSON();\n }\n catch (err) {\n // pass (The built-in `toJSON` failed, but we can still try to do it ourselves)\n }\n }\n // Get the simple cases out of the way first\n if (value === null || (['number', 'boolean', 'string'].includes(typeof value) && !isNaN(value))) {\n return value;\n }\n var stringified = stringifyValue(key, value);\n // Anything we could potentially dig into more (objects or arrays) will have come back as `\"[object XXXX]\"`.\n // Everything else will have already been serialized, so if we don't see that pattern, we're done.\n if (!stringified.startsWith('[object ')) {\n return stringified;\n }\n // We're also done if we've reached the max depth\n if (depth === 0) {\n // At this point we know `serialized` is a string of the form `\"[object XXXX]\"`. Clean it up so it's just `\"[XXXX]\"`.\n return stringified.replace('object ', '');\n }\n // If we've already visited this branch, bail out, as it's circular reference. If not, note that we're seeing it now.\n if (memoize(value)) {\n return '[Circular ~]';\n }\n // At this point we know we either have an object or an array, we haven't seen it before, and we're going to recurse\n // because we haven't yet reached the max depth. Create an accumulator to hold the results of visiting each\n // property/entry, and keep track of the number of items we add to it.\n var normalized = (Array.isArray(value) ? [] : {});\n var numAdded = 0;\n // Before we begin, convert`Error` and`Event` instances into plain objects, since some of each of their relevant\n // properties are non-enumerable and otherwise would get missed.\n var visitable = (isError(value) || isEvent(value) ? convertToPlainObject(value) : value);\n for (var visitKey in visitable) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(visitable, visitKey)) {\n continue;\n }\n if (numAdded >= maxProperties) {\n normalized[visitKey] = '[MaxProperties ~]';\n break;\n }\n // Recursively visit all the child nodes\n var visitValue = visitable[visitKey];\n normalized[visitKey] = visit(visitKey, visitValue, depth - 1, maxProperties, memo);\n numAdded += 1;\n }\n // Once we've visited all the branches, remove the parent from memo storage\n unmemoize(value);\n // Return accumulated values\n return normalized;\n}\n// TODO remove this in v7 (this means the method will no longer be exported, under any name)\nexport { visit as walk };\n/**\n * Stringify the given value. Handles various known special values and types.\n *\n * Not meant to be used on simple primitives which already have a string representation, as it will, for example, turn\n * the number 1231 into \"[Object Number]\", nor on `null`, as it will throw.\n *\n * @param value The value to stringify\n * @returns A stringified representation of the given value\n */\nfunction stringifyValue(key, \n// this type is a tiny bit of a cheat, since this function does handle NaN (which is technically a number), but for\n// our internal use, it'll do\nvalue) {\n try {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n // It's safe to use `global`, `window`, and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n // this catches `undefined` (but not `null`, which is a primitive and can be serialized on its own)\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n // stringified BigInts are indistinguishable from regular numbers, so we need to label them to avoid confusion\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n // Now that we've knocked out all the special cases and the primitives, all we have left are objects. Simply casting\n // them to strings means that instances of classes which haven't defined their `toStringTag` will just come out as\n // `\"[object Object]\"`. If we instead look at the constructor's name (which is the same as the name of the class),\n // we can make sure that only plain objects come out that way.\n return \"[object \" + Object.getPrototypeOf(value).constructor.name + \"]\";\n }\n catch (err) {\n return \"**non-serializable** (\" + err + \")\";\n }\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n//# sourceMappingURL=normalize.js.map","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/**\n * Helper to decycle json objects\n */\nexport function memoBuilder() {\n var hasWeakSet = typeof WeakSet === 'function';\n var inner = hasWeakSet ? new WeakSet() : [];\n function memoize(obj) {\n if (hasWeakSet) {\n if (inner.has(obj)) {\n return true;\n }\n inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < inner.length; i++) {\n var value = inner[i];\n if (value === obj) {\n return true;\n }\n }\n inner.push(obj);\n return false;\n }\n function unmemoize(obj) {\n if (hasWeakSet) {\n inner.delete(obj);\n }\n else {\n for (var i = 0; i < inner.length; i++) {\n if (inner[i] === obj) {\n inner.splice(i, 1);\n break;\n }\n }\n }\n }\n return [memoize, unmemoize];\n}\n//# sourceMappingURL=memo.js.map","import { __assign, __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive } from './is';\nimport { truncate } from './string';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, )` or `origMethod.apply(this, [])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n markFunctionWrapped(wrapped, original);\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Defines a non-enumerable property on the given object.\n *\n * @param obj The object on which to set the property\n * @param name The name of the property to be set\n * @param value The value to which to set the property\n */\nexport function addNonEnumerableProperty(obj, name, value) {\n Object.defineProperty(obj, name, {\n // enumerable: false, // the default, so we can save on bundle size by not explicitly setting it\n value: value,\n writable: true,\n configurable: true,\n });\n}\n/**\n * Remembers the original function on the wrapped function and\n * patches up the prototype.\n *\n * @param wrapped the wrapper function\n * @param original the original function that gets wrapped\n */\nexport function markFunctionWrapped(wrapped, original) {\n var proto = original.prototype || {};\n wrapped.prototype = original.prototype = proto;\n addNonEnumerableProperty(wrapped, '__sentry_original__', original);\n}\n/**\n * This extracts the original function if available. See\n * `markFunctionWrapped` for more information.\n *\n * @param func the function to unwrap\n * @returns the unwrapped version of the function if available.\n */\nexport function getOriginalFunction(func) {\n return func.__sentry_original__;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nexport function convertToPlainObject(value) {\n var newObj = value;\n if (isError(value)) {\n newObj = __assign({ message: value.message, name: value.name, stack: value.stack }, getOwnProperties(value));\n }\n else if (isEvent(value)) {\n var event_1 = value;\n newObj = __assign({ type: event_1.type, target: serializeEventTarget(event_1.target), currentTarget: serializeEventTarget(event_1.currentTarget) }, getOwnProperties(event_1));\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n newObj.detail = event_1.detail;\n }\n }\n return newObj;\n}\n/** Creates a string representation of the target of an `Event` object */\nfunction serializeEventTarget(target) {\n try {\n return isElement(target) ? htmlTreeAsString(target) : Object.prototype.toString.call(target);\n }\n catch (_oO) {\n return '';\n }\n}\n/** Filters out all but an object's own properties */\nfunction getOwnProperties(obj) {\n var extractedProps = {};\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n extractedProps[property] = obj[property];\n }\n }\n return extractedProps;\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(convertToPlainObject(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var rv = {};\n try {\n for (var _b = __values(Object.keys(val)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof val[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(val[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat) {\n var objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new wat.constructor(wat);\n break;\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n//# sourceMappingURL=object.js.map","import { __assign, __values } from \"tslib\";\nvar STACKTRACE_LIMIT = 50;\n/**\n * Creates a stack parser with the supplied line parsers\n *\n * StackFrames are returned in the correct order for Sentry Exception\n * frames and with Sentry SDK internal frames removed from the top and bottom\n *\n */\nexport function createStackParser() {\n var parsers = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n parsers[_i] = arguments[_i];\n }\n var sortedParsers = parsers.sort(function (a, b) { return a[0] - b[0]; }).map(function (p) { return p[1]; });\n return function (stack, skipFirst) {\n var e_1, _a, e_2, _b;\n if (skipFirst === void 0) { skipFirst = 0; }\n var frames = [];\n try {\n for (var _c = __values(stack.split('\\n').slice(skipFirst)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var line = _d.value;\n try {\n for (var sortedParsers_1 = (e_2 = void 0, __values(sortedParsers)), sortedParsers_1_1 = sortedParsers_1.next(); !sortedParsers_1_1.done; sortedParsers_1_1 = sortedParsers_1.next()) {\n var parser = sortedParsers_1_1.value;\n var frame = parser(line);\n if (frame) {\n frames.push(frame);\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (sortedParsers_1_1 && !sortedParsers_1_1.done && (_b = sortedParsers_1.return)) _b.call(sortedParsers_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return stripSentryFramesAndReverse(frames);\n };\n}\n/**\n * @hidden\n */\nexport function stripSentryFramesAndReverse(stack) {\n if (!stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].function || '';\n var lastFrameFunction = localStack[localStack.length - 1].function || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(function (frame) { return (__assign(__assign({}, frame), { filename: frame.filename || localStack[0].filename, function: frame.function || '?' })); })\n .reverse();\n}\nvar defaultFunctionName = '';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n//# sourceMappingURL=stacktrace.js.map","import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var lineLength = newLine.length;\n if (lineLength <= 150) {\n return newLine;\n }\n if (colno > lineLength) {\n // eslint-disable-next-line no-param-reassign\n colno = lineLength;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, lineLength);\n if (end > lineLength - 5) {\n end = lineLength;\n }\n if (end === lineLength) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < lineLength) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n//# sourceMappingURL=string.js.map","import { IS_DEBUG_BUILD } from './flags';\nimport { getGlobalObject } from './global';\nimport { logger } from './logger';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof doc.createElement === 'function') {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n IS_DEBUG_BUILD &&\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default'\n // (see https://caniuse.com/#feat=referrer-policy),\n // it doesn't. And it throws an exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/**\n * Creates a resolved sync promise.\n *\n * @param value the value to resolve the promise with\n * @returns the resolved sync promise\n */\nexport function resolvedSyncPromise(value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n}\n/**\n * Creates a rejected sync promise.\n *\n * @param value the value to reject the promise with\n * @returns the rejected sync promise\n */\nexport function rejectedSyncPromise(reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n}\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = 0 /* PENDING */;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(1 /* RESOLVED */, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(2 /* REJECTED */, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== 0 /* PENDING */) {\n return;\n }\n if (isThenable(value)) {\n void value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === 0 /* PENDING */) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler[0]) {\n return;\n }\n if (_this._state === 1 /* RESOLVED */) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler[1](_this._value);\n }\n if (_this._state === 2 /* REJECTED */) {\n handler[2](_this._value);\n }\n handler[0] = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._handlers.push([\n false,\n function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n }\n else {\n try {\n resolve(onfulfilled(result));\n }\n catch (e) {\n reject(e);\n }\n }\n },\n function (reason) {\n if (!onrejected) {\n reject(reason);\n }\n else {\n try {\n resolve(onrejected(reason));\n }\n catch (e) {\n reject(e);\n }\n }\n },\n ]);\n _this._executeHandlers();\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\n};\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\n }\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport var browserPerformanceTimeOrigin = (function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n//# sourceMappingURL=time.js.map","var _global = (typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {}); _global.SENTRY_RELEASE={id:\"1P5BXAXAoIpAmJF78bFe7\"};","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package binary provides functions for encoding and decoding numbers in byte arrays.\n */\nvar int_1 = require(\"@stablelib/int\");\n// TODO(dchest): add asserts for correct value ranges and array offsets.\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 0] << 8) | array[offset + 1]) << 16) >> 16;\n}\nexports.readInt16BE = readInt16BE;\n/**\n * Reads 2 bytes from array starting at offset as big-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 0] << 8) | array[offset + 1]) >>> 0;\n}\nexports.readUint16BE = readUint16BE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * signed 16-bit integer and returns it.\n */\nfunction readInt16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (((array[offset + 1] << 8) | array[offset]) << 16) >> 16;\n}\nexports.readInt16LE = readInt16LE;\n/**\n * Reads 2 bytes from array starting at offset as little-endian\n * unsigned 16-bit integer and returns it.\n */\nfunction readUint16LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 1] << 8) | array[offset]) >>> 0;\n}\nexports.readUint16LE = readUint16LE;\n/**\n * Writes 2-byte big-endian representation of 16-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 8;\n out[offset + 1] = value >>> 0;\n return out;\n}\nexports.writeUint16BE = writeUint16BE;\nexports.writeInt16BE = writeUint16BE;\n/**\n * Writes 2-byte little-endian representation of 16-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 2-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint16LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(2); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n return out;\n}\nexports.writeUint16LE = writeUint16LE;\nexports.writeInt16LE = writeUint16LE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3];\n}\nexports.readInt32BE = readInt32BE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset] << 24) |\n (array[offset + 1] << 16) |\n (array[offset + 2] << 8) |\n array[offset + 3]) >>> 0;\n}\nexports.readUint32BE = readUint32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * signed 32-bit integer and returns it.\n */\nfunction readInt32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return (array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset];\n}\nexports.readInt32LE = readInt32LE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * unsigned 32-bit integer and returns it.\n */\nfunction readUint32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n return ((array[offset + 3] << 24) |\n (array[offset + 2] << 16) |\n (array[offset + 1] << 8) |\n array[offset]) >>> 0;\n}\nexports.readUint32LE = readUint32LE;\n/**\n * Writes 4-byte big-endian representation of 32-bit unsigned\n * value to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 24;\n out[offset + 1] = value >>> 16;\n out[offset + 2] = value >>> 8;\n out[offset + 3] = value >>> 0;\n return out;\n}\nexports.writeUint32BE = writeUint32BE;\nexports.writeInt32BE = writeUint32BE;\n/**\n * Writes 4-byte little-endian representation of 32-bit unsigned\n * value to array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n out[offset + 0] = value >>> 0;\n out[offset + 1] = value >>> 8;\n out[offset + 2] = value >>> 16;\n out[offset + 3] = value >>> 24;\n return out;\n}\nexports.writeUint32LE = writeUint32LE;\nexports.writeInt32LE = writeUint32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readInt32BE(array, offset);\n var lo = readInt32BE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64BE = readInt64BE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var hi = readUint32BE(array, offset);\n var lo = readUint32BE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64BE = readUint64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * signed 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports exact\n * numbers in range -9007199254740991 to 9007199254740991.\n * If the number stored in the byte array is outside this range,\n * the result is not exact.\n */\nfunction readInt64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readInt32LE(array, offset);\n var hi = readInt32LE(array, offset + 4);\n return hi * 0x100000000 + lo - ((lo >> 31) * 0x100000000);\n}\nexports.readInt64LE = readInt64LE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * unsigned 64-bit integer and returns it.\n *\n * IMPORTANT: due to JavaScript limitation, supports values up to 2^53-1.\n */\nfunction readUint64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var lo = readUint32LE(array, offset);\n var hi = readUint32LE(array, offset + 4);\n return hi * 0x100000000 + lo;\n}\nexports.readUint64LE = readUint64LE;\n/**\n * Writes 8-byte big-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32BE(value / 0x100000000 >>> 0, out, offset);\n writeUint32BE(value >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64BE = writeUint64BE;\nexports.writeInt64BE = writeUint64BE;\n/**\n * Writes 8-byte little-endian representation of 64-bit unsigned\n * value to byte array starting at offset.\n *\n * Due to JavaScript limitation, supports values up to 2^53-1.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeUint64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n writeUint32LE(value >>> 0, out, offset);\n writeUint32LE(value / 0x100000000 >>> 0, out, offset + 4);\n return out;\n}\nexports.writeUint64LE = writeUint64LE;\nexports.writeInt64LE = writeUint64LE;\n/**\n * Reads bytes from array starting at offset as big-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintBE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintBE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintBE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintBE = readUintBE;\n/**\n * Reads bytes from array starting at offset as little-endian\n * unsigned bitLen-bit integer and returns it.\n *\n * Supports bit lengths divisible by 8, up to 48.\n */\nfunction readUintLE(bitLength, array, offset) {\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"readUintLE supports only bitLengths divisible by 8\");\n }\n if (bitLength / 8 > array.length - offset) {\n throw new Error(\"readUintLE: array is too short for the given bitLength\");\n }\n var result = 0;\n var mul = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n result += array[i] * mul;\n mul *= 256;\n }\n return result;\n}\nexports.readUintLE = readUintLE;\n/**\n * Writes a big-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintBE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintBE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintBE value must be an integer\");\n }\n var div = 1;\n for (var i = bitLength / 8 + offset - 1; i >= offset; i--) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintBE = writeUintBE;\n/**\n * Writes a little-endian representation of bitLen-bit unsigned\n * value to array starting at offset.\n *\n * Supports bit lengths divisible by 8, up to 48.\n *\n * If byte array is not given, creates a new one.\n *\n * Returns the output byte array.\n */\nfunction writeUintLE(bitLength, value, out, offset) {\n if (out === void 0) { out = new Uint8Array(bitLength / 8); }\n if (offset === void 0) { offset = 0; }\n // TODO(dchest): implement support for bitLengths non-divisible by 8\n if (bitLength % 8 !== 0) {\n throw new Error(\"writeUintLE supports only bitLengths divisible by 8\");\n }\n if (!int_1.isSafeInteger(value)) {\n throw new Error(\"writeUintLE value must be an integer\");\n }\n var div = 1;\n for (var i = offset; i < offset + bitLength / 8; i++) {\n out[i] = (value / div) & 0xff;\n div *= 256;\n }\n return out;\n}\nexports.writeUintLE = writeUintLE;\n/**\n * Reads 4 bytes from array starting at offset as big-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset);\n}\nexports.readFloat32BE = readFloat32BE;\n/**\n * Reads 4 bytes from array starting at offset as little-endian\n * 32-bit floating-point number and returns it.\n */\nfunction readFloat32LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat32(offset, true);\n}\nexports.readFloat32LE = readFloat32LE;\n/**\n * Reads 8 bytes from array starting at offset as big-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64BE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset);\n}\nexports.readFloat64BE = readFloat64BE;\n/**\n * Reads 8 bytes from array starting at offset as little-endian\n * 64-bit floating-point number (\"double\") and returns it.\n */\nfunction readFloat64LE(array, offset) {\n if (offset === void 0) { offset = 0; }\n var view = new DataView(array.buffer, array.byteOffset, array.byteLength);\n return view.getFloat64(offset, true);\n}\nexports.readFloat64LE = readFloat64LE;\n/**\n * Writes 4-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value);\n return out;\n}\nexports.writeFloat32BE = writeFloat32BE;\n/**\n * Writes 4-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 4-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat32LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(4); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat32(offset, value, true);\n return out;\n}\nexports.writeFloat32LE = writeFloat32LE;\n/**\n * Writes 8-byte big-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64BE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value);\n return out;\n}\nexports.writeFloat64BE = writeFloat64BE;\n/**\n * Writes 8-byte little-endian floating-point representation of value\n * to byte array starting at offset.\n *\n * If byte array is not given, creates a new 8-byte one.\n *\n * Returns the output byte array.\n */\nfunction writeFloat64LE(value, out, offset) {\n if (out === void 0) { out = new Uint8Array(8); }\n if (offset === void 0) { offset = 0; }\n var view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n view.setFloat64(offset, value, true);\n return out;\n}\nexports.writeFloat64LE = writeFloat64LE;\n//# sourceMappingURL=binary.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package chacha implements ChaCha stream cipher.\n */\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n// Number of ChaCha rounds (ChaCha20).\nvar ROUNDS = 20;\n// Applies the ChaCha core function to 16-byte input,\n// 32-byte key key, and puts the result into 64-byte array out.\nfunction core(out, input, key) {\n var j0 = 0x61707865; // \"expa\" -- ChaCha's \"sigma\" constant\n var j1 = 0x3320646E; // \"nd 3\" for 32-byte keys\n var j2 = 0x79622D32; // \"2-by\"\n var j3 = 0x6B206574; // \"te k\"\n var j4 = (key[3] << 24) | (key[2] << 16) | (key[1] << 8) | key[0];\n var j5 = (key[7] << 24) | (key[6] << 16) | (key[5] << 8) | key[4];\n var j6 = (key[11] << 24) | (key[10] << 16) | (key[9] << 8) | key[8];\n var j7 = (key[15] << 24) | (key[14] << 16) | (key[13] << 8) | key[12];\n var j8 = (key[19] << 24) | (key[18] << 16) | (key[17] << 8) | key[16];\n var j9 = (key[23] << 24) | (key[22] << 16) | (key[21] << 8) | key[20];\n var j10 = (key[27] << 24) | (key[26] << 16) | (key[25] << 8) | key[24];\n var j11 = (key[31] << 24) | (key[30] << 16) | (key[29] << 8) | key[28];\n var j12 = (input[3] << 24) | (input[2] << 16) | (input[1] << 8) | input[0];\n var j13 = (input[7] << 24) | (input[6] << 16) | (input[5] << 8) | input[4];\n var j14 = (input[11] << 24) | (input[10] << 16) | (input[9] << 8) | input[8];\n var j15 = (input[15] << 24) | (input[14] << 16) | (input[13] << 8) | input[12];\n var x0 = j0;\n var x1 = j1;\n var x2 = j2;\n var x3 = j3;\n var x4 = j4;\n var x5 = j5;\n var x6 = j6;\n var x7 = j7;\n var x8 = j8;\n var x9 = j9;\n var x10 = j10;\n var x11 = j11;\n var x12 = j12;\n var x13 = j13;\n var x14 = j14;\n var x15 = j15;\n for (var i = 0; i < ROUNDS; i += 2) {\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x2 = x2 + x6 | 0;\n x14 ^= x2;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x10 = x10 + x14 | 0;\n x6 ^= x10;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x3 = x3 + x7 | 0;\n x15 ^= x3;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x11 = x11 + x15 | 0;\n x7 ^= x11;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x1 = x1 + x5 | 0;\n x13 ^= x1;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x9 = x9 + x13 | 0;\n x5 ^= x9;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n x0 = x0 + x4 | 0;\n x12 ^= x0;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x8 = x8 + x12 | 0;\n x4 ^= x8;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 16) | x15 << 16;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 12) | x5 << 12;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 16) | x12 << 16;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 12) | x6 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 16) | x13 << 16;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 12) | x7 << 12;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 16) | x14 << 16;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 12) | x4 << 12;\n x2 = x2 + x7 | 0;\n x13 ^= x2;\n x13 = x13 >>> (32 - 8) | x13 << 8;\n x8 = x8 + x13 | 0;\n x7 ^= x8;\n x7 = x7 >>> (32 - 7) | x7 << 7;\n x3 = x3 + x4 | 0;\n x14 ^= x3;\n x14 = x14 >>> (32 - 8) | x14 << 8;\n x9 = x9 + x14 | 0;\n x4 ^= x9;\n x4 = x4 >>> (32 - 7) | x4 << 7;\n x1 = x1 + x6 | 0;\n x12 ^= x1;\n x12 = x12 >>> (32 - 8) | x12 << 8;\n x11 = x11 + x12 | 0;\n x6 ^= x11;\n x6 = x6 >>> (32 - 7) | x6 << 7;\n x0 = x0 + x5 | 0;\n x15 ^= x0;\n x15 = x15 >>> (32 - 8) | x15 << 8;\n x10 = x10 + x15 | 0;\n x5 ^= x10;\n x5 = x5 >>> (32 - 7) | x5 << 7;\n }\n binary_1.writeUint32LE(x0 + j0 | 0, out, 0);\n binary_1.writeUint32LE(x1 + j1 | 0, out, 4);\n binary_1.writeUint32LE(x2 + j2 | 0, out, 8);\n binary_1.writeUint32LE(x3 + j3 | 0, out, 12);\n binary_1.writeUint32LE(x4 + j4 | 0, out, 16);\n binary_1.writeUint32LE(x5 + j5 | 0, out, 20);\n binary_1.writeUint32LE(x6 + j6 | 0, out, 24);\n binary_1.writeUint32LE(x7 + j7 | 0, out, 28);\n binary_1.writeUint32LE(x8 + j8 | 0, out, 32);\n binary_1.writeUint32LE(x9 + j9 | 0, out, 36);\n binary_1.writeUint32LE(x10 + j10 | 0, out, 40);\n binary_1.writeUint32LE(x11 + j11 | 0, out, 44);\n binary_1.writeUint32LE(x12 + j12 | 0, out, 48);\n binary_1.writeUint32LE(x13 + j13 | 0, out, 52);\n binary_1.writeUint32LE(x14 + j14 | 0, out, 56);\n binary_1.writeUint32LE(x15 + j15 | 0, out, 60);\n}\n/**\n * Encrypt src with ChaCha20 stream generated for the given 32-byte key and\n * 8-byte (as in original implementation) or 12-byte (as in RFC7539) nonce and\n * write the result into dst and return it.\n *\n * dst and src may be the same, but otherwise must not overlap.\n *\n * If nonce is 12 bytes, users should not encrypt more than 256 GiB with the\n * same key and nonce, otherwise the stream will repeat. The function will\n * throw error if counter overflows to prevent this.\n *\n * If nonce is 8 bytes, the output is practically unlimited (2^70 bytes, which\n * is more than a million petabytes). However, it is not recommended to\n * generate 8-byte nonces randomly, as the chance of collision is high.\n *\n * Never use the same key and nonce to encrypt more than one message.\n *\n * If nonceInplaceCounterLength is not 0, the nonce is assumed to be a 16-byte\n * array with stream counter in first nonceInplaceCounterLength bytes and nonce\n * in the last remaining bytes. The counter will be incremented inplace for\n * each ChaCha block. This is useful if you need to encrypt one stream of data\n * in chunks.\n */\nfunction streamXOR(key, nonce, src, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n // We only support 256-bit keys.\n if (key.length !== 32) {\n throw new Error(\"ChaCha: key size must be 32 bytes\");\n }\n if (dst.length < src.length) {\n throw new Error(\"ChaCha: destination is shorter than source\");\n }\n var nc;\n var counterLength;\n if (nonceInplaceCounterLength === 0) {\n if (nonce.length !== 8 && nonce.length !== 12) {\n throw new Error(\"ChaCha nonce must be 8 or 12 bytes\");\n }\n nc = new Uint8Array(16);\n // First counterLength bytes of nc are counter, starting with zero.\n counterLength = nc.length - nonce.length;\n // Last bytes of nc after counterLength are nonce, set them.\n nc.set(nonce, counterLength);\n }\n else {\n if (nonce.length !== 16) {\n throw new Error(\"ChaCha nonce with counter must be 16 bytes\");\n }\n // This will update passed nonce with counter inplace.\n nc = nonce;\n counterLength = nonceInplaceCounterLength;\n }\n // Allocate temporary space for ChaCha block.\n var block = new Uint8Array(64);\n for (var i = 0; i < src.length; i += 64) {\n // Generate a block.\n core(block, nc, key);\n // XOR block bytes with src into dst.\n for (var j = i; j < i + 64 && j < src.length; j++) {\n dst[j] = src[j] ^ block[j - i];\n }\n // Increment counter.\n incrementCounter(nc, 0, counterLength);\n }\n // Cleanup temporary space.\n wipe_1.wipe(block);\n if (nonceInplaceCounterLength === 0) {\n // Cleanup counter.\n wipe_1.wipe(nc);\n }\n return dst;\n}\nexports.streamXOR = streamXOR;\n/**\n * Generate ChaCha20 stream for the given 32-byte key and 8-byte or 12-byte\n * nonce and write it into dst and return it.\n *\n * Never use the same key and nonce to generate more than one stream.\n *\n * If nonceInplaceCounterLength is not 0, it behaves the same with respect to\n * the nonce as described in the streamXOR documentation.\n *\n * stream is like streamXOR with all-zero src.\n */\nfunction stream(key, nonce, dst, nonceInplaceCounterLength) {\n if (nonceInplaceCounterLength === void 0) { nonceInplaceCounterLength = 0; }\n wipe_1.wipe(dst);\n return streamXOR(key, nonce, dst, dst, nonceInplaceCounterLength);\n}\nexports.stream = stream;\nfunction incrementCounter(counter, pos, len) {\n var carry = 1;\n while (len--) {\n carry = carry + (counter[pos] & 0xff) | 0;\n counter[pos] = carry & 0xff;\n carry >>>= 8;\n pos++;\n }\n if (carry > 0) {\n throw new Error(\"ChaCha: counter overflow\");\n }\n}\n//# sourceMappingURL=chacha.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar chacha_1 = require(\"@stablelib/chacha\");\nvar poly1305_1 = require(\"@stablelib/poly1305\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nvar binary_1 = require(\"@stablelib/binary\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nexports.KEY_LENGTH = 32;\nexports.NONCE_LENGTH = 12;\nexports.TAG_LENGTH = 16;\nvar ZEROS = new Uint8Array(16);\n/**\n * ChaCha20-Poly1305 Authenticated Encryption with Associated Data.\n *\n * Defined in RFC7539.\n */\nvar ChaCha20Poly1305 = /** @class */ (function () {\n /**\n * Creates a new instance with the given 32-byte key.\n */\n function ChaCha20Poly1305(key) {\n this.nonceLength = exports.NONCE_LENGTH;\n this.tagLength = exports.TAG_LENGTH;\n if (key.length !== exports.KEY_LENGTH) {\n throw new Error(\"ChaCha20Poly1305 needs 32-byte key\");\n }\n // Copy key.\n this._key = new Uint8Array(key);\n }\n /**\n * Encrypts and authenticates plaintext, authenticates associated data,\n * and returns sealed ciphertext, which includes authentication tag.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If dst is given (it must be the size of plaintext + the size of tag\n * length) the result will be put into it. Dst and plaintext must not\n * overlap.\n */\n ChaCha20Poly1305.prototype.seal = function (nonce, plaintext, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n // We pass full counter, which has 12-byte nonce and 4-byte block counter,\n // and it will get incremented after generating the block, which is\n // exactly what we need: we only use the first 32 bytes of 64-byte\n // ChaCha block and discard the next 32 bytes.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Allocate space for sealed ciphertext.\n var resultLength = plaintext.length + this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Encrypt plaintext.\n chacha_1.streamXOR(this._key, counter, plaintext, result, 4);\n // Authenticate.\n // XXX: can \"simplify\" here: pass full result (which is already padded\n // due to zeroes prepared for tag), and ciphertext length instead of\n // subarray of result.\n this._authenticate(result.subarray(result.length - this.tagLength, result.length), authKey, result.subarray(0, result.length - this.tagLength), associatedData);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n /**\n * Authenticates sealed ciphertext (which includes authentication tag) and\n * associated data, decrypts ciphertext and returns decrypted plaintext.\n *\n * RFC7539 specifies 12 bytes for nonce. It may be this 12-byte nonce\n * (\"IV\"), or full 16-byte counter (called \"32-bit fixed-common part\")\n * and nonce.\n *\n * If authentication fails, it returns null.\n *\n * If dst is given (it must be of ciphertext length minus tag length),\n * the result will be put into it. Dst and plaintext must not overlap.\n */\n ChaCha20Poly1305.prototype.open = function (nonce, sealed, associatedData, dst) {\n if (nonce.length > 16) {\n throw new Error(\"ChaCha20Poly1305: incorrect nonce length\");\n }\n // Sealed ciphertext should at least contain tag.\n if (sealed.length < this.tagLength) {\n // TODO(dchest): should we throw here instead?\n return null;\n }\n // Allocate space for counter, and set nonce as last bytes of it.\n var counter = new Uint8Array(16);\n counter.set(nonce, counter.length - nonce.length);\n // Generate authentication key by taking first 32-bytes of stream.\n var authKey = new Uint8Array(32);\n chacha_1.stream(this._key, counter, authKey, 4);\n // Authenticate.\n // XXX: can simplify and avoid allocation: since authenticate()\n // already allocates tag (from Poly1305.digest(), it can return)\n // it instead of copying to calculatedTag. But then in seal()\n // we'll need to copy it.\n var calculatedTag = new Uint8Array(this.tagLength);\n this._authenticate(calculatedTag, authKey, sealed.subarray(0, sealed.length - this.tagLength), associatedData);\n // Constant-time compare tags and return null if they differ.\n if (!constant_time_1.equal(calculatedTag, sealed.subarray(sealed.length - this.tagLength, sealed.length))) {\n return null;\n }\n // Allocate space for decrypted plaintext.\n var resultLength = sealed.length - this.tagLength;\n var result;\n if (dst) {\n if (dst.length !== resultLength) {\n throw new Error(\"ChaCha20Poly1305: incorrect destination length\");\n }\n result = dst;\n }\n else {\n result = new Uint8Array(resultLength);\n }\n // Decrypt.\n chacha_1.streamXOR(this._key, counter, sealed.subarray(0, sealed.length - this.tagLength), result, 4);\n // Cleanup.\n wipe_1.wipe(counter);\n return result;\n };\n ChaCha20Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._key);\n return this;\n };\n ChaCha20Poly1305.prototype._authenticate = function (tagOut, authKey, ciphertext, associatedData) {\n // Initialize Poly1305 with authKey.\n var h = new poly1305_1.Poly1305(authKey);\n // Authenticate padded associated data.\n if (associatedData) {\n h.update(associatedData);\n if (associatedData.length % 16 > 0) {\n h.update(ZEROS.subarray(associatedData.length % 16));\n }\n }\n // Authenticate padded ciphertext.\n h.update(ciphertext);\n if (ciphertext.length % 16 > 0) {\n h.update(ZEROS.subarray(ciphertext.length % 16));\n }\n // Authenticate length of associated data.\n // XXX: can avoid allocation here?\n var length = new Uint8Array(8);\n if (associatedData) {\n binary_1.writeUint64LE(associatedData.length, length);\n }\n h.update(length);\n // Authenticate length of ciphertext.\n binary_1.writeUint64LE(ciphertext.length, length);\n h.update(length);\n // Get tag and copy it into tagOut.\n var tag = h.digest();\n for (var i = 0; i < tag.length; i++) {\n tagOut[i] = tag[i];\n }\n // Cleanup.\n h.clean();\n wipe_1.wipe(tag);\n wipe_1.wipe(length);\n };\n return ChaCha20Poly1305;\n}());\nexports.ChaCha20Poly1305 = ChaCha20Poly1305;\n//# sourceMappingURL=chacha20poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package constant-time provides functions for performing algorithmically constant-time operations.\n */\n/**\n * NOTE! Due to the inability to guarantee real constant time evaluation of\n * anything in JavaScript VM, this is module is the best effort.\n */\n/**\n * Returns resultIfOne if subject is 1, or resultIfZero if subject is 0.\n *\n * Supports only 32-bit integers, so resultIfOne or resultIfZero are not\n * integers, they'll be converted to them with bitwise operations.\n */\nfunction select(subject, resultIfOne, resultIfZero) {\n return (~(subject - 1) & resultIfOne) | ((subject - 1) & resultIfZero);\n}\nexports.select = select;\n/**\n * Returns 1 if a <= b, or 0 if not.\n * Arguments must be positive 32-bit integers less than or equal to 2^31 - 1.\n */\nfunction lessOrEqual(a, b) {\n return (((a | 0) - (b | 0) - 1) >>> 31) & 1;\n}\nexports.lessOrEqual = lessOrEqual;\n/**\n * Returns 1 if a and b are of equal length and their contents\n * are equal, or 0 otherwise.\n *\n * Note that unlike in equal(), zero-length inputs are considered\n * the same, so this function will return 1.\n */\nfunction compare(a, b) {\n if (a.length !== b.length) {\n return 0;\n }\n var result = 0;\n for (var i = 0; i < a.length; i++) {\n result |= a[i] ^ b[i];\n }\n return (1 & ((result - 1) >>> 8));\n}\nexports.compare = compare;\n/**\n * Returns true if a and b are of equal non-zero length,\n * and their contents are equal, or false otherwise.\n *\n * Note that unlike in compare() zero-length inputs are considered\n * _not_ equal, so this function will return false.\n */\nfunction equal(a, b) {\n if (a.length === 0 || b.length === 0) {\n return false;\n }\n return compare(a, b) !== 0;\n}\nexports.equal = equal;\n//# sourceMappingURL=constant-time.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isSerializableHash(h) {\n return (typeof h.saveState !== \"undefined\" &&\n typeof h.restoreState !== \"undefined\" &&\n typeof h.cleanSavedState !== \"undefined\");\n}\nexports.isSerializableHash = isSerializableHash;\n// TODO(dchest): figure out the standardized interface for XOF such as\n// SHAKE and BLAKE2X.\n//# sourceMappingURL=hash.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar hmac_1 = require(\"@stablelib/hmac\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC-based Extract-and-Expand Key Derivation Function.\n *\n * Implements HKDF from RFC5869.\n *\n * Expands the given master key with salt and info into\n * a limited stream of key material.\n */\nvar HKDF = /** @class */ (function () {\n /**\n * Create a new HKDF instance for the given hash function\n * with the master key, optional salt, and info.\n *\n * - Master key is a high-entropy secret key (not a password).\n * - Salt is a non-secret random value.\n * - Info is application- and/or context-specific information.\n */\n function HKDF(hash, key, salt, info) {\n if (salt === void 0) { salt = new Uint8Array(0); }\n this._counter = new Uint8Array(1); // starts with zero\n this._hash = hash;\n this._info = info;\n // HKDF-Extract uses salt as HMAC key, and key as data.\n var okm = hmac_1.hmac(this._hash, salt, key);\n // Initialize HMAC for expanding with extracted key.\n this._hmac = new hmac_1.HMAC(hash, okm);\n // Allocate buffer.\n this._buffer = new Uint8Array(this._hmac.digestLength);\n this._bufpos = this._buffer.length;\n }\n // Fill buffer with new block of HKDF-Extract output.\n HKDF.prototype._fillBuffer = function () {\n // Increment counter.\n this._counter[0]++;\n var ctr = this._counter[0];\n // Check if counter overflowed.\n if (ctr === 0) {\n throw new Error(\"hkdf: cannot expand more\");\n }\n // Prepare HMAC instance for new data with old key.\n this._hmac.reset();\n // Hash in previous output if it was generated\n // (i.e. counter is greater than 1).\n if (ctr > 1) {\n this._hmac.update(this._buffer);\n }\n // Hash in info if it exists.\n if (this._info) {\n this._hmac.update(this._info);\n }\n // Hash in the counter.\n this._hmac.update(this._counter);\n // Output result to buffer and clean HMAC instance.\n this._hmac.finish(this._buffer);\n // Reset buffer position.\n this._bufpos = 0;\n };\n /**\n * Expand returns next key material of the given length.\n *\n * It throws if expansion limit is reached (which is\n * 254 digests of the underlying HMAC function).\n */\n HKDF.prototype.expand = function (length) {\n var out = new Uint8Array(length);\n for (var i = 0; i < out.length; i++) {\n if (this._bufpos === this._buffer.length) {\n this._fillBuffer();\n }\n out[i] = this._buffer[this._bufpos++];\n }\n return out;\n };\n HKDF.prototype.clean = function () {\n this._hmac.clean();\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._counter);\n this._bufpos = 0;\n };\n return HKDF;\n}());\nexports.HKDF = HKDF;\n// TODO(dchest): maybe implement deriveKey?\n//# sourceMappingURL=hkdf.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package hmac implements HMAC algorithm.\n */\nvar hash_1 = require(\"@stablelib/hash\");\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\n/**\n * HMAC implements hash-based message authentication algorithm.\n */\nvar HMAC = /** @class */ (function () {\n /**\n * Constructs a new HMAC with the given Hash and secret key.\n */\n function HMAC(hash, key) {\n this._finished = false; // true if HMAC was finalized\n // Initialize inner and outer hashes.\n this._inner = new hash();\n this._outer = new hash();\n // Set block and digest sizes for this HMAC\n // instance to values from the hash.\n this.blockSize = this._outer.blockSize;\n this.digestLength = this._outer.digestLength;\n // Pad temporary stores a key (or its hash) padded with zeroes.\n var pad = new Uint8Array(this.blockSize);\n if (key.length > this.blockSize) {\n // If key is bigger than hash block size, it must be\n // hashed and this hash is used as a key instead.\n this._inner.update(key).finish(pad).clean();\n }\n else {\n // Otherwise, copy the key into pad.\n pad.set(key);\n }\n // Now two different keys are derived from padded key\n // by xoring a different byte value to each.\n // To make inner hash key, xor byte 0x36 into pad.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36;\n }\n // Update inner hash with the result.\n this._inner.update(pad);\n // To make outer hash key, xor byte 0x5c into pad.\n // But since we already xored 0x36 there, we must\n // first undo this by xoring it again.\n for (var i = 0; i < pad.length; i++) {\n pad[i] ^= 0x36 ^ 0x5c;\n }\n // Update outer hash with the result.\n this._outer.update(pad);\n // Save states of both hashes, so that we can quickly restore\n // them later in reset() without the need to remember the actual\n // key and perform this initialization again.\n if (hash_1.isSerializableHash(this._inner) && hash_1.isSerializableHash(this._outer)) {\n this._innerKeyedState = this._inner.saveState();\n this._outerKeyedState = this._outer.saveState();\n }\n // Clean pad.\n wipe_1.wipe(pad);\n }\n /**\n * Returns HMAC state to the state initialized with key\n * to make it possible to run HMAC over the other data with the same\n * key without creating a new instance.\n */\n HMAC.prototype.reset = function () {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't reset() because hash doesn't implement restoreState()\");\n }\n // Restore keyed states of inner and outer hashes.\n this._inner.restoreState(this._innerKeyedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n /**\n * Cleans HMAC state.\n */\n HMAC.prototype.clean = function () {\n if (hash_1.isSerializableHash(this._inner)) {\n this._inner.cleanSavedState(this._innerKeyedState);\n }\n if (hash_1.isSerializableHash(this._outer)) {\n this._outer.cleanSavedState(this._outerKeyedState);\n }\n this._inner.clean();\n this._outer.clean();\n };\n /**\n * Updates state with provided data.\n */\n HMAC.prototype.update = function (data) {\n this._inner.update(data);\n return this;\n };\n /**\n * Finalizes HMAC and puts the result in out.\n */\n HMAC.prototype.finish = function (out) {\n if (this._finished) {\n // If HMAC was finalized, outer hash is also finalized,\n // so it produces the same digest it produced when it\n // was finalized.\n this._outer.finish(out);\n return this;\n }\n // Finalize inner hash and store the result temporarily.\n this._inner.finish(out);\n // Update outer hash with digest of inner hash and and finalize it.\n this._outer.update(out.subarray(0, this.digestLength)).finish(out);\n this._finished = true;\n return this;\n };\n /**\n * Returns the computed message authentication code.\n */\n HMAC.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Saves HMAC state.\n * This function is needed for PBKDF2 optimization.\n */\n HMAC.prototype.saveState = function () {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't saveState() because hash doesn't implement it\");\n }\n return this._inner.saveState();\n };\n HMAC.prototype.restoreState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner) || !hash_1.isSerializableHash(this._outer)) {\n throw new Error(\"hmac: can't restoreState() because hash doesn't implement it\");\n }\n this._inner.restoreState(savedState);\n this._outer.restoreState(this._outerKeyedState);\n this._finished = false;\n return this;\n };\n HMAC.prototype.cleanSavedState = function (savedState) {\n if (!hash_1.isSerializableHash(this._inner)) {\n throw new Error(\"hmac: can't cleanSavedState() because hash doesn't implement it\");\n }\n this._inner.cleanSavedState(savedState);\n };\n return HMAC;\n}());\nexports.HMAC = HMAC;\n/**\n * Returns HMAC using the given hash constructor for the key over data.\n */\nfunction hmac(hash, key, data) {\n var h = new HMAC(hash, key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hmac = hmac;\n/**\n * Returns true if two HMAC digests are equal.\n * Uses constant-time comparison to avoid leaking timing information.\n *\n * Example:\n *\n * const receivedDigest = ...\n * const realDigest = hmac(SHA256, key, data);\n * if (!equal(receivedDigest, realDigest)) {\n * throw new Error(\"Authentication error\");\n * }\n */\nexports.equal = constant_time_1.equal;\n//# sourceMappingURL=hmac.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package int provides helper functions for integerss.\n */\n// Shim using 16-bit pieces.\nfunction imulShim(a, b) {\n var ah = (a >>> 16) & 0xffff, al = a & 0xffff;\n var bh = (b >>> 16) & 0xffff, bl = b & 0xffff;\n return ((al * bl) + (((ah * bl + al * bh) << 16) >>> 0) | 0);\n}\n/** 32-bit integer multiplication. */\n// Use system Math.imul if available, otherwise use our shim.\nexports.mul = Math.imul || imulShim;\n/** 32-bit integer addition. */\nfunction add(a, b) {\n return (a + b) | 0;\n}\nexports.add = add;\n/** 32-bit integer subtraction. */\nfunction sub(a, b) {\n return (a - b) | 0;\n}\nexports.sub = sub;\n/** 32-bit integer left rotation */\nfunction rotl(x, n) {\n return x << n | x >>> (32 - n);\n}\nexports.rotl = rotl;\n/** 32-bit integer left rotation */\nfunction rotr(x, n) {\n return x << (32 - n) | x >>> n;\n}\nexports.rotr = rotr;\nfunction isIntegerShim(n) {\n return typeof n === \"number\" && isFinite(n) && Math.floor(n) === n;\n}\n/**\n * Returns true if the argument is an integer number.\n *\n * In ES2015, Number.isInteger.\n */\nexports.isInteger = Number.isInteger || isIntegerShim;\n/**\n * Math.pow(2, 53) - 1\n *\n * In ES2015 Number.MAX_SAFE_INTEGER.\n */\nexports.MAX_SAFE_INTEGER = 9007199254740991;\n/**\n * Returns true if the argument is a safe integer number\n * (-MIN_SAFE_INTEGER < number <= MAX_SAFE_INTEGER)\n *\n * In ES2015, Number.isSafeInteger.\n */\nexports.isSafeInteger = function (n) {\n return exports.isInteger(n) && (n >= -exports.MAX_SAFE_INTEGER && n <= exports.MAX_SAFE_INTEGER);\n};\n//# sourceMappingURL=int.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Package poly1305 implements Poly1305 one-time message authentication algorithm.\n */\nvar constant_time_1 = require(\"@stablelib/constant-time\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 16;\n// Port of Andrew Moon's Poly1305-donna-16. Public domain.\n// https://github.com/floodyberry/poly1305-donna\n/**\n * Poly1305 computes 16-byte authenticator of message using\n * a one-time 32-byte key.\n *\n * Important: key should be used for only one message,\n * it should never repeat.\n */\nvar Poly1305 = /** @class */ (function () {\n function Poly1305(key) {\n this.digestLength = exports.DIGEST_LENGTH;\n this._buffer = new Uint8Array(16);\n this._r = new Uint16Array(10);\n this._h = new Uint16Array(10);\n this._pad = new Uint16Array(8);\n this._leftover = 0;\n this._fin = 0;\n this._finished = false;\n var t0 = key[0] | key[1] << 8;\n this._r[0] = (t0) & 0x1fff;\n var t1 = key[2] | key[3] << 8;\n this._r[1] = ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = key[4] | key[5] << 8;\n this._r[2] = ((t1 >>> 10) | (t2 << 6)) & 0x1f03;\n var t3 = key[6] | key[7] << 8;\n this._r[3] = ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = key[8] | key[9] << 8;\n this._r[4] = ((t3 >>> 4) | (t4 << 12)) & 0x00ff;\n this._r[5] = ((t4 >>> 1)) & 0x1ffe;\n var t5 = key[10] | key[11] << 8;\n this._r[6] = ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = key[12] | key[13] << 8;\n this._r[7] = ((t5 >>> 11) | (t6 << 5)) & 0x1f81;\n var t7 = key[14] | key[15] << 8;\n this._r[8] = ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n this._r[9] = ((t7 >>> 5)) & 0x007f;\n this._pad[0] = key[16] | key[17] << 8;\n this._pad[1] = key[18] | key[19] << 8;\n this._pad[2] = key[20] | key[21] << 8;\n this._pad[3] = key[22] | key[23] << 8;\n this._pad[4] = key[24] | key[25] << 8;\n this._pad[5] = key[26] | key[27] << 8;\n this._pad[6] = key[28] | key[29] << 8;\n this._pad[7] = key[30] | key[31] << 8;\n }\n Poly1305.prototype._blocks = function (m, mpos, bytes) {\n var hibit = this._fin ? 0 : 1 << 11;\n var h0 = this._h[0], h1 = this._h[1], h2 = this._h[2], h3 = this._h[3], h4 = this._h[4], h5 = this._h[5], h6 = this._h[6], h7 = this._h[7], h8 = this._h[8], h9 = this._h[9];\n var r0 = this._r[0], r1 = this._r[1], r2 = this._r[2], r3 = this._r[3], r4 = this._r[4], r5 = this._r[5], r6 = this._r[6], r7 = this._r[7], r8 = this._r[8], r9 = this._r[9];\n while (bytes >= 16) {\n var t0 = m[mpos + 0] | m[mpos + 1] << 8;\n h0 += (t0) & 0x1fff;\n var t1 = m[mpos + 2] | m[mpos + 3] << 8;\n h1 += ((t0 >>> 13) | (t1 << 3)) & 0x1fff;\n var t2 = m[mpos + 4] | m[mpos + 5] << 8;\n h2 += ((t1 >>> 10) | (t2 << 6)) & 0x1fff;\n var t3 = m[mpos + 6] | m[mpos + 7] << 8;\n h3 += ((t2 >>> 7) | (t3 << 9)) & 0x1fff;\n var t4 = m[mpos + 8] | m[mpos + 9] << 8;\n h4 += ((t3 >>> 4) | (t4 << 12)) & 0x1fff;\n h5 += ((t4 >>> 1)) & 0x1fff;\n var t5 = m[mpos + 10] | m[mpos + 11] << 8;\n h6 += ((t4 >>> 14) | (t5 << 2)) & 0x1fff;\n var t6 = m[mpos + 12] | m[mpos + 13] << 8;\n h7 += ((t5 >>> 11) | (t6 << 5)) & 0x1fff;\n var t7 = m[mpos + 14] | m[mpos + 15] << 8;\n h8 += ((t6 >>> 8) | (t7 << 8)) & 0x1fff;\n h9 += ((t7 >>> 5)) | hibit;\n var c = 0;\n var d0 = c;\n d0 += h0 * r0;\n d0 += h1 * (5 * r9);\n d0 += h2 * (5 * r8);\n d0 += h3 * (5 * r7);\n d0 += h4 * (5 * r6);\n c = (d0 >>> 13);\n d0 &= 0x1fff;\n d0 += h5 * (5 * r5);\n d0 += h6 * (5 * r4);\n d0 += h7 * (5 * r3);\n d0 += h8 * (5 * r2);\n d0 += h9 * (5 * r1);\n c += (d0 >>> 13);\n d0 &= 0x1fff;\n var d1 = c;\n d1 += h0 * r1;\n d1 += h1 * r0;\n d1 += h2 * (5 * r9);\n d1 += h3 * (5 * r8);\n d1 += h4 * (5 * r7);\n c = (d1 >>> 13);\n d1 &= 0x1fff;\n d1 += h5 * (5 * r6);\n d1 += h6 * (5 * r5);\n d1 += h7 * (5 * r4);\n d1 += h8 * (5 * r3);\n d1 += h9 * (5 * r2);\n c += (d1 >>> 13);\n d1 &= 0x1fff;\n var d2 = c;\n d2 += h0 * r2;\n d2 += h1 * r1;\n d2 += h2 * r0;\n d2 += h3 * (5 * r9);\n d2 += h4 * (5 * r8);\n c = (d2 >>> 13);\n d2 &= 0x1fff;\n d2 += h5 * (5 * r7);\n d2 += h6 * (5 * r6);\n d2 += h7 * (5 * r5);\n d2 += h8 * (5 * r4);\n d2 += h9 * (5 * r3);\n c += (d2 >>> 13);\n d2 &= 0x1fff;\n var d3 = c;\n d3 += h0 * r3;\n d3 += h1 * r2;\n d3 += h2 * r1;\n d3 += h3 * r0;\n d3 += h4 * (5 * r9);\n c = (d3 >>> 13);\n d3 &= 0x1fff;\n d3 += h5 * (5 * r8);\n d3 += h6 * (5 * r7);\n d3 += h7 * (5 * r6);\n d3 += h8 * (5 * r5);\n d3 += h9 * (5 * r4);\n c += (d3 >>> 13);\n d3 &= 0x1fff;\n var d4 = c;\n d4 += h0 * r4;\n d4 += h1 * r3;\n d4 += h2 * r2;\n d4 += h3 * r1;\n d4 += h4 * r0;\n c = (d4 >>> 13);\n d4 &= 0x1fff;\n d4 += h5 * (5 * r9);\n d4 += h6 * (5 * r8);\n d4 += h7 * (5 * r7);\n d4 += h8 * (5 * r6);\n d4 += h9 * (5 * r5);\n c += (d4 >>> 13);\n d4 &= 0x1fff;\n var d5 = c;\n d5 += h0 * r5;\n d5 += h1 * r4;\n d5 += h2 * r3;\n d5 += h3 * r2;\n d5 += h4 * r1;\n c = (d5 >>> 13);\n d5 &= 0x1fff;\n d5 += h5 * r0;\n d5 += h6 * (5 * r9);\n d5 += h7 * (5 * r8);\n d5 += h8 * (5 * r7);\n d5 += h9 * (5 * r6);\n c += (d5 >>> 13);\n d5 &= 0x1fff;\n var d6 = c;\n d6 += h0 * r6;\n d6 += h1 * r5;\n d6 += h2 * r4;\n d6 += h3 * r3;\n d6 += h4 * r2;\n c = (d6 >>> 13);\n d6 &= 0x1fff;\n d6 += h5 * r1;\n d6 += h6 * r0;\n d6 += h7 * (5 * r9);\n d6 += h8 * (5 * r8);\n d6 += h9 * (5 * r7);\n c += (d6 >>> 13);\n d6 &= 0x1fff;\n var d7 = c;\n d7 += h0 * r7;\n d7 += h1 * r6;\n d7 += h2 * r5;\n d7 += h3 * r4;\n d7 += h4 * r3;\n c = (d7 >>> 13);\n d7 &= 0x1fff;\n d7 += h5 * r2;\n d7 += h6 * r1;\n d7 += h7 * r0;\n d7 += h8 * (5 * r9);\n d7 += h9 * (5 * r8);\n c += (d7 >>> 13);\n d7 &= 0x1fff;\n var d8 = c;\n d8 += h0 * r8;\n d8 += h1 * r7;\n d8 += h2 * r6;\n d8 += h3 * r5;\n d8 += h4 * r4;\n c = (d8 >>> 13);\n d8 &= 0x1fff;\n d8 += h5 * r3;\n d8 += h6 * r2;\n d8 += h7 * r1;\n d8 += h8 * r0;\n d8 += h9 * (5 * r9);\n c += (d8 >>> 13);\n d8 &= 0x1fff;\n var d9 = c;\n d9 += h0 * r9;\n d9 += h1 * r8;\n d9 += h2 * r7;\n d9 += h3 * r6;\n d9 += h4 * r5;\n c = (d9 >>> 13);\n d9 &= 0x1fff;\n d9 += h5 * r4;\n d9 += h6 * r3;\n d9 += h7 * r2;\n d9 += h8 * r1;\n d9 += h9 * r0;\n c += (d9 >>> 13);\n d9 &= 0x1fff;\n c = (((c << 2) + c)) | 0;\n c = (c + d0) | 0;\n d0 = c & 0x1fff;\n c = (c >>> 13);\n d1 += c;\n h0 = d0;\n h1 = d1;\n h2 = d2;\n h3 = d3;\n h4 = d4;\n h5 = d5;\n h6 = d6;\n h7 = d7;\n h8 = d8;\n h9 = d9;\n mpos += 16;\n bytes -= 16;\n }\n this._h[0] = h0;\n this._h[1] = h1;\n this._h[2] = h2;\n this._h[3] = h3;\n this._h[4] = h4;\n this._h[5] = h5;\n this._h[6] = h6;\n this._h[7] = h7;\n this._h[8] = h8;\n this._h[9] = h9;\n };\n Poly1305.prototype.finish = function (mac, macpos) {\n if (macpos === void 0) { macpos = 0; }\n var g = new Uint16Array(10);\n var c;\n var mask;\n var f;\n var i;\n if (this._leftover) {\n i = this._leftover;\n this._buffer[i++] = 1;\n for (; i < 16; i++) {\n this._buffer[i] = 0;\n }\n this._fin = 1;\n this._blocks(this._buffer, 0, 16);\n }\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n for (i = 2; i < 10; i++) {\n this._h[i] += c;\n c = this._h[i] >>> 13;\n this._h[i] &= 0x1fff;\n }\n this._h[0] += (c * 5);\n c = this._h[0] >>> 13;\n this._h[0] &= 0x1fff;\n this._h[1] += c;\n c = this._h[1] >>> 13;\n this._h[1] &= 0x1fff;\n this._h[2] += c;\n g[0] = this._h[0] + 5;\n c = g[0] >>> 13;\n g[0] &= 0x1fff;\n for (i = 1; i < 10; i++) {\n g[i] = this._h[i] + c;\n c = g[i] >>> 13;\n g[i] &= 0x1fff;\n }\n g[9] -= (1 << 13);\n mask = (c ^ 1) - 1;\n for (i = 0; i < 10; i++) {\n g[i] &= mask;\n }\n mask = ~mask;\n for (i = 0; i < 10; i++) {\n this._h[i] = (this._h[i] & mask) | g[i];\n }\n this._h[0] = ((this._h[0]) | (this._h[1] << 13)) & 0xffff;\n this._h[1] = ((this._h[1] >>> 3) | (this._h[2] << 10)) & 0xffff;\n this._h[2] = ((this._h[2] >>> 6) | (this._h[3] << 7)) & 0xffff;\n this._h[3] = ((this._h[3] >>> 9) | (this._h[4] << 4)) & 0xffff;\n this._h[4] = ((this._h[4] >>> 12) | (this._h[5] << 1) | (this._h[6] << 14)) & 0xffff;\n this._h[5] = ((this._h[6] >>> 2) | (this._h[7] << 11)) & 0xffff;\n this._h[6] = ((this._h[7] >>> 5) | (this._h[8] << 8)) & 0xffff;\n this._h[7] = ((this._h[8] >>> 8) | (this._h[9] << 5)) & 0xffff;\n f = this._h[0] + this._pad[0];\n this._h[0] = f & 0xffff;\n for (i = 1; i < 8; i++) {\n f = (((this._h[i] + this._pad[i]) | 0) + (f >>> 16)) | 0;\n this._h[i] = f & 0xffff;\n }\n mac[macpos + 0] = this._h[0] >>> 0;\n mac[macpos + 1] = this._h[0] >>> 8;\n mac[macpos + 2] = this._h[1] >>> 0;\n mac[macpos + 3] = this._h[1] >>> 8;\n mac[macpos + 4] = this._h[2] >>> 0;\n mac[macpos + 5] = this._h[2] >>> 8;\n mac[macpos + 6] = this._h[3] >>> 0;\n mac[macpos + 7] = this._h[3] >>> 8;\n mac[macpos + 8] = this._h[4] >>> 0;\n mac[macpos + 9] = this._h[4] >>> 8;\n mac[macpos + 10] = this._h[5] >>> 0;\n mac[macpos + 11] = this._h[5] >>> 8;\n mac[macpos + 12] = this._h[6] >>> 0;\n mac[macpos + 13] = this._h[6] >>> 8;\n mac[macpos + 14] = this._h[7] >>> 0;\n mac[macpos + 15] = this._h[7] >>> 8;\n this._finished = true;\n return this;\n };\n Poly1305.prototype.update = function (m) {\n var mpos = 0;\n var bytes = m.length;\n var want;\n if (this._leftover) {\n want = (16 - this._leftover);\n if (want > bytes) {\n want = bytes;\n }\n for (var i = 0; i < want; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n bytes -= want;\n mpos += want;\n this._leftover += want;\n if (this._leftover < 16) {\n return this;\n }\n this._blocks(this._buffer, 0, 16);\n this._leftover = 0;\n }\n if (bytes >= 16) {\n want = bytes - (bytes % 16);\n this._blocks(m, mpos, want);\n mpos += want;\n bytes -= want;\n }\n if (bytes) {\n for (var i = 0; i < bytes; i++) {\n this._buffer[this._leftover + i] = m[mpos + i];\n }\n this._leftover += bytes;\n }\n return this;\n };\n Poly1305.prototype.digest = function () {\n // TODO(dchest): it behaves differently than other hashes/HMAC,\n // because it throws when finished — others just return saved result.\n if (this._finished) {\n throw new Error(\"Poly1305 was finished\");\n }\n var mac = new Uint8Array(16);\n this.finish(mac);\n return mac;\n };\n Poly1305.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._r);\n wipe_1.wipe(this._h);\n wipe_1.wipe(this._pad);\n this._leftover = 0;\n this._fin = 0;\n this._finished = true; // mark as finished even if not\n return this;\n };\n return Poly1305;\n}());\nexports.Poly1305 = Poly1305;\n/**\n * Returns 16-byte authenticator of data using a one-time 32-byte key.\n *\n * Important: key should be used for only one message, it should never repeat.\n */\nfunction oneTimeAuth(key, data) {\n var h = new Poly1305(key);\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.oneTimeAuth = oneTimeAuth;\n/**\n * Returns true if two authenticators are 16-byte long and equal.\n * Uses contant-time comparison to avoid leaking timing information.\n */\nfunction equal(a, b) {\n if (a.length !== exports.DIGEST_LENGTH || b.length !== exports.DIGEST_LENGTH) {\n return false;\n }\n return constant_time_1.equal(a, b);\n}\nexports.equal = equal;\n//# sourceMappingURL=poly1305.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.randomStringForEntropy = exports.randomString = exports.randomUint32 = exports.randomBytes = exports.defaultRandomSource = void 0;\nconst system_1 = require(\"./source/system\");\nconst binary_1 = require(\"@stablelib/binary\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.defaultRandomSource = new system_1.SystemRandomSource();\nfunction randomBytes(length, prng = exports.defaultRandomSource) {\n return prng.randomBytes(length);\n}\nexports.randomBytes = randomBytes;\n/**\n * Returns a uniformly random unsigned 32-bit integer.\n */\nfunction randomUint32(prng = exports.defaultRandomSource) {\n // Generate 4-byte random buffer.\n const buf = randomBytes(4, prng);\n // Convert bytes from buffer into a 32-bit integer.\n // It's not important which byte order to use, since\n // the result is random.\n const result = (0, binary_1.readUint32LE)(buf);\n // Clean the buffer.\n (0, wipe_1.wipe)(buf);\n return result;\n}\nexports.randomUint32 = randomUint32;\n/** 62 alphanumeric characters for default charset of randomString() */\nconst ALPHANUMERIC = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\";\n/**\n * Returns a uniform random string of the given length\n * with characters from the given charset.\n *\n * Charset must not have more than 256 characters.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomString(length, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n if (charset.length < 2) {\n throw new Error(\"randomString charset is too short\");\n }\n if (charset.length > 256) {\n throw new Error(\"randomString charset is too long\");\n }\n let out = '';\n const charsLen = charset.length;\n const maxByte = 256 - (256 % charsLen);\n while (length > 0) {\n const buf = randomBytes(Math.ceil(length * 256 / maxByte), prng);\n for (let i = 0; i < buf.length && length > 0; i++) {\n const randomByte = buf[i];\n if (randomByte < maxByte) {\n out += charset.charAt(randomByte % charsLen);\n length--;\n }\n }\n (0, wipe_1.wipe)(buf);\n }\n return out;\n}\nexports.randomString = randomString;\n/**\n * Returns uniform random string containing at least the given\n * number of bits of entropy.\n *\n * For example, randomStringForEntropy(128) will return a 22-character\n * alphanumeric string, while randomStringForEntropy(128, \"0123456789\")\n * will return a 39-character numeric string, both will contain at\n * least 128 bits of entropy.\n *\n * Default charset generates case-sensitive alphanumeric\n * strings (0-9, A-Z, a-z).\n */\nfunction randomStringForEntropy(bits, charset = ALPHANUMERIC, prng = exports.defaultRandomSource) {\n const length = Math.ceil(bits / (Math.log(charset.length) / Math.LN2));\n return randomString(length, charset, prng);\n}\nexports.randomStringForEntropy = randomStringForEntropy;\n//# sourceMappingURL=random.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BrowserRandomSource = void 0;\nconst QUOTA = 65536;\nclass BrowserRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n const browserCrypto = typeof self !== 'undefined'\n ? (self.crypto || self.msCrypto) // IE11 has msCrypto\n : null;\n if (browserCrypto && browserCrypto.getRandomValues !== undefined) {\n this._crypto = browserCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Browser random byte generator is not available.\");\n }\n const out = new Uint8Array(length);\n for (let i = 0; i < out.length; i += QUOTA) {\n this._crypto.getRandomValues(out.subarray(i, i + Math.min(out.length - i, QUOTA)));\n }\n return out;\n }\n}\nexports.BrowserRandomSource = BrowserRandomSource;\n//# sourceMappingURL=browser.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NodeRandomSource = void 0;\nconst wipe_1 = require(\"@stablelib/wipe\");\nclass NodeRandomSource {\n constructor() {\n this.isAvailable = false;\n this.isInstantiated = false;\n if (typeof require !== \"undefined\") {\n const nodeCrypto = require(\"crypto\");\n if (nodeCrypto && nodeCrypto.randomBytes) {\n this._crypto = nodeCrypto;\n this.isAvailable = true;\n this.isInstantiated = true;\n }\n }\n }\n randomBytes(length) {\n if (!this.isAvailable || !this._crypto) {\n throw new Error(\"Node.js random byte generator is not available.\");\n }\n // Get random bytes (result is Buffer).\n let buffer = this._crypto.randomBytes(length);\n // Make sure we got the length that we requested.\n if (buffer.length !== length) {\n throw new Error(\"NodeRandomSource: got fewer bytes than requested\");\n }\n // Allocate output array.\n const out = new Uint8Array(length);\n // Copy bytes from buffer to output.\n for (let i = 0; i < out.length; i++) {\n out[i] = buffer[i];\n }\n // Cleanup.\n (0, wipe_1.wipe)(buffer);\n return out;\n }\n}\nexports.NodeRandomSource = NodeRandomSource;\n//# sourceMappingURL=node.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SystemRandomSource = void 0;\nconst browser_1 = require(\"./browser\");\nconst node_1 = require(\"./node\");\nclass SystemRandomSource {\n constructor() {\n this.isAvailable = false;\n this.name = \"\";\n // Try browser.\n this._source = new browser_1.BrowserRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Browser\";\n return;\n }\n // If no browser source, try Node.\n this._source = new node_1.NodeRandomSource();\n if (this._source.isAvailable) {\n this.isAvailable = true;\n this.name = \"Node\";\n return;\n }\n // No sources, we're out of options.\n }\n randomBytes(length) {\n if (!this.isAvailable) {\n throw new Error(\"System random byte generator is not available.\");\n }\n return this._source.randomBytes(length);\n }\n}\nexports.SystemRandomSource = SystemRandomSource;\n//# sourceMappingURL=system.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar binary_1 = require(\"@stablelib/binary\");\nvar wipe_1 = require(\"@stablelib/wipe\");\nexports.DIGEST_LENGTH = 32;\nexports.BLOCK_SIZE = 64;\n/**\n * SHA2-256 cryptographic hash algorithm.\n */\nvar SHA256 = /** @class */ (function () {\n function SHA256() {\n /** Length of hash output */\n this.digestLength = exports.DIGEST_LENGTH;\n /** Block size */\n this.blockSize = exports.BLOCK_SIZE;\n // Note: Int32Array is used instead of Uint32Array for performance reasons.\n this._state = new Int32Array(8); // hash state\n this._temp = new Int32Array(64); // temporary state\n this._buffer = new Uint8Array(128); // buffer for data to hash\n this._bufferLength = 0; // number of bytes in buffer\n this._bytesHashed = 0; // number of total bytes hashed\n this._finished = false; // indicates whether the hash was finalized\n this.reset();\n }\n SHA256.prototype._initState = function () {\n this._state[0] = 0x6a09e667;\n this._state[1] = 0xbb67ae85;\n this._state[2] = 0x3c6ef372;\n this._state[3] = 0xa54ff53a;\n this._state[4] = 0x510e527f;\n this._state[5] = 0x9b05688c;\n this._state[6] = 0x1f83d9ab;\n this._state[7] = 0x5be0cd19;\n };\n /**\n * Resets hash state making it possible\n * to re-use this instance to hash other data.\n */\n SHA256.prototype.reset = function () {\n this._initState();\n this._bufferLength = 0;\n this._bytesHashed = 0;\n this._finished = false;\n return this;\n };\n /**\n * Cleans internal buffers and resets hash state.\n */\n SHA256.prototype.clean = function () {\n wipe_1.wipe(this._buffer);\n wipe_1.wipe(this._temp);\n this.reset();\n };\n /**\n * Updates hash state with the given data.\n *\n * Throws error when trying to update already finalized hash:\n * instance must be reset to update it again.\n */\n SHA256.prototype.update = function (data, dataLength) {\n if (dataLength === void 0) { dataLength = data.length; }\n if (this._finished) {\n throw new Error(\"SHA256: can't update because hash was finished.\");\n }\n var dataPos = 0;\n this._bytesHashed += dataLength;\n if (this._bufferLength > 0) {\n while (this._bufferLength < this.blockSize && dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n if (this._bufferLength === this.blockSize) {\n hashBlocks(this._temp, this._state, this._buffer, 0, this.blockSize);\n this._bufferLength = 0;\n }\n }\n if (dataLength >= this.blockSize) {\n dataPos = hashBlocks(this._temp, this._state, data, dataPos, dataLength);\n dataLength %= this.blockSize;\n }\n while (dataLength > 0) {\n this._buffer[this._bufferLength++] = data[dataPos++];\n dataLength--;\n }\n return this;\n };\n /**\n * Finalizes hash state and puts hash into out.\n * If hash was already finalized, puts the same value.\n */\n SHA256.prototype.finish = function (out) {\n if (!this._finished) {\n var bytesHashed = this._bytesHashed;\n var left = this._bufferLength;\n var bitLenHi = (bytesHashed / 0x20000000) | 0;\n var bitLenLo = bytesHashed << 3;\n var padLength = (bytesHashed % 64 < 56) ? 64 : 128;\n this._buffer[left] = 0x80;\n for (var i = left + 1; i < padLength - 8; i++) {\n this._buffer[i] = 0;\n }\n binary_1.writeUint32BE(bitLenHi, this._buffer, padLength - 8);\n binary_1.writeUint32BE(bitLenLo, this._buffer, padLength - 4);\n hashBlocks(this._temp, this._state, this._buffer, 0, padLength);\n this._finished = true;\n }\n for (var i = 0; i < this.digestLength / 4; i++) {\n binary_1.writeUint32BE(this._state[i], out, i * 4);\n }\n return this;\n };\n /**\n * Returns the final hash digest.\n */\n SHA256.prototype.digest = function () {\n var out = new Uint8Array(this.digestLength);\n this.finish(out);\n return out;\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Returns hash state to be used with restoreState().\n * Only chain value is saved, not buffers or other\n * state variables.\n */\n SHA256.prototype.saveState = function () {\n if (this._finished) {\n throw new Error(\"SHA256: cannot save finished state\");\n }\n return {\n state: new Int32Array(this._state),\n buffer: this._bufferLength > 0 ? new Uint8Array(this._buffer) : undefined,\n bufferLength: this._bufferLength,\n bytesHashed: this._bytesHashed\n };\n };\n /**\n * Function useful for HMAC/PBKDF2 optimization.\n * Restores state saved by saveState() and sets bytesHashed\n * to the given value.\n */\n SHA256.prototype.restoreState = function (savedState) {\n this._state.set(savedState.state);\n this._bufferLength = savedState.bufferLength;\n if (savedState.buffer) {\n this._buffer.set(savedState.buffer);\n }\n this._bytesHashed = savedState.bytesHashed;\n this._finished = false;\n return this;\n };\n /**\n * Cleans state returned by saveState().\n */\n SHA256.prototype.cleanSavedState = function (savedState) {\n wipe_1.wipe(savedState.state);\n if (savedState.buffer) {\n wipe_1.wipe(savedState.buffer);\n }\n savedState.bufferLength = 0;\n savedState.bytesHashed = 0;\n };\n return SHA256;\n}());\nexports.SHA256 = SHA256;\n// Constants\nvar K = new Int32Array([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b,\n 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01,\n 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7,\n 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152,\n 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147,\n 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc,\n 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819,\n 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08,\n 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f,\n 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\nfunction hashBlocks(w, v, p, pos, len) {\n while (len >= 64) {\n var a = v[0];\n var b = v[1];\n var c = v[2];\n var d = v[3];\n var e = v[4];\n var f = v[5];\n var g = v[6];\n var h = v[7];\n for (var i = 0; i < 16; i++) {\n var j = pos + i * 4;\n w[i] = binary_1.readUint32BE(p, j);\n }\n for (var i = 16; i < 64; i++) {\n var u = w[i - 2];\n var t1 = (u >>> 17 | u << (32 - 17)) ^ (u >>> 19 | u << (32 - 19)) ^ (u >>> 10);\n u = w[i - 15];\n var t2 = (u >>> 7 | u << (32 - 7)) ^ (u >>> 18 | u << (32 - 18)) ^ (u >>> 3);\n w[i] = (t1 + w[i - 7] | 0) + (t2 + w[i - 16] | 0);\n }\n for (var i = 0; i < 64; i++) {\n var t1 = (((((e >>> 6 | e << (32 - 6)) ^ (e >>> 11 | e << (32 - 11)) ^\n (e >>> 25 | e << (32 - 25))) + ((e & f) ^ (~e & g))) | 0) +\n ((h + ((K[i] + w[i]) | 0)) | 0)) | 0;\n var t2 = (((a >>> 2 | a << (32 - 2)) ^ (a >>> 13 | a << (32 - 13)) ^\n (a >>> 22 | a << (32 - 22))) + ((a & b) ^ (a & c) ^ (b & c))) | 0;\n h = g;\n g = f;\n f = e;\n e = (d + t1) | 0;\n d = c;\n c = b;\n b = a;\n a = (t1 + t2) | 0;\n }\n v[0] += a;\n v[1] += b;\n v[2] += c;\n v[3] += d;\n v[4] += e;\n v[5] += f;\n v[6] += g;\n v[7] += h;\n pos += 64;\n len -= 64;\n }\n return pos;\n}\nfunction hash(data) {\n var h = new SHA256();\n h.update(data);\n var digest = h.digest();\n h.clean();\n return digest;\n}\nexports.hash = hash;\n//# sourceMappingURL=sha256.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Sets all values in the given array to zero and returns it.\n *\n * The fact that it sets bytes to zero can be relied on.\n *\n * There is no guarantee that this function makes data disappear from memory,\n * as runtime implementation can, for example, have copying garbage collector\n * that will make copies of sensitive data before we wipe it. Or that an\n * operating system will write our data to swap or sleep image. Another thing\n * is that an optimizing compiler can remove calls to this function or make it\n * no-op. There's nothing we can do with it, so we just do our best and hope\n * that everything will be okay and good will triumph over evil.\n */\nfunction wipe(array) {\n // Right now it's similar to array.fill(0). If it turns\n // out that runtimes optimize this call away, maybe\n // we can try something else.\n for (var i = 0; i < array.length; i++) {\n array[i] = 0;\n }\n return array;\n}\nexports.wipe = wipe;\n//# sourceMappingURL=wipe.js.map","\"use strict\";\n// Copyright (C) 2016 Dmitry Chestnykh\n// MIT License. See LICENSE file for details.\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.sharedKey = exports.generateKeyPair = exports.generateKeyPairFromSeed = exports.scalarMultBase = exports.scalarMult = exports.SHARED_KEY_LENGTH = exports.SECRET_KEY_LENGTH = exports.PUBLIC_KEY_LENGTH = void 0;\n/**\n * Package x25519 implements X25519 key agreement.\n */\nconst random_1 = require(\"@stablelib/random\");\nconst wipe_1 = require(\"@stablelib/wipe\");\nexports.PUBLIC_KEY_LENGTH = 32;\nexports.SECRET_KEY_LENGTH = 32;\nexports.SHARED_KEY_LENGTH = 32;\n// Returns new zero-filled 16-element GF (Float64Array).\n// If passed an array of numbers, prefills the returned\n// array with them.\n//\n// We use Float64Array, because we need 48-bit numbers\n// for this implementation.\nfunction gf(init) {\n const r = new Float64Array(16);\n if (init) {\n for (let i = 0; i < init.length; i++) {\n r[i] = init[i];\n }\n }\n return r;\n}\n// Base point.\nconst _9 = new Uint8Array(32);\n_9[0] = 9;\nconst _121665 = gf([0xdb41, 1]);\nfunction car25519(o) {\n let c = 1;\n for (let i = 0; i < 16; i++) {\n let v = o[i] + c + 65535;\n c = Math.floor(v / 65536);\n o[i] = v - c * 65536;\n }\n o[0] += c - 1 + 37 * (c - 1);\n}\nfunction sel25519(p, q, b) {\n const c = ~(b - 1);\n for (let i = 0; i < 16; i++) {\n const t = c & (p[i] ^ q[i]);\n p[i] ^= t;\n q[i] ^= t;\n }\n}\nfunction pack25519(o, n) {\n const m = gf();\n const t = gf();\n for (let i = 0; i < 16; i++) {\n t[i] = n[i];\n }\n car25519(t);\n car25519(t);\n car25519(t);\n for (let j = 0; j < 2; j++) {\n m[0] = t[0] - 0xffed;\n for (let i = 1; i < 15; i++) {\n m[i] = t[i] - 0xffff - ((m[i - 1] >> 16) & 1);\n m[i - 1] &= 0xffff;\n }\n m[15] = t[15] - 0x7fff - ((m[14] >> 16) & 1);\n const b = (m[15] >> 16) & 1;\n m[14] &= 0xffff;\n sel25519(t, m, 1 - b);\n }\n for (let i = 0; i < 16; i++) {\n o[2 * i] = t[i] & 0xff;\n o[2 * i + 1] = t[i] >> 8;\n }\n}\nfunction unpack25519(o, n) {\n for (let i = 0; i < 16; i++) {\n o[i] = n[2 * i] + (n[2 * i + 1] << 8);\n }\n o[15] &= 0x7fff;\n}\nfunction add(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] + b[i];\n }\n}\nfunction sub(o, a, b) {\n for (let i = 0; i < 16; i++) {\n o[i] = a[i] - b[i];\n }\n}\nfunction mul(o, a, b) {\n let v, c, t0 = 0, t1 = 0, t2 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0, t7 = 0, t8 = 0, t9 = 0, t10 = 0, t11 = 0, t12 = 0, t13 = 0, t14 = 0, t15 = 0, t16 = 0, t17 = 0, t18 = 0, t19 = 0, t20 = 0, t21 = 0, t22 = 0, t23 = 0, t24 = 0, t25 = 0, t26 = 0, t27 = 0, t28 = 0, t29 = 0, t30 = 0, b0 = b[0], b1 = b[1], b2 = b[2], b3 = b[3], b4 = b[4], b5 = b[5], b6 = b[6], b7 = b[7], b8 = b[8], b9 = b[9], b10 = b[10], b11 = b[11], b12 = b[12], b13 = b[13], b14 = b[14], b15 = b[15];\n v = a[0];\n t0 += v * b0;\n t1 += v * b1;\n t2 += v * b2;\n t3 += v * b3;\n t4 += v * b4;\n t5 += v * b5;\n t6 += v * b6;\n t7 += v * b7;\n t8 += v * b8;\n t9 += v * b9;\n t10 += v * b10;\n t11 += v * b11;\n t12 += v * b12;\n t13 += v * b13;\n t14 += v * b14;\n t15 += v * b15;\n v = a[1];\n t1 += v * b0;\n t2 += v * b1;\n t3 += v * b2;\n t4 += v * b3;\n t5 += v * b4;\n t6 += v * b5;\n t7 += v * b6;\n t8 += v * b7;\n t9 += v * b8;\n t10 += v * b9;\n t11 += v * b10;\n t12 += v * b11;\n t13 += v * b12;\n t14 += v * b13;\n t15 += v * b14;\n t16 += v * b15;\n v = a[2];\n t2 += v * b0;\n t3 += v * b1;\n t4 += v * b2;\n t5 += v * b3;\n t6 += v * b4;\n t7 += v * b5;\n t8 += v * b6;\n t9 += v * b7;\n t10 += v * b8;\n t11 += v * b9;\n t12 += v * b10;\n t13 += v * b11;\n t14 += v * b12;\n t15 += v * b13;\n t16 += v * b14;\n t17 += v * b15;\n v = a[3];\n t3 += v * b0;\n t4 += v * b1;\n t5 += v * b2;\n t6 += v * b3;\n t7 += v * b4;\n t8 += v * b5;\n t9 += v * b6;\n t10 += v * b7;\n t11 += v * b8;\n t12 += v * b9;\n t13 += v * b10;\n t14 += v * b11;\n t15 += v * b12;\n t16 += v * b13;\n t17 += v * b14;\n t18 += v * b15;\n v = a[4];\n t4 += v * b0;\n t5 += v * b1;\n t6 += v * b2;\n t7 += v * b3;\n t8 += v * b4;\n t9 += v * b5;\n t10 += v * b6;\n t11 += v * b7;\n t12 += v * b8;\n t13 += v * b9;\n t14 += v * b10;\n t15 += v * b11;\n t16 += v * b12;\n t17 += v * b13;\n t18 += v * b14;\n t19 += v * b15;\n v = a[5];\n t5 += v * b0;\n t6 += v * b1;\n t7 += v * b2;\n t8 += v * b3;\n t9 += v * b4;\n t10 += v * b5;\n t11 += v * b6;\n t12 += v * b7;\n t13 += v * b8;\n t14 += v * b9;\n t15 += v * b10;\n t16 += v * b11;\n t17 += v * b12;\n t18 += v * b13;\n t19 += v * b14;\n t20 += v * b15;\n v = a[6];\n t6 += v * b0;\n t7 += v * b1;\n t8 += v * b2;\n t9 += v * b3;\n t10 += v * b4;\n t11 += v * b5;\n t12 += v * b6;\n t13 += v * b7;\n t14 += v * b8;\n t15 += v * b9;\n t16 += v * b10;\n t17 += v * b11;\n t18 += v * b12;\n t19 += v * b13;\n t20 += v * b14;\n t21 += v * b15;\n v = a[7];\n t7 += v * b0;\n t8 += v * b1;\n t9 += v * b2;\n t10 += v * b3;\n t11 += v * b4;\n t12 += v * b5;\n t13 += v * b6;\n t14 += v * b7;\n t15 += v * b8;\n t16 += v * b9;\n t17 += v * b10;\n t18 += v * b11;\n t19 += v * b12;\n t20 += v * b13;\n t21 += v * b14;\n t22 += v * b15;\n v = a[8];\n t8 += v * b0;\n t9 += v * b1;\n t10 += v * b2;\n t11 += v * b3;\n t12 += v * b4;\n t13 += v * b5;\n t14 += v * b6;\n t15 += v * b7;\n t16 += v * b8;\n t17 += v * b9;\n t18 += v * b10;\n t19 += v * b11;\n t20 += v * b12;\n t21 += v * b13;\n t22 += v * b14;\n t23 += v * b15;\n v = a[9];\n t9 += v * b0;\n t10 += v * b1;\n t11 += v * b2;\n t12 += v * b3;\n t13 += v * b4;\n t14 += v * b5;\n t15 += v * b6;\n t16 += v * b7;\n t17 += v * b8;\n t18 += v * b9;\n t19 += v * b10;\n t20 += v * b11;\n t21 += v * b12;\n t22 += v * b13;\n t23 += v * b14;\n t24 += v * b15;\n v = a[10];\n t10 += v * b0;\n t11 += v * b1;\n t12 += v * b2;\n t13 += v * b3;\n t14 += v * b4;\n t15 += v * b5;\n t16 += v * b6;\n t17 += v * b7;\n t18 += v * b8;\n t19 += v * b9;\n t20 += v * b10;\n t21 += v * b11;\n t22 += v * b12;\n t23 += v * b13;\n t24 += v * b14;\n t25 += v * b15;\n v = a[11];\n t11 += v * b0;\n t12 += v * b1;\n t13 += v * b2;\n t14 += v * b3;\n t15 += v * b4;\n t16 += v * b5;\n t17 += v * b6;\n t18 += v * b7;\n t19 += v * b8;\n t20 += v * b9;\n t21 += v * b10;\n t22 += v * b11;\n t23 += v * b12;\n t24 += v * b13;\n t25 += v * b14;\n t26 += v * b15;\n v = a[12];\n t12 += v * b0;\n t13 += v * b1;\n t14 += v * b2;\n t15 += v * b3;\n t16 += v * b4;\n t17 += v * b5;\n t18 += v * b6;\n t19 += v * b7;\n t20 += v * b8;\n t21 += v * b9;\n t22 += v * b10;\n t23 += v * b11;\n t24 += v * b12;\n t25 += v * b13;\n t26 += v * b14;\n t27 += v * b15;\n v = a[13];\n t13 += v * b0;\n t14 += v * b1;\n t15 += v * b2;\n t16 += v * b3;\n t17 += v * b4;\n t18 += v * b5;\n t19 += v * b6;\n t20 += v * b7;\n t21 += v * b8;\n t22 += v * b9;\n t23 += v * b10;\n t24 += v * b11;\n t25 += v * b12;\n t26 += v * b13;\n t27 += v * b14;\n t28 += v * b15;\n v = a[14];\n t14 += v * b0;\n t15 += v * b1;\n t16 += v * b2;\n t17 += v * b3;\n t18 += v * b4;\n t19 += v * b5;\n t20 += v * b6;\n t21 += v * b7;\n t22 += v * b8;\n t23 += v * b9;\n t24 += v * b10;\n t25 += v * b11;\n t26 += v * b12;\n t27 += v * b13;\n t28 += v * b14;\n t29 += v * b15;\n v = a[15];\n t15 += v * b0;\n t16 += v * b1;\n t17 += v * b2;\n t18 += v * b3;\n t19 += v * b4;\n t20 += v * b5;\n t21 += v * b6;\n t22 += v * b7;\n t23 += v * b8;\n t24 += v * b9;\n t25 += v * b10;\n t26 += v * b11;\n t27 += v * b12;\n t28 += v * b13;\n t29 += v * b14;\n t30 += v * b15;\n t0 += 38 * t16;\n t1 += 38 * t17;\n t2 += 38 * t18;\n t3 += 38 * t19;\n t4 += 38 * t20;\n t5 += 38 * t21;\n t6 += 38 * t22;\n t7 += 38 * t23;\n t8 += 38 * t24;\n t9 += 38 * t25;\n t10 += 38 * t26;\n t11 += 38 * t27;\n t12 += 38 * t28;\n t13 += 38 * t29;\n t14 += 38 * t30;\n // t15 left as is\n // first car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n // second car\n c = 1;\n v = t0 + c + 65535;\n c = Math.floor(v / 65536);\n t0 = v - c * 65536;\n v = t1 + c + 65535;\n c = Math.floor(v / 65536);\n t1 = v - c * 65536;\n v = t2 + c + 65535;\n c = Math.floor(v / 65536);\n t2 = v - c * 65536;\n v = t3 + c + 65535;\n c = Math.floor(v / 65536);\n t3 = v - c * 65536;\n v = t4 + c + 65535;\n c = Math.floor(v / 65536);\n t4 = v - c * 65536;\n v = t5 + c + 65535;\n c = Math.floor(v / 65536);\n t5 = v - c * 65536;\n v = t6 + c + 65535;\n c = Math.floor(v / 65536);\n t6 = v - c * 65536;\n v = t7 + c + 65535;\n c = Math.floor(v / 65536);\n t7 = v - c * 65536;\n v = t8 + c + 65535;\n c = Math.floor(v / 65536);\n t8 = v - c * 65536;\n v = t9 + c + 65535;\n c = Math.floor(v / 65536);\n t9 = v - c * 65536;\n v = t10 + c + 65535;\n c = Math.floor(v / 65536);\n t10 = v - c * 65536;\n v = t11 + c + 65535;\n c = Math.floor(v / 65536);\n t11 = v - c * 65536;\n v = t12 + c + 65535;\n c = Math.floor(v / 65536);\n t12 = v - c * 65536;\n v = t13 + c + 65535;\n c = Math.floor(v / 65536);\n t13 = v - c * 65536;\n v = t14 + c + 65535;\n c = Math.floor(v / 65536);\n t14 = v - c * 65536;\n v = t15 + c + 65535;\n c = Math.floor(v / 65536);\n t15 = v - c * 65536;\n t0 += c - 1 + 37 * (c - 1);\n o[0] = t0;\n o[1] = t1;\n o[2] = t2;\n o[3] = t3;\n o[4] = t4;\n o[5] = t5;\n o[6] = t6;\n o[7] = t7;\n o[8] = t8;\n o[9] = t9;\n o[10] = t10;\n o[11] = t11;\n o[12] = t12;\n o[13] = t13;\n o[14] = t14;\n o[15] = t15;\n}\nfunction square(o, a) {\n mul(o, a, a);\n}\nfunction inv25519(o, inp) {\n const c = gf();\n for (let i = 0; i < 16; i++) {\n c[i] = inp[i];\n }\n for (let i = 253; i >= 0; i--) {\n square(c, c);\n if (i !== 2 && i !== 4) {\n mul(c, c, inp);\n }\n }\n for (let i = 0; i < 16; i++) {\n o[i] = c[i];\n }\n}\nfunction scalarMult(n, p) {\n const z = new Uint8Array(32);\n const x = new Float64Array(80);\n const a = gf(), b = gf(), c = gf(), d = gf(), e = gf(), f = gf();\n for (let i = 0; i < 31; i++) {\n z[i] = n[i];\n }\n z[31] = (n[31] & 127) | 64;\n z[0] &= 248;\n unpack25519(x, p);\n for (let i = 0; i < 16; i++) {\n b[i] = x[i];\n }\n a[0] = d[0] = 1;\n for (let i = 254; i >= 0; --i) {\n const r = (z[i >>> 3] >>> (i & 7)) & 1;\n sel25519(a, b, r);\n sel25519(c, d, r);\n add(e, a, c);\n sub(a, a, c);\n add(c, b, d);\n sub(b, b, d);\n square(d, e);\n square(f, a);\n mul(a, c, a);\n mul(c, b, e);\n add(e, a, c);\n sub(a, a, c);\n square(b, a);\n sub(c, d, f);\n mul(a, c, _121665);\n add(a, a, d);\n mul(c, c, a);\n mul(a, d, f);\n mul(d, b, x);\n square(b, e);\n sel25519(a, b, r);\n sel25519(c, d, r);\n }\n for (let i = 0; i < 16; i++) {\n x[i + 16] = a[i];\n x[i + 32] = c[i];\n x[i + 48] = b[i];\n x[i + 64] = d[i];\n }\n const x32 = x.subarray(32);\n const x16 = x.subarray(16);\n inv25519(x32, x32);\n mul(x16, x16, x32);\n const q = new Uint8Array(32);\n pack25519(q, x16);\n return q;\n}\nexports.scalarMult = scalarMult;\nfunction scalarMultBase(n) {\n return scalarMult(n, _9);\n}\nexports.scalarMultBase = scalarMultBase;\nfunction generateKeyPairFromSeed(seed) {\n if (seed.length !== exports.SECRET_KEY_LENGTH) {\n throw new Error(`x25519: seed must be ${exports.SECRET_KEY_LENGTH} bytes`);\n }\n const secretKey = new Uint8Array(seed);\n const publicKey = scalarMultBase(secretKey);\n return {\n publicKey,\n secretKey\n };\n}\nexports.generateKeyPairFromSeed = generateKeyPairFromSeed;\nfunction generateKeyPair(prng) {\n const seed = (0, random_1.randomBytes)(32, prng);\n const result = generateKeyPairFromSeed(seed);\n (0, wipe_1.wipe)(seed);\n return result;\n}\nexports.generateKeyPair = generateKeyPair;\n/**\n * Returns a shared key between our secret key and a peer's public key.\n *\n * Throws an error if the given keys are of wrong length.\n *\n * If rejectZero is true throws if the calculated shared key is all-zero.\n * From RFC 7748:\n *\n * > Protocol designers using Diffie-Hellman over the curves defined in\n * > this document must not assume \"contributory behavior\". Specially,\n * > contributory behavior means that both parties' private keys\n * > contribute to the resulting shared key. Since curve25519 and\n * > curve448 have cofactors of 8 and 4 (respectively), an input point of\n * > small order will eliminate any contribution from the other party's\n * > private key. This situation can be detected by checking for the all-\n * > zero output, which implementations MAY do, as specified in Section 6.\n * > However, a large number of existing implementations do not do this.\n *\n * IMPORTANT: the returned key is a raw result of scalar multiplication.\n * To use it as a key material, hash it with a cryptographic hash function.\n */\nfunction sharedKey(mySecretKey, theirPublicKey, rejectZero = false) {\n if (mySecretKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect secret key length\");\n }\n if (theirPublicKey.length !== exports.PUBLIC_KEY_LENGTH) {\n throw new Error(\"X25519: incorrect public key length\");\n }\n const result = scalarMult(mySecretKey, theirPublicKey);\n if (rejectZero) {\n let zeros = 0;\n for (let i = 0; i < result.length; i++) {\n zeros |= result[i];\n }\n if (zeros === 0) {\n throw new Error(\"X25519: invalid shared key\");\n }\n }\n return result;\n}\nexports.sharedKey = sharedKey;\n//# sourceMappingURL=x25519.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _defineProperty;\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}\n","var $schema = \"http://json-schema.org/draft-07/schema#\";\nvar $id = \"https://uniswap.org/tokenlist.schema.json\";\nvar title = \"Uniswap Token List\";\nvar description = \"Schema for lists of tokens compatible with the Uniswap Interface\";\nvar definitions = {\n\tVersion: {\n\t\ttype: \"object\",\n\t\tdescription: \"The version of the list, used in change detection\",\n\t\texamples: [\n\t\t\t{\n\t\t\t\tmajor: 1,\n\t\t\t\tminor: 0,\n\t\t\t\tpatch: 0\n\t\t\t}\n\t\t],\n\t\tadditionalProperties: false,\n\t\tproperties: {\n\t\t\tmajor: {\n\t\t\t\ttype: \"integer\",\n\t\t\t\tdescription: \"The major version of the list. Must be incremented when tokens are removed from the list or token addresses are changed.\",\n\t\t\t\tminimum: 0,\n\t\t\t\texamples: [\n\t\t\t\t\t1,\n\t\t\t\t\t2\n\t\t\t\t]\n\t\t\t},\n\t\t\tminor: {\n\t\t\t\ttype: \"integer\",\n\t\t\t\tdescription: \"The minor version of the list. Must be incremented when tokens are added to the list.\",\n\t\t\t\tminimum: 0,\n\t\t\t\texamples: [\n\t\t\t\t\t0,\n\t\t\t\t\t1\n\t\t\t\t]\n\t\t\t},\n\t\t\tpatch: {\n\t\t\t\ttype: \"integer\",\n\t\t\t\tdescription: \"The patch version of the list. Must be incremented for any changes to the list.\",\n\t\t\t\tminimum: 0,\n\t\t\t\texamples: [\n\t\t\t\t\t0,\n\t\t\t\t\t1\n\t\t\t\t]\n\t\t\t}\n\t\t},\n\t\trequired: [\n\t\t\t\"major\",\n\t\t\t\"minor\",\n\t\t\t\"patch\"\n\t\t]\n\t},\n\tTagIdentifier: {\n\t\ttype: \"string\",\n\t\tdescription: \"The unique identifier of a tag\",\n\t\tminLength: 1,\n\t\tmaxLength: 10,\n\t\tpattern: \"^[\\\\w]+$\",\n\t\texamples: [\n\t\t\t\"compound\",\n\t\t\t\"stablecoin\"\n\t\t]\n\t},\n\tExtensionIdentifier: {\n\t\ttype: \"string\",\n\t\tdescription: \"The name of a token extension property\",\n\t\tminLength: 1,\n\t\tmaxLength: 40,\n\t\tpattern: \"^[\\\\w]+$\",\n\t\texamples: [\n\t\t\t\"color\",\n\t\t\t\"is_fee_on_transfer\",\n\t\t\t\"aliases\"\n\t\t]\n\t},\n\tExtensionMap: {\n\t\ttype: \"object\",\n\t\tdescription: \"An object containing any arbitrary or vendor-specific token metadata\",\n\t\tmaxProperties: 10,\n\t\tpropertyNames: {\n\t\t\t$ref: \"#/definitions/ExtensionIdentifier\"\n\t\t},\n\t\tadditionalProperties: {\n\t\t\t$ref: \"#/definitions/ExtensionValue\"\n\t\t},\n\t\texamples: [\n\t\t\t{\n\t\t\t\tcolor: \"#000000\",\n\t\t\t\tis_verified_by_me: true\n\t\t\t},\n\t\t\t{\n\t\t\t\t\"x-bridged-addresses-by-chain\": {\n\t\t\t\t\t\"1\": {\n\t\t\t\t\t\tbridgeAddress: \"0x4200000000000000000000000000000000000010\",\n\t\t\t\t\t\ttokenAddress: \"0x4200000000000000000000000000000000000010\"\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\tExtensionPrimitiveValue: {\n\t\tanyOf: [\n\t\t\t{\n\t\t\t\ttype: \"string\",\n\t\t\t\tminLength: 1,\n\t\t\t\tmaxLength: 42,\n\t\t\t\texamples: [\n\t\t\t\t\t\"#00000\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"boolean\",\n\t\t\t\texamples: [\n\t\t\t\t\ttrue\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"number\",\n\t\t\t\texamples: [\n\t\t\t\t\t15\n\t\t\t\t]\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"null\"\n\t\t\t}\n\t\t]\n\t},\n\tExtensionValue: {\n\t\tanyOf: [\n\t\t\t{\n\t\t\t\t$ref: \"#/definitions/ExtensionPrimitiveValue\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"object\",\n\t\t\t\tmaxProperties: 10,\n\t\t\t\tpropertyNames: {\n\t\t\t\t\t$ref: \"#/definitions/ExtensionIdentifier\"\n\t\t\t\t},\n\t\t\t\tadditionalProperties: {\n\t\t\t\t\t$ref: \"#/definitions/ExtensionValueInner0\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\tExtensionValueInner0: {\n\t\tanyOf: [\n\t\t\t{\n\t\t\t\t$ref: \"#/definitions/ExtensionPrimitiveValue\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: \"object\",\n\t\t\t\tmaxProperties: 10,\n\t\t\t\tpropertyNames: {\n\t\t\t\t\t$ref: \"#/definitions/ExtensionIdentifier\"\n\t\t\t\t},\n\t\t\t\tadditionalProperties: {\n\t\t\t\t\t$ref: \"#/definitions/ExtensionValueInner1\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\tExtensionValueInner1: {\n\t\tanyOf: [\n\t\t\t{\n\t\t\t\t$ref: \"#/definitions/ExtensionPrimitiveValue\"\n\t\t\t}\n\t\t]\n\t},\n\tTagDefinition: {\n\t\ttype: \"object\",\n\t\tdescription: \"Definition of a tag that can be associated with a token via its identifier\",\n\t\tadditionalProperties: false,\n\t\tproperties: {\n\t\t\tname: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"The name of the tag\",\n\t\t\t\tpattern: \"^[ \\\\w]+$\",\n\t\t\t\tminLength: 1,\n\t\t\t\tmaxLength: 20\n\t\t\t},\n\t\t\tdescription: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"A user-friendly description of the tag\",\n\t\t\t\tpattern: \"^[ \\\\w\\\\.,:]+$\",\n\t\t\t\tminLength: 1,\n\t\t\t\tmaxLength: 200\n\t\t\t}\n\t\t},\n\t\trequired: [\n\t\t\t\"name\",\n\t\t\t\"description\"\n\t\t],\n\t\texamples: [\n\t\t\t{\n\t\t\t\tname: \"Stablecoin\",\n\t\t\t\tdescription: \"A token with value pegged to another asset\"\n\t\t\t}\n\t\t]\n\t},\n\tTokenInfo: {\n\t\ttype: \"object\",\n\t\tdescription: \"Metadata for a single token in a token list\",\n\t\tadditionalProperties: false,\n\t\tproperties: {\n\t\t\tchainId: {\n\t\t\t\ttype: \"integer\",\n\t\t\t\tdescription: \"The chain ID of the Ethereum network where this token is deployed\",\n\t\t\t\tminimum: 1,\n\t\t\t\texamples: [\n\t\t\t\t\t1,\n\t\t\t\t\t42\n\t\t\t\t]\n\t\t\t},\n\t\t\taddress: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"The checksummed address of the token on the specified chain ID\",\n\t\t\t\tpattern: \"^0x[a-fA-F0-9]{40}$\",\n\t\t\t\texamples: [\n\t\t\t\t\t\"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48\"\n\t\t\t\t]\n\t\t\t},\n\t\t\tdecimals: {\n\t\t\t\ttype: \"integer\",\n\t\t\t\tdescription: \"The number of decimals for the token balance\",\n\t\t\t\tminimum: 0,\n\t\t\t\tmaximum: 255,\n\t\t\t\texamples: [\n\t\t\t\t\t18\n\t\t\t\t]\n\t\t\t},\n\t\t\tname: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"The name of the token\",\n\t\t\t\tminLength: 0,\n\t\t\t\tmaxLength: 60,\n\t\t\t\tanyOf: [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"const\": \"\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpattern: \"^[ \\\\S+]+$\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\texamples: [\n\t\t\t\t\t\"USD Coin\"\n\t\t\t\t]\n\t\t\t},\n\t\t\tsymbol: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"The symbol for the token\",\n\t\t\t\tminLength: 0,\n\t\t\t\tmaxLength: 20,\n\t\t\t\tanyOf: [\n\t\t\t\t\t{\n\t\t\t\t\t\t\"const\": \"\"\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tpattern: \"^\\\\S+$\"\n\t\t\t\t\t}\n\t\t\t\t],\n\t\t\t\texamples: [\n\t\t\t\t\t\"USDC\"\n\t\t\t\t]\n\t\t\t},\n\t\t\tlogoURI: {\n\t\t\t\ttype: \"string\",\n\t\t\t\tdescription: \"A URI to the token logo asset; if not set, interface will attempt to find a logo based on the token address; suggest SVG or PNG of size 64x64\",\n\t\t\t\tformat: \"uri\",\n\t\t\t\texamples: [\n\t\t\t\t\t\"ipfs://QmXfzKRvjZz3u5JRgC4v5mGVbm9ahrUiB4DgzHBsnWbTMM\"\n\t\t\t\t]\n\t\t\t},\n\t\t\ttags: {\n\t\t\t\ttype: \"array\",\n\t\t\t\tdescription: \"An array of tag identifiers associated with the token; tags are defined at the list level\",\n\t\t\t\titems: {\n\t\t\t\t\t$ref: \"#/definitions/TagIdentifier\"\n\t\t\t\t},\n\t\t\t\tmaxItems: 10,\n\t\t\t\texamples: [\n\t\t\t\t\t\"stablecoin\",\n\t\t\t\t\t\"compound\"\n\t\t\t\t]\n\t\t\t},\n\t\t\textensions: {\n\t\t\t\t$ref: \"#/definitions/ExtensionMap\"\n\t\t\t}\n\t\t},\n\t\trequired: [\n\t\t\t\"chainId\",\n\t\t\t\"address\",\n\t\t\t\"decimals\",\n\t\t\t\"name\",\n\t\t\t\"symbol\"\n\t\t]\n\t}\n};\nvar type = \"object\";\nvar properties = {\n\tname: {\n\t\ttype: \"string\",\n\t\tdescription: \"The name of the token list\",\n\t\tminLength: 1,\n\t\tmaxLength: 30,\n\t\tpattern: \"^[\\\\w ]+$\",\n\t\texamples: [\n\t\t\t\"My Token List\"\n\t\t]\n\t},\n\ttimestamp: {\n\t\ttype: \"string\",\n\t\tformat: \"date-time\",\n\t\tdescription: \"The timestamp of this list version; i.e. when this immutable version of the list was created\"\n\t},\n\tversion: {\n\t\t$ref: \"#/definitions/Version\"\n\t},\n\ttokens: {\n\t\ttype: \"array\",\n\t\tdescription: \"The list of tokens included in the list\",\n\t\titems: {\n\t\t\t$ref: \"#/definitions/TokenInfo\"\n\t\t},\n\t\tminItems: 1,\n\t\tmaxItems: 10000\n\t},\n\ttokenMap: {\n\t\ttype: \"object\",\n\t\tdescription: \"A mapping of key 'chainId_tokenAddress' to its corresponding token object\",\n\t\tminProperties: 1,\n\t\tmaxProperties: 10000,\n\t\tpropertyNames: {\n\t\t\ttype: \"string\"\n\t\t},\n\t\tadditionalProperties: {\n\t\t\t$ref: \"#/definitions/TokenInfo\"\n\t\t},\n\t\texamples: [\n\t\t\t{\n\t\t\t\t\"4_0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\": {\n\t\t\t\t\tname: \"Uniswap\",\n\t\t\t\t\taddress: \"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984\",\n\t\t\t\t\tsymbol: \"UNI\",\n\t\t\t\t\tdecimals: 18,\n\t\t\t\t\tchainId: 4,\n\t\t\t\t\tlogoURI: \"ipfs://QmXttGpZrECX5qCyXbBQiqgQNytVGeZW5Anewvh2jc4psg\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\tkeywords: {\n\t\ttype: \"array\",\n\t\tdescription: \"Keywords associated with the contents of the list; may be used in list discoverability\",\n\t\titems: {\n\t\t\ttype: \"string\",\n\t\t\tdescription: \"A keyword to describe the contents of the list\",\n\t\t\tminLength: 1,\n\t\t\tmaxLength: 20,\n\t\t\tpattern: \"^[\\\\w ]+$\",\n\t\t\texamples: [\n\t\t\t\t\"compound\",\n\t\t\t\t\"lending\",\n\t\t\t\t\"personal tokens\"\n\t\t\t]\n\t\t},\n\t\tmaxItems: 20,\n\t\tuniqueItems: true\n\t},\n\ttags: {\n\t\ttype: \"object\",\n\t\tdescription: \"A mapping of tag identifiers to their name and description\",\n\t\tpropertyNames: {\n\t\t\t$ref: \"#/definitions/TagIdentifier\"\n\t\t},\n\t\tadditionalProperties: {\n\t\t\t$ref: \"#/definitions/TagDefinition\"\n\t\t},\n\t\tmaxProperties: 20,\n\t\texamples: [\n\t\t\t{\n\t\t\t\tstablecoin: {\n\t\t\t\t\tname: \"Stablecoin\",\n\t\t\t\t\tdescription: \"A token with value pegged to another asset\"\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\tlogoURI: {\n\t\ttype: \"string\",\n\t\tdescription: \"A URI for the logo of the token list; prefer SVG or PNG of size 256x256\",\n\t\tformat: \"uri\",\n\t\texamples: [\n\t\t\t\"ipfs://QmXfzKRvjZz3u5JRgC4v5mGVbm9ahrUiB4DgzHBsnWbTMM\"\n\t\t]\n\t}\n};\nvar required = [\n\t\"name\",\n\t\"timestamp\",\n\t\"version\",\n\t\"tokens\"\n];\nvar tokenlist_schema = {\n\t$schema: $schema,\n\t$id: $id,\n\ttitle: title,\n\tdescription: description,\n\tdefinitions: definitions,\n\ttype: type,\n\tproperties: properties,\n\trequired: required\n};\n\n/**\r\n * Comparator function that allows sorting version from lowest to highest\r\n * @param versionA version A to compare\r\n * @param versionB version B to compare\r\n * @returns -1 if versionA comes before versionB, 0 if versionA is equal to version B, and 1 if version A comes after version B\r\n */\nfunction versionComparator(versionA, versionB) {\n if (versionA.major < versionB.major) {\n return -1;\n } else if (versionA.major > versionB.major) {\n return 1;\n } else if (versionA.minor < versionB.minor) {\n return -1;\n } else if (versionA.minor > versionB.minor) {\n return 1;\n } else if (versionA.patch < versionB.patch) {\n return -1;\n } else if (versionA.patch > versionB.patch) {\n return 1;\n } else {\n return 0;\n }\n}\n\n/**\r\n * Returns true if versionB is an update over versionA\r\n */\n\nfunction isVersionUpdate(base, update) {\n return versionComparator(base, update) < 0;\n}\n\nvar VersionUpgrade;\n\n(function (VersionUpgrade) {\n VersionUpgrade[VersionUpgrade[\"NONE\"] = 0] = \"NONE\";\n VersionUpgrade[VersionUpgrade[\"PATCH\"] = 1] = \"PATCH\";\n VersionUpgrade[VersionUpgrade[\"MINOR\"] = 2] = \"MINOR\";\n VersionUpgrade[VersionUpgrade[\"MAJOR\"] = 3] = \"MAJOR\";\n})(VersionUpgrade || (VersionUpgrade = {}));\n/**\r\n * Return the upgrade type from the base version to the update version.\r\n * Note that downgrades and equivalent versions are both treated as `NONE`.\r\n * @param base base list\r\n * @param update update to the list\r\n */\n\n\nfunction getVersionUpgrade(base, update) {\n if (update.major > base.major) {\n return VersionUpgrade.MAJOR;\n }\n\n if (update.major < base.major) {\n return VersionUpgrade.NONE;\n }\n\n if (update.minor > base.minor) {\n return VersionUpgrade.MINOR;\n }\n\n if (update.minor < base.minor) {\n return VersionUpgrade.NONE;\n }\n\n return update.patch > base.patch ? VersionUpgrade.PATCH : VersionUpgrade.NONE;\n}\n\n/**\r\n * compares two token info key values\r\n * this subset of full deep equal functionality does not work on objects or object arrays\r\n * @param a comparison item a\r\n * @param b comparison item b\r\n */\nfunction compareTokenInfoProperty(a, b) {\n if (a === b) return true;\n if (typeof a !== typeof b) return false;\n\n if (Array.isArray(a) && Array.isArray(b)) {\n return a.every(function (el, i) {\n return b[i] === el;\n });\n }\n\n return false;\n}\n/**\r\n * Computes the diff of a token list where the first argument is the base and the second argument is the updated list.\r\n * @param base base list\r\n * @param update updated list\r\n */\n\n\nfunction diffTokenLists(base, update) {\n var indexedBase = base.reduce(function (memo, tokenInfo) {\n if (!memo[tokenInfo.chainId]) memo[tokenInfo.chainId] = {};\n memo[tokenInfo.chainId][tokenInfo.address] = tokenInfo;\n return memo;\n }, {});\n var newListUpdates = update.reduce(function (memo, tokenInfo) {\n var _indexedBase$tokenInf;\n\n var baseToken = (_indexedBase$tokenInf = indexedBase[tokenInfo.chainId]) == null ? void 0 : _indexedBase$tokenInf[tokenInfo.address];\n\n if (!baseToken) {\n memo.added.push(tokenInfo);\n } else {\n var changes = Object.keys(tokenInfo).filter(function (s) {\n return s !== 'address' && s !== 'chainId';\n }).filter(function (s) {\n return !compareTokenInfoProperty(tokenInfo[s], baseToken[s]);\n });\n\n if (changes.length > 0) {\n if (!memo.changed[tokenInfo.chainId]) {\n memo.changed[tokenInfo.chainId] = {};\n }\n\n memo.changed[tokenInfo.chainId][tokenInfo.address] = changes;\n }\n }\n\n if (!memo.index[tokenInfo.chainId]) {\n var _memo$index$tokenInfo;\n\n memo.index[tokenInfo.chainId] = (_memo$index$tokenInfo = {}, _memo$index$tokenInfo[tokenInfo.address] = true, _memo$index$tokenInfo);\n } else {\n memo.index[tokenInfo.chainId][tokenInfo.address] = true;\n }\n\n return memo;\n }, {\n added: [],\n changed: {},\n index: {}\n });\n var removed = base.reduce(function (list, curr) {\n if (!newListUpdates.index[curr.chainId] || !newListUpdates.index[curr.chainId][curr.address]) {\n list.push(curr);\n }\n\n return list;\n }, []);\n return {\n added: newListUpdates.added,\n changed: newListUpdates.changed,\n removed: removed\n };\n}\n\n/**\r\n * Returns the minimum version bump for the given list\r\n * @param baseList the base list of tokens\r\n * @param updatedList the updated list of tokens\r\n */\n\nfunction minVersionBump(baseList, updatedList) {\n var diff = diffTokenLists(baseList, updatedList);\n if (diff.removed.length > 0) return VersionUpgrade.MAJOR;\n if (diff.added.length > 0) return VersionUpgrade.MINOR;\n if (Object.keys(diff.changed).length > 0) return VersionUpgrade.PATCH;\n return VersionUpgrade.NONE;\n}\n\n/**\r\n * Returns the next version of the list given a base version and the upgrade type\r\n * @param base current version\r\n * @param bump the upgrade type\r\n */\n\nfunction nextVersion(base, bump) {\n switch (bump) {\n case VersionUpgrade.NONE:\n return base;\n\n case VersionUpgrade.MAJOR:\n return {\n major: base.major + 1,\n minor: 0,\n patch: 0\n };\n\n case VersionUpgrade.MINOR:\n return {\n major: base.major,\n minor: base.minor + 1,\n patch: 0\n };\n\n case VersionUpgrade.PATCH:\n return {\n major: base.major,\n minor: base.minor,\n patch: base.patch + 1\n };\n }\n}\n\nexport { VersionUpgrade, diffTokenLists, getVersionUpgrade, isVersionUpdate, minVersionBump, nextVersion, tokenlist_schema as schema, versionComparator };\n//# sourceMappingURL=token-lists.esm.js.map\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nconst encodeFragmentIdentifier = Symbol('encodeFragmentIdentifier');\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), ':list='].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), ':list=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\tcase 'bracket-separator': {\n\t\t\tconst keyValueSep = options.arrayFormat === 'bracket-separator' ?\n\t\t\t\t'[]=' :\n\t\t\t\t'=';\n\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// Translate null to an empty string so that it doesn't serialize as 'null'\n\t\t\t\tvalue = value === null ? '' : value;\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), keyValueSep, encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\t\t}\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'colon-list-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(:list)$/.exec(key);\n\t\t\t\tkey = key.replace(/:list$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tcase 'bracket-separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = /(\\[\\])$/.test(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!isArray) {\n\t\t\t\t\taccumulator[key] = value ? decode(value, options) : value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst arrayValue = value === null ?\n\t\t\t\t\t[] :\n\t\t\t\t\tvalue.split(options.arrayFormatSeparator).map(item => decode(item, options));\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = arrayValue;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], arrayValue);\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator', 'bracket-separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\tif (value.length === 0 && options.arrayFormat === 'bracket-separator') {\n\t\t\t\treturn encode(key, options) + '[]';\n\t\t\t}\n\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\t[encodeFragmentIdentifier]: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${options[encodeFragmentIdentifier] ? encode(object.fragmentIdentifier, options) : object.fragmentIdentifier}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true,\n\t\t[encodeFragmentIdentifier]: false\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n","function e(s,r,i=\"string\"){if(!s[r]||typeof s[r]!==i)throw new Error(`Missing or invalid \"${r}\" param`)}function l(s,r){let i=!0;return r.forEach(t=>{t in s||(i=!1)}),i}function f(s,r){return Array.isArray(s)?s.length===r:Object.keys(s).length===r}function w(s,r){return Array.isArray(s)?s.length>=r:Object.keys(s).length>=r}function u(s,r,i){return(i.length?w(s,r.length):f(s,r.length))?l(s,r):!1}function n(s,r,i=\"_\"){const t=s.split(i);return t[t.length-1].trim().toLowerCase()===r.trim().toLowerCase()}function R(s){return b(s.method)&&a(s.params)}function b(s){return n(s,\"subscribe\")}function a(s){return u(s,[\"topic\"],[])}function P(s){return c(s.method)&&h(s.params)}function c(s){return n(s,\"publish\")}function h(s){return u(s,[\"message\",\"topic\",\"ttl\"],[\"prompt\",\"tag\"])}function _(s){return o(s.method)&&p(s.params)}function o(s){return n(s,\"unsubscribe\")}function p(s){return u(s,[\"id\",\"topic\"],[])}function S(s){return m(s.method)&&d(s.params)}function m(s){return n(s,\"subscription\")}function d(s){return u(s,[\"id\",\"data\"],[])}function g(s){if(!b(s.method))throw new Error(\"JSON-RPC Request has invalid subscribe method\");if(!a(s.params))throw new Error(\"JSON-RPC Request has invalid subscribe params\");const r=s.params;return e(r,\"topic\"),r}function q(s){if(!c(s.method))throw new Error(\"JSON-RPC Request has invalid publish method\");if(!h(s.params))throw new Error(\"JSON-RPC Request has invalid publish params\");const r=s.params;return e(r,\"topic\"),e(r,\"message\"),e(r,\"ttl\",\"number\"),r}function E(s){if(!o(s.method))throw new Error(\"JSON-RPC Request has invalid unsubscribe method\");if(!p(s.params))throw new Error(\"JSON-RPC Request has invalid unsubscribe params\");const r=s.params;return e(r,\"id\"),r}function k(s){if(!m(s.method))throw new Error(\"JSON-RPC Request has invalid subscription method\");if(!d(s.params))throw new Error(\"JSON-RPC Request has invalid subscription params\");const r=s.params;return e(r,\"id\"),e(r,\"data\"),r}const C={waku:{publish:\"waku_publish\",batchPublish:\"waku_batchPublish\",subscribe:\"waku_subscribe\",batchSubscribe:\"waku_batchSubscribe\",subscription:\"waku_subscription\",unsubscribe:\"waku_unsubscribe\",batchUnsubscribe:\"waku_batchUnsubscribe\",batchFetchMessages:\"waku_batchFetchMessages\"},irn:{publish:\"irn_publish\",batchPublish:\"irn_batchPublish\",subscribe:\"irn_subscribe\",batchSubscribe:\"irn_batchSubscribe\",subscription:\"irn_subscription\",unsubscribe:\"irn_unsubscribe\",batchUnsubscribe:\"irn_batchUnsubscribe\",batchFetchMessages:\"irn_batchFetchMessages\"},iridium:{publish:\"iridium_publish\",batchPublish:\"iridium_batchPublish\",subscribe:\"iridium_subscribe\",batchSubscribe:\"iridium_batchSubscribe\",subscription:\"iridium_subscription\",unsubscribe:\"iridium_unsubscribe\",batchUnsubscribe:\"iridium_batchUnsubscribe\",batchFetchMessages:\"iridium_batchFetchMessages\"}};export{C as RELAY_JSONRPC,c as isPublishMethod,h as isPublishParams,P as isPublishRequest,b as isSubscribeMethod,a as isSubscribeParams,R as isSubscribeRequest,m as isSubscriptionMethod,d as isSubscriptionParams,S as isSubscriptionRequest,o as isUnsubscribeMethod,p as isUnsubscribeParams,_ as isUnsubscribeRequest,q as parsePublishRequest,g as parseSubscribeRequest,k as parseSubscriptionRequest,E as parseUnsubscribeRequest};\n//# sourceMappingURL=index.es.js.map\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./misc\"), exports);\ntslib_1.__exportStar(require(\"./time\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_THOUSAND = exports.ONE_HUNDRED = void 0;\nexports.ONE_HUNDRED = 100;\nexports.ONE_THOUSAND = 1000;\n//# sourceMappingURL=misc.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ONE_YEAR = exports.FOUR_WEEKS = exports.THREE_WEEKS = exports.TWO_WEEKS = exports.ONE_WEEK = exports.THIRTY_DAYS = exports.SEVEN_DAYS = exports.FIVE_DAYS = exports.THREE_DAYS = exports.ONE_DAY = exports.TWENTY_FOUR_HOURS = exports.TWELVE_HOURS = exports.SIX_HOURS = exports.THREE_HOURS = exports.ONE_HOUR = exports.SIXTY_MINUTES = exports.THIRTY_MINUTES = exports.TEN_MINUTES = exports.FIVE_MINUTES = exports.ONE_MINUTE = exports.SIXTY_SECONDS = exports.THIRTY_SECONDS = exports.TEN_SECONDS = exports.FIVE_SECONDS = exports.ONE_SECOND = void 0;\nexports.ONE_SECOND = 1;\nexports.FIVE_SECONDS = 5;\nexports.TEN_SECONDS = 10;\nexports.THIRTY_SECONDS = 30;\nexports.SIXTY_SECONDS = 60;\nexports.ONE_MINUTE = exports.SIXTY_SECONDS;\nexports.FIVE_MINUTES = exports.ONE_MINUTE * 5;\nexports.TEN_MINUTES = exports.ONE_MINUTE * 10;\nexports.THIRTY_MINUTES = exports.ONE_MINUTE * 30;\nexports.SIXTY_MINUTES = exports.ONE_MINUTE * 60;\nexports.ONE_HOUR = exports.SIXTY_MINUTES;\nexports.THREE_HOURS = exports.ONE_HOUR * 3;\nexports.SIX_HOURS = exports.ONE_HOUR * 6;\nexports.TWELVE_HOURS = exports.ONE_HOUR * 12;\nexports.TWENTY_FOUR_HOURS = exports.ONE_HOUR * 24;\nexports.ONE_DAY = exports.TWENTY_FOUR_HOURS;\nexports.THREE_DAYS = exports.ONE_DAY * 3;\nexports.FIVE_DAYS = exports.ONE_DAY * 5;\nexports.SEVEN_DAYS = exports.ONE_DAY * 7;\nexports.THIRTY_DAYS = exports.ONE_DAY * 30;\nexports.ONE_WEEK = exports.SEVEN_DAYS;\nexports.TWO_WEEKS = exports.ONE_WEEK * 2;\nexports.THREE_WEEKS = exports.ONE_WEEK * 3;\nexports.FOUR_WEEKS = exports.ONE_WEEK * 4;\nexports.ONE_YEAR = exports.ONE_DAY * 365;\n//# sourceMappingURL=time.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./utils\"), exports);\ntslib_1.__exportStar(require(\"./watch\"), exports);\ntslib_1.__exportStar(require(\"./types\"), exports);\ntslib_1.__exportStar(require(\"./constants\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./watch\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.IWatch = void 0;\nclass IWatch {\n}\nexports.IWatch = IWatch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fromMiliseconds = exports.toMiliseconds = void 0;\nconst constants_1 = require(\"../constants\");\nfunction toMiliseconds(seconds) {\n return seconds * constants_1.ONE_THOUSAND;\n}\nexports.toMiliseconds = toMiliseconds;\nfunction fromMiliseconds(miliseconds) {\n return Math.floor(miliseconds / constants_1.ONE_THOUSAND);\n}\nexports.fromMiliseconds = fromMiliseconds;\n//# sourceMappingURL=convert.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.delay = void 0;\nfunction delay(timeout) {\n return new Promise(resolve => {\n setTimeout(() => {\n resolve(true);\n }, timeout);\n });\n}\nexports.delay = delay;\n//# sourceMappingURL=delay.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst tslib_1 = require(\"tslib\");\ntslib_1.__exportStar(require(\"./delay\"), exports);\ntslib_1.__exportStar(require(\"./convert\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Watch = void 0;\nclass Watch {\n constructor() {\n this.timestamps = new Map();\n }\n start(label) {\n if (this.timestamps.has(label)) {\n throw new Error(`Watch already started for label: ${label}`);\n }\n this.timestamps.set(label, { started: Date.now() });\n }\n stop(label) {\n const timestamp = this.get(label);\n if (typeof timestamp.elapsed !== \"undefined\") {\n throw new Error(`Watch already stopped for label: ${label}`);\n }\n const elapsed = Date.now() - timestamp.started;\n this.timestamps.set(label, { started: timestamp.started, elapsed });\n }\n get(label) {\n const timestamp = this.timestamps.get(label);\n if (typeof timestamp === \"undefined\") {\n throw new Error(`No timestamp found for label: ${label}`);\n }\n return timestamp;\n }\n elapsed(label) {\n const timestamp = this.get(label);\n const elapsed = timestamp.elapsed || Date.now() - timestamp.started;\n return elapsed;\n }\n}\nexports.Watch = Watch;\nexports.default = Watch;\n//# sourceMappingURL=watch.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getLocalStorage = exports.getLocalStorageOrThrow = exports.getCrypto = exports.getCryptoOrThrow = exports.getLocation = exports.getLocationOrThrow = exports.getNavigator = exports.getNavigatorOrThrow = exports.getDocument = exports.getDocumentOrThrow = exports.getFromWindowOrThrow = exports.getFromWindow = void 0;\nfunction getFromWindow(name) {\n let res = undefined;\n if (typeof window !== \"undefined\" && typeof window[name] !== \"undefined\") {\n res = window[name];\n }\n return res;\n}\nexports.getFromWindow = getFromWindow;\nfunction getFromWindowOrThrow(name) {\n const res = getFromWindow(name);\n if (!res) {\n throw new Error(`${name} is not defined in Window`);\n }\n return res;\n}\nexports.getFromWindowOrThrow = getFromWindowOrThrow;\nfunction getDocumentOrThrow() {\n return getFromWindowOrThrow(\"document\");\n}\nexports.getDocumentOrThrow = getDocumentOrThrow;\nfunction getDocument() {\n return getFromWindow(\"document\");\n}\nexports.getDocument = getDocument;\nfunction getNavigatorOrThrow() {\n return getFromWindowOrThrow(\"navigator\");\n}\nexports.getNavigatorOrThrow = getNavigatorOrThrow;\nfunction getNavigator() {\n return getFromWindow(\"navigator\");\n}\nexports.getNavigator = getNavigator;\nfunction getLocationOrThrow() {\n return getFromWindowOrThrow(\"location\");\n}\nexports.getLocationOrThrow = getLocationOrThrow;\nfunction getLocation() {\n return getFromWindow(\"location\");\n}\nexports.getLocation = getLocation;\nfunction getCryptoOrThrow() {\n return getFromWindowOrThrow(\"crypto\");\n}\nexports.getCryptoOrThrow = getCryptoOrThrow;\nfunction getCrypto() {\n return getFromWindow(\"crypto\");\n}\nexports.getCrypto = getCrypto;\nfunction getLocalStorageOrThrow() {\n return getFromWindowOrThrow(\"localStorage\");\n}\nexports.getLocalStorageOrThrow = getLocalStorageOrThrow;\nfunction getLocalStorage() {\n return getFromWindow(\"localStorage\");\n}\nexports.getLocalStorage = getLocalStorage;\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getWindowMetadata = void 0;\nconst window_getters_1 = require(\"@walletconnect/window-getters\");\nfunction getWindowMetadata() {\n let doc;\n let loc;\n try {\n doc = window_getters_1.getDocumentOrThrow();\n loc = window_getters_1.getLocationOrThrow();\n }\n catch (e) {\n return null;\n }\n function getIcons() {\n const links = doc.getElementsByTagName(\"link\");\n const icons = [];\n for (let i = 0; i < links.length; i++) {\n const link = links[i];\n const rel = link.getAttribute(\"rel\");\n if (rel) {\n if (rel.toLowerCase().indexOf(\"icon\") > -1) {\n const href = link.getAttribute(\"href\");\n if (href) {\n if (href.toLowerCase().indexOf(\"https:\") === -1 &&\n href.toLowerCase().indexOf(\"http:\") === -1 &&\n href.indexOf(\"//\") !== 0) {\n let absoluteHref = loc.protocol + \"//\" + loc.host;\n if (href.indexOf(\"/\") === 0) {\n absoluteHref += href;\n }\n else {\n const path = loc.pathname.split(\"/\");\n path.pop();\n const finalPath = path.join(\"/\");\n absoluteHref += finalPath + \"/\" + href;\n }\n icons.push(absoluteHref);\n }\n else if (href.indexOf(\"//\") === 0) {\n const absoluteUrl = loc.protocol + href;\n icons.push(absoluteUrl);\n }\n else {\n icons.push(href);\n }\n }\n }\n }\n }\n return icons;\n }\n function getWindowMetadataOfAny(...args) {\n const metaTags = doc.getElementsByTagName(\"meta\");\n for (let i = 0; i < metaTags.length; i++) {\n const tag = metaTags[i];\n const attributes = [\"itemprop\", \"property\", \"name\"]\n .map((target) => tag.getAttribute(target))\n .filter((attr) => {\n if (attr) {\n return args.includes(attr);\n }\n return false;\n });\n if (attributes.length && attributes) {\n const content = tag.getAttribute(\"content\");\n if (content) {\n return content;\n }\n }\n }\n return \"\";\n }\n function getName() {\n let name = getWindowMetadataOfAny(\"name\", \"og:site_name\", \"og:title\", \"twitter:title\");\n if (!name) {\n name = doc.title;\n }\n return name;\n }\n function getDescription() {\n const description = getWindowMetadataOfAny(\"description\", \"og:description\", \"twitter:description\", \"keywords\");\n return description;\n }\n const name = getName();\n const description = getDescription();\n const url = loc.origin;\n const icons = getIcons();\n const meta = {\n description,\n url,\n icons,\n name,\n };\n return meta;\n}\nexports.getWindowMetadata = getWindowMetadata;\n//# sourceMappingURL=index.js.map","import { EventEmitter } from 'events';\nimport { ConnectorEvent } from '@web3-react/types';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar AbstractConnector =\n/*#__PURE__*/\nfunction (_EventEmitter) {\n _inheritsLoose(AbstractConnector, _EventEmitter);\n\n function AbstractConnector(_temp) {\n var _this;\n\n var _ref = _temp === void 0 ? {} : _temp,\n supportedChainIds = _ref.supportedChainIds;\n\n _this = _EventEmitter.call(this) || this;\n _this.supportedChainIds = supportedChainIds;\n return _this;\n }\n\n var _proto = AbstractConnector.prototype;\n\n _proto.emitUpdate = function emitUpdate(update) {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"Emitting '\" + ConnectorEvent.Update + \"' with payload\", update);\n }\n\n this.emit(ConnectorEvent.Update, update);\n };\n\n _proto.emitError = function emitError(error) {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"Emitting '\" + ConnectorEvent.Error + \"' with payload\", error);\n }\n\n this.emit(ConnectorEvent.Error, error);\n };\n\n _proto.emitDeactivate = function emitDeactivate() {\n if (process.env.NODE_ENV !== \"production\") {\n console.log(\"Emitting '\" + ConnectorEvent.Deactivate + \"'\");\n }\n\n this.emit(ConnectorEvent.Deactivate);\n };\n\n return AbstractConnector;\n}(EventEmitter);\n\nexport { AbstractConnector };\n//# sourceMappingURL=abstract-connector.esm.js.map\n","var ConnectorEvent;\n\n(function (ConnectorEvent) {\n ConnectorEvent[\"Update\"] = \"Web3ReactUpdate\";\n ConnectorEvent[\"Error\"] = \"Web3ReactError\";\n ConnectorEvent[\"Deactivate\"] = \"Web3ReactDeactivate\";\n})(ConnectorEvent || (ConnectorEvent = {}));\n\nexport { ConnectorEvent };\n//# sourceMappingURL=types.esm.js.map\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)0,p<=y.r||!y.r){p<=1&&c>0&&(y=h[c-1]);var v=l[y.l];u&&(p=u(\"\"+p)),a=\"string\"==typeof v?v.replace(\"%d\",p):v(p,n,y.l,s);break}}if(n)return a;var M=s?l.future:l.past;return\"function\"==typeof M?M(a):M.replace(\"%s\",a)},n.to=function(r,e){return i(r,e,this,!0)},n.from=function(r,e){return i(r,e,this)};var d=function(r){return r.$u?t.utc():t()};n.toNow=function(r){return this.to(d(this),r)},n.fromNow=function(r){return this.from(d(this),r)}}}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n():\"function\"==typeof define&&define.amd?define(n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_plugin_updateLocale=n()}(this,(function(){\"use strict\";return function(e,n,t){t.updateLocale=function(e,n){var o=t.Ls[e];if(o)return(n?Object.keys(n):[]).forEach((function(e){o[e]=n[e]})),o}}}));","'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","'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n","/*\r\n * big.js v5.2.2\r\n * A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.\r\n * Copyright (c) 2018 Michael Mclaughlin \r\n * https://github.com/MikeMcl/big.js/LICENCE\r\n */\r\n;(function (GLOBAL) {\r\n 'use strict';\r\n var Big,\r\n\r\n\r\n/************************************** EDITABLE DEFAULTS *****************************************/\r\n\r\n\r\n // The default values below must be integers within the stated ranges.\r\n\r\n /*\r\n * The maximum number of decimal places (DP) of the results of operations involving division:\r\n * div and sqrt, and pow with negative exponents.\r\n */\r\n DP = 20, // 0 to MAX_DP\r\n\r\n /*\r\n * The rounding mode (RM) used when rounding to the above decimal places.\r\n *\r\n * 0 Towards zero (i.e. truncate, no rounding). (ROUND_DOWN)\r\n * 1 To nearest neighbour. If equidistant, round up. (ROUND_HALF_UP)\r\n * 2 To nearest neighbour. If equidistant, to even. (ROUND_HALF_EVEN)\r\n * 3 Away from zero. (ROUND_UP)\r\n */\r\n RM = 1, // 0, 1, 2 or 3\r\n\r\n // The maximum value of DP and Big.DP.\r\n MAX_DP = 1E6, // 0 to 1000000\r\n\r\n // The maximum magnitude of the exponent argument to the pow method.\r\n MAX_POWER = 1E6, // 1 to 1000000\r\n\r\n /*\r\n * The negative exponent (NE) at and beneath which toString returns exponential notation.\r\n * (JavaScript numbers: -7)\r\n * -1000000 is the minimum recommended exponent value of a Big.\r\n */\r\n NE = -7, // 0 to -1000000\r\n\r\n /*\r\n * The positive exponent (PE) at and above which toString returns exponential notation.\r\n * (JavaScript numbers: 21)\r\n * 1000000 is the maximum recommended exponent value of a Big.\r\n * (This limit is not enforced or checked.)\r\n */\r\n PE = 21, // 0 to 1000000\r\n\r\n\r\n/**************************************************************************************************/\r\n\r\n\r\n // Error messages.\r\n NAME = '[big.js] ',\r\n INVALID = NAME + 'Invalid ',\r\n INVALID_DP = INVALID + 'decimal places',\r\n INVALID_RM = INVALID + 'rounding mode',\r\n DIV_BY_ZERO = NAME + 'Division by zero',\r\n\r\n // The shared prototype object.\r\n P = {},\r\n UNDEFINED = void 0,\r\n NUMERIC = /^-?(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i;\r\n\r\n\r\n /*\r\n * Create and return a Big constructor.\r\n *\r\n */\r\n function _Big_() {\r\n\r\n /*\r\n * The Big constructor and exported function.\r\n * Create and return a new instance of a Big number object.\r\n *\r\n * n {number|string|Big} A numeric value.\r\n */\r\n function Big(n) {\r\n var x = this;\r\n\r\n // Enable constructor usage without new.\r\n if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);\r\n\r\n // Duplicate.\r\n if (n instanceof Big) {\r\n x.s = n.s;\r\n x.e = n.e;\r\n x.c = n.c.slice();\r\n } else {\r\n parse(x, n);\r\n }\r\n\r\n /*\r\n * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which\r\n * points to Object.\r\n */\r\n x.constructor = Big;\r\n }\r\n\r\n Big.prototype = P;\r\n Big.DP = DP;\r\n Big.RM = RM;\r\n Big.NE = NE;\r\n Big.PE = PE;\r\n Big.version = '5.2.2';\r\n\r\n return Big;\r\n }\r\n\r\n\r\n /*\r\n * Parse the number or string value passed to a Big constructor.\r\n *\r\n * x {Big} A Big number instance.\r\n * n {number|string} A numeric value.\r\n */\r\n function parse(x, n) {\r\n var e, i, nl;\r\n\r\n // Minus zero?\r\n if (n === 0 && 1 / n < 0) n = '-0';\r\n else if (!NUMERIC.test(n += '')) throw Error(INVALID + 'number');\r\n\r\n // Determine sign.\r\n x.s = n.charAt(0) == '-' ? (n = n.slice(1), -1) : 1;\r\n\r\n // Decimal point?\r\n if ((e = n.indexOf('.')) > -1) n = n.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = n.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +n.slice(i + 1);\r\n n = n.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = n.length;\r\n }\r\n\r\n nl = n.length;\r\n\r\n // Determine leading zeros.\r\n for (i = 0; i < nl && n.charAt(i) == '0';) ++i;\r\n\r\n if (i == nl) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n\r\n // Determine trailing zeros.\r\n for (; nl > 0 && n.charAt(--nl) == '0';);\r\n x.e = e - i - 1;\r\n x.c = [];\r\n\r\n // Convert string to array of digits without leading/trailing zeros.\r\n for (e = 0; i <= nl;) x.c[e++] = +n.charAt(i++);\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round Big x to a maximum of dp decimal places using rounding mode rm.\r\n * Called by stringify, P.div, P.round and P.sqrt.\r\n *\r\n * x {Big} The Big to round.\r\n * dp {number} Integer, 0 to MAX_DP inclusive.\r\n * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)\r\n * [more] {boolean} Whether the result of division was truncated.\r\n */\r\n function round(x, dp, rm, more) {\r\n var xc = x.c,\r\n i = x.e + dp + 1;\r\n\r\n if (i < xc.length) {\r\n if (rm === 1) {\r\n\r\n // xc[i] is the digit after the digit that may be rounded up.\r\n more = xc[i] >= 5;\r\n } else if (rm === 2) {\r\n more = xc[i] > 5 || xc[i] == 5 &&\r\n (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1);\r\n } else if (rm === 3) {\r\n more = more || !!xc[0];\r\n } else {\r\n more = false;\r\n if (rm !== 0) throw Error(INVALID_RM);\r\n }\r\n\r\n if (i < 1) {\r\n xc.length = 1;\r\n\r\n if (more) {\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n x.e = -dp;\r\n xc[0] = 1;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n } else {\r\n\r\n // Remove any digits after the required decimal places.\r\n xc.length = i--;\r\n\r\n // Round up?\r\n if (more) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up.\r\n for (; ++xc[i] > 9;) {\r\n xc[i] = 0;\r\n if (!i--) {\r\n ++x.e;\r\n xc.unshift(1);\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; !xc[--i];) xc.pop();\r\n }\r\n } else if (rm < 0 || rm > 3 || rm !== ~~rm) {\r\n throw Error(INVALID_RM);\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Return a string representing the value of Big x in normal or exponential notation.\r\n * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.\r\n *\r\n * x {Big}\r\n * id? {number} Caller id.\r\n * 1 toExponential\r\n * 2 toFixed\r\n * 3 toPrecision\r\n * 4 valueOf\r\n * n? {number|undefined} Caller's argument.\r\n * k? {number|undefined}\r\n */\r\n function stringify(x, id, n, k) {\r\n var e, s,\r\n Big = x.constructor,\r\n z = !x.c[0];\r\n\r\n if (n !== UNDEFINED) {\r\n if (n !== ~~n || n < (id == 3) || n > MAX_DP) {\r\n throw Error(id == 3 ? INVALID + 'precision' : INVALID_DP);\r\n }\r\n\r\n x = new Big(x);\r\n\r\n // The index of the digit that may be rounded up.\r\n n = k - x.e;\r\n\r\n // Round?\r\n if (x.c.length > ++k) round(x, n, Big.RM);\r\n\r\n // toFixed: recalculate k as x.e may have changed if value rounded up.\r\n if (id == 2) k = x.e + n + 1;\r\n\r\n // Append zeros?\r\n for (; x.c.length < k;) x.c.push(0);\r\n }\r\n\r\n e = x.e;\r\n s = x.c.join('');\r\n n = s.length;\r\n\r\n // Exponential notation?\r\n if (id != 2 && (id == 1 || id == 3 && k <= e || e <= Big.NE || e >= Big.PE)) {\r\n s = s.charAt(0) + (n > 1 ? '.' + s.slice(1) : '') + (e < 0 ? 'e' : 'e+') + e;\r\n\r\n // Normal notation.\r\n } else if (e < 0) {\r\n for (; ++e;) s = '0' + s;\r\n s = '0.' + s;\r\n } else if (e > 0) {\r\n if (++e > n) for (e -= n; e--;) s += '0';\r\n else if (e < n) s = s.slice(0, e) + '.' + s.slice(e);\r\n } else if (n > 1) {\r\n s = s.charAt(0) + '.' + s.slice(1);\r\n }\r\n\r\n return x.s < 0 && (!z || id == 4) ? '-' + s : s;\r\n }\r\n\r\n\r\n // Prototype/instance methods\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the absolute value of this Big.\r\n */\r\n P.abs = function () {\r\n var x = new this.constructor(this);\r\n x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return 1 if the value of this Big is greater than the value of Big y,\r\n * -1 if the value of this Big is less than the value of Big y, or\r\n * 0 if they have the same value.\r\n */\r\n P.cmp = function (y) {\r\n var isneg,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new x.constructor(y)).c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) return !xc[0] ? !yc[0] ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n isneg = i < 0;\r\n\r\n // Compare exponents.\r\n if (k != l) return k > l ^ isneg ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = -1; ++i < j;) {\r\n if (xc[i] != yc[i]) return xc[i] > yc[i] ^ isneg ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ isneg ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,\r\n * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\n P.div = function (y) {\r\n var x = this,\r\n Big = x.constructor,\r\n a = x.c, // dividend\r\n b = (y = new Big(y)).c, // divisor\r\n k = x.s == y.s ? 1 : -1,\r\n dp = Big.DP;\r\n\r\n if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP);\r\n\r\n // Divisor is zero?\r\n if (!b[0]) throw Error(DIV_BY_ZERO);\r\n\r\n // Dividend is 0? Return +-0.\r\n if (!a[0]) return new Big(k * 0);\r\n\r\n var bl, bt, n, cmp, ri,\r\n bz = b.slice(),\r\n ai = bl = b.length,\r\n al = a.length,\r\n r = a.slice(0, bl), // remainder\r\n rl = r.length,\r\n q = y, // quotient\r\n qc = q.c = [],\r\n qi = 0,\r\n d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result\r\n\r\n q.s = k;\r\n k = d < 0 ? 0 : d;\r\n\r\n // Create version of divisor with leading zero.\r\n bz.unshift(0);\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; rl++ < bl;) r.push(0);\r\n\r\n do {\r\n\r\n // n is how many times the divisor goes into current remainder.\r\n for (n = 0; n < 10; n++) {\r\n\r\n // Compare divisor and remainder.\r\n if (bl != (rl = r.length)) {\r\n cmp = bl > rl ? 1 : -1;\r\n } else {\r\n for (ri = -1, cmp = 0; ++ri < bl;) {\r\n if (b[ri] != r[ri]) {\r\n cmp = b[ri] > r[ri] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // If divisor < remainder, subtract divisor from remainder.\r\n if (cmp < 0) {\r\n\r\n // Remainder can't be more than 1 digit longer than divisor.\r\n // Equalise lengths using divisor with extra leading zero?\r\n for (bt = rl == bl ? b : bz; rl;) {\r\n if (r[--rl] < bt[rl]) {\r\n ri = rl;\r\n for (; ri && !r[--ri];) r[ri] = 9;\r\n --r[ri];\r\n r[rl] += 10;\r\n }\r\n r[rl] -= bt[rl];\r\n }\r\n\r\n for (; !r[0];) r.shift();\r\n } else {\r\n break;\r\n }\r\n }\r\n\r\n // Add the digit n to the result array.\r\n qc[qi++] = cmp ? n : ++n;\r\n\r\n // Update the remainder.\r\n if (r[0] && cmp) r[rl] = a[ai] || 0;\r\n else r = [a[ai]];\r\n\r\n } while ((ai++ < al || r[0] !== UNDEFINED) && k--);\r\n\r\n // Leading zero? Do not remove if result is simply zero (qi == 1).\r\n if (!qc[0] && qi != 1) {\r\n\r\n // There can't be more than one zero.\r\n qc.shift();\r\n q.e--;\r\n }\r\n\r\n // Round?\r\n if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED);\r\n\r\n return q;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is equal to the value of Big y, otherwise return false.\r\n */\r\n P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is greater than the value of Big y, otherwise return\r\n * false.\r\n */\r\n P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\n P.gte = function (y) {\r\n return this.cmp(y) > -1;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is less than the value of Big y, otherwise return false.\r\n */\r\n P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Big is less than or equal to the value of Big y, otherwise\r\n * return false.\r\n */\r\n P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big minus the value of Big y.\r\n */\r\n P.minus = P.sub = function (y) {\r\n var i, j, t, xlty,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xc = x.c.slice(),\r\n xe = x.e,\r\n yc = y.c,\r\n ye = y.e;\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // y is non-zero? x is non-zero? Or both are zero.\r\n return yc[0] ? (y.s = -b, y) : new Big(xc[0] ? x : 0);\r\n }\r\n\r\n // Determine which is the bigger number. Prepend zeros to equalise exponents.\r\n if (a = xe - ye) {\r\n\r\n if (xlty = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n for (b = a; b--;) t.push(0);\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = ((xlty = xc.length < yc.length) ? xc : yc).length;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n if (xc[b] != yc[b]) {\r\n xlty = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xlty) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n /*\r\n * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only\r\n * needs to start at yc.length.\r\n */\r\n if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--;) xc[i++] = 0;\r\n\r\n // Subtract yc from xc.\r\n for (b = i; j > a;) {\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i];) xc[i] = 9;\r\n --xc[i];\r\n xc[j] += 10;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--b] === 0;) xc.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] === 0;) {\r\n xc.shift();\r\n --ye;\r\n }\r\n\r\n if (!xc[0]) {\r\n\r\n // n - n = +0\r\n y.s = 1;\r\n\r\n // Result must be zero.\r\n xc = [ye = 0];\r\n }\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big modulo the value of Big y.\r\n */\r\n P.mod = function (y) {\r\n var ygtx,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n if (!y.c[0]) throw Error(DIV_BY_ZERO);\r\n\r\n x.s = y.s = 1;\r\n ygtx = y.cmp(x) == 1;\r\n x.s = a;\r\n y.s = b;\r\n\r\n if (ygtx) return new Big(x);\r\n\r\n a = Big.DP;\r\n b = Big.RM;\r\n Big.DP = Big.RM = 0;\r\n x = x.div(y);\r\n Big.DP = a;\r\n Big.RM = b;\r\n\r\n return this.minus(x.times(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big plus the value of Big y.\r\n */\r\n P.plus = P.add = function (y) {\r\n var t,\r\n x = this,\r\n Big = x.constructor,\r\n a = x.s,\r\n b = (y = new Big(y)).s;\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e,\r\n xc = x.c,\r\n ye = y.e,\r\n yc = y.c;\r\n\r\n // Either zero? y is non-zero? x is non-zero? Or both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0);\r\n\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents.\r\n // Note: reverse faster than unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--;) t.push(0);\r\n t.reverse();\r\n }\r\n\r\n // Point xc to the longer array.\r\n if (xc.length - yc.length < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n }\r\n\r\n a = yc.length;\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.\r\n for (b = 0; a; xc[a] %= 10) b = (xc[--a] = xc[a] + yc[a] + b) / 10 | 0;\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n\r\n if (b) {\r\n xc.unshift(b);\r\n ++ye;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (a = xc.length; xc[--a] === 0;) xc.pop();\r\n\r\n y.c = xc;\r\n y.e = ye;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a Big whose value is the value of this Big raised to the power n.\r\n * If n is negative, round to a maximum of Big.DP decimal places using rounding\r\n * mode Big.RM.\r\n *\r\n * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.\r\n */\r\n P.pow = function (n) {\r\n var x = this,\r\n one = new x.constructor(1),\r\n y = one,\r\n isneg = n < 0;\r\n\r\n if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER) throw Error(INVALID + 'exponent');\r\n if (isneg) n = -n;\r\n\r\n for (;;) {\r\n if (n & 1) y = y.times(x);\r\n n >>= 1;\r\n if (!n) break;\r\n x = x.times(x);\r\n }\r\n\r\n return isneg ? one.div(y) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big rounded using rounding mode rm\r\n * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a\r\n * multiple of 10**-dp.\r\n * If dp is not specified, round to 0 decimal places.\r\n * If rm is not specified, use Big.RM.\r\n *\r\n * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.\r\n * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)\r\n */\r\n P.round = function (dp, rm) {\r\n var Big = this.constructor;\r\n if (dp === UNDEFINED) dp = 0;\r\n else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP) throw Error(INVALID_DP);\r\n return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the square root of the value of this Big, rounded, if\r\n * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.\r\n */\r\n P.sqrt = function () {\r\n var r, c, t,\r\n x = this,\r\n Big = x.constructor,\r\n s = x.s,\r\n e = x.e,\r\n half = new Big(0.5);\r\n\r\n // Zero?\r\n if (!x.c[0]) return new Big(x);\r\n\r\n // Negative?\r\n if (s < 0) throw Error(NAME + 'No square root');\r\n\r\n // Estimate.\r\n s = Math.sqrt(x + '');\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.\r\n if (s === 0 || s === 1 / 0) {\r\n c = x.c.join('');\r\n if (!(c.length + e & 1)) c += '0';\r\n s = Math.sqrt(c);\r\n e = ((e + 1) / 2 | 0) - (e < 0 || e & 1);\r\n r = new Big((s == 1 / 0 ? '1e' : (s = s.toExponential()).slice(0, s.indexOf('e') + 1)) + e);\r\n } else {\r\n r = new Big(s);\r\n }\r\n\r\n e = r.e + (Big.DP += 4);\r\n\r\n // Newton-Raphson iteration.\r\n do {\r\n t = r;\r\n r = half.times(t.plus(x.div(t)));\r\n } while (t.c.slice(0, e).join('') !== r.c.slice(0, e).join(''));\r\n\r\n return round(r, Big.DP -= 4, Big.RM);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Big whose value is the value of this Big times the value of Big y.\r\n */\r\n P.times = P.mul = function (y) {\r\n var c,\r\n x = this,\r\n Big = x.constructor,\r\n xc = x.c,\r\n yc = (y = new Big(y)).c,\r\n a = xc.length,\r\n b = yc.length,\r\n i = x.e,\r\n j = y.e;\r\n\r\n // Determine sign of result.\r\n y.s = x.s == y.s ? 1 : -1;\r\n\r\n // Return signed 0 if either 0.\r\n if (!xc[0] || !yc[0]) return new Big(y.s * 0);\r\n\r\n // Initialise exponent of result as x.e + y.e.\r\n y.e = i + j;\r\n\r\n // If array xc has fewer digits than yc, swap xc and yc, and lengths.\r\n if (a < b) {\r\n c = xc;\r\n xc = yc;\r\n yc = c;\r\n j = a;\r\n a = b;\r\n b = j;\r\n }\r\n\r\n // Initialise coefficient array of result with zeros.\r\n for (c = new Array(j = a + b); j--;) c[j] = 0;\r\n\r\n // Multiply.\r\n\r\n // i is initially xc.length.\r\n for (i = b; i--;) {\r\n b = 0;\r\n\r\n // a is yc.length.\r\n for (j = a + i; j > i;) {\r\n\r\n // Current sum of products at this digit position, plus carry.\r\n b = c[j] + yc[i] * xc[j - i - 1] + b;\r\n c[j--] = b % 10;\r\n\r\n // carry\r\n b = b / 10 | 0;\r\n }\r\n\r\n c[j] = (c[j] + b) % 10;\r\n }\r\n\r\n // Increment result exponent if there is a final carry, otherwise remove leading zero.\r\n if (b) ++y.e;\r\n else c.shift();\r\n\r\n // Remove trailing zeros.\r\n for (i = c.length; !c[--i];) c.pop();\r\n y.c = c;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big in exponential notation to dp fixed decimal\r\n * places and rounded using Big.RM.\r\n *\r\n * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n */\r\n P.toExponential = function (dp) {\r\n return stringify(this, 1, dp, dp);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big in normal notation to dp fixed decimal\r\n * places and rounded using Big.RM.\r\n *\r\n * dp? {number} Integer, 0 to MAX_DP inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n */\r\n P.toFixed = function (dp) {\r\n return stringify(this, 2, dp, this.e + dp);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big rounded to sd significant digits using\r\n * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * sd {number} Integer, 1 to MAX_DP inclusive.\r\n */\r\n P.toPrecision = function (sd) {\r\n return stringify(this, 3, sd, sd - 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Omit the sign for negative zero.\r\n */\r\n P.toString = function () {\r\n return stringify(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Big.\r\n * Return exponential notation if this Big has a positive exponent equal to or greater than\r\n * Big.PE, or a negative exponent equal to or less than Big.NE.\r\n * Include the sign for negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return stringify(this, 4);\r\n };\r\n\r\n\r\n // Export\r\n\r\n\r\n Big = _Big_();\r\n\r\n Big['default'] = Big.Big = Big;\r\n\r\n //AMD.\r\n if (typeof define === 'function' && define.amd) {\r\n define(function () { return Big; });\r\n\r\n // Node and other CommonJS-like environments that support module.exports.\r\n } else if (typeof module !== 'undefined' && module.exports) {\r\n module.exports = Big;\r\n\r\n //Browser.\r\n } else {\r\n GLOBAL.Big = Big;\r\n }\r\n})(this);\r\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\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * 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 * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\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 // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\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(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(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 interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(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(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\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(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(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.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 buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.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 === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let 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 (!Array.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 let 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 const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\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 (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let 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 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) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let 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 coercion 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// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let 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 const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let 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 const length = this.length\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.toLocaleString = Buffer.prototype.toString\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 let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\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 let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let 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 (numberIsNaN(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 (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 let indexSize = 1\n let arrLength = arr.length\n let 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 let i\n if (dir) {\n let 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 let found = true\n for (let 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 const 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 const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(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 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 } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const 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 let 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 case 'latin1':\n case 'binary':\n return asciiWrite(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 const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let 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\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const 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 let res = ''\n let 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 let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; 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 const 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 const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\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 =\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 let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\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 let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\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.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\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 let val = this[offset]\n let mul = 1\n let 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 let i = byteLength\n let mul = 1\n let 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 offset = offset >>> 0\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 offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 offset = offset >>> 0\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 =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let 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 =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let 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 =\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 this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\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 this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let 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 const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let 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 (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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\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 this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\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 this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\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 this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\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 value = +value\n offset = offset >>> 0\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 value = +value\n offset = offset >>> 0\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 (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\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('Index out of range')\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 const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\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 (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 if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\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 let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().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 utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let 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 const byteArray = []\n for (let 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 let c, hi, lo\n const byteArray = []\n for (let 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 let i\n for (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\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","var global = typeof self !== 'undefined' ? self : this;\nvar __self__ = (function () {\nfunction F() {\nthis.fetch = false;\nthis.DOMException = global.DOMException\n}\nF.prototype = global;\nreturn new F();\n})();\n(function(self) {\n\nvar irrelevant = (function (exports) {\n\n var support = {\n searchParams: 'URLSearchParams' in self,\n iterable: 'Symbol' in self && 'iterator' in Symbol,\n blob:\n 'FileReader' in self &&\n 'Blob' in self &&\n (function() {\n try {\n new Blob();\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in self,\n arrayBuffer: 'ArrayBuffer' in self\n };\n\n function isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n }\n\n if (support.arrayBuffer) {\n var viewClasses = [\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 ];\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n };\n }\n\n function normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name);\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~]/i.test(name)) {\n throw new TypeError('Invalid character in header field name')\n }\n return name.toLowerCase()\n }\n\n function normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value);\n }\n return value\n }\n\n // Build a destructive iterator for the value list\n function iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift();\n return {done: value === undefined, value: value}\n }\n };\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n };\n }\n\n return iterator\n }\n\n function Headers(headers) {\n this.map = {};\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value);\n }, this);\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1]);\n }, this);\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name]);\n }, this);\n }\n }\n\n Headers.prototype.append = function(name, value) {\n name = normalizeName(name);\n value = normalizeValue(value);\n var oldValue = this.map[name];\n this.map[name] = oldValue ? oldValue + ', ' + value : value;\n };\n\n Headers.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)];\n };\n\n Headers.prototype.get = function(name) {\n name = normalizeName(name);\n return this.has(name) ? this.map[name] : null\n };\n\n Headers.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n };\n\n Headers.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value);\n };\n\n Headers.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this);\n }\n }\n };\n\n Headers.prototype.keys = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push(name);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.values = function() {\n var items = [];\n this.forEach(function(value) {\n items.push(value);\n });\n return iteratorFor(items)\n };\n\n Headers.prototype.entries = function() {\n var items = [];\n this.forEach(function(value, name) {\n items.push([name, value]);\n });\n return iteratorFor(items)\n };\n\n if (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries;\n }\n\n function consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true;\n }\n\n function fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result);\n };\n reader.onerror = function() {\n reject(reader.error);\n };\n })\n }\n\n function readBlobAsArrayBuffer(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsArrayBuffer(blob);\n return promise\n }\n\n function readBlobAsText(blob) {\n var reader = new FileReader();\n var promise = fileReaderReady(reader);\n reader.readAsText(blob);\n return promise\n }\n\n function readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf);\n var chars = new Array(view.length);\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i]);\n }\n return chars.join('')\n }\n\n function bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength);\n view.set(new Uint8Array(buf));\n return view.buffer\n }\n }\n\n function Body() {\n this.bodyUsed = false;\n\n this._initBody = function(body) {\n this._bodyInit = body;\n if (!body) {\n this._bodyText = '';\n } else if (typeof body === 'string') {\n this._bodyText = body;\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body;\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body;\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString();\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer);\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer]);\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body);\n } else {\n this._bodyText = body = Object.prototype.toString.call(body);\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8');\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type);\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n }\n };\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n };\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n return consumed(this) || Promise.resolve(this._bodyArrayBuffer)\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n };\n }\n\n this.text = function() {\n var rejected = consumed(this);\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n };\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n };\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n };\n\n return this\n }\n\n // HTTP methods whose capitalization should be normalized\n var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT'];\n\n function normalizeMethod(method) {\n var upcased = method.toUpperCase();\n return methods.indexOf(upcased) > -1 ? upcased : method\n }\n\n function Request(input, options) {\n options = options || {};\n var body = options.body;\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url;\n this.credentials = input.credentials;\n if (!options.headers) {\n this.headers = new Headers(input.headers);\n }\n this.method = input.method;\n this.mode = input.mode;\n this.signal = input.signal;\n if (!body && input._bodyInit != null) {\n body = input._bodyInit;\n input.bodyUsed = true;\n }\n } else {\n this.url = String(input);\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin';\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers);\n }\n this.method = normalizeMethod(options.method || this.method || 'GET');\n this.mode = options.mode || this.mode || null;\n this.signal = options.signal || this.signal;\n this.referrer = null;\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body);\n }\n\n Request.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n };\n\n function decode(body) {\n var form = new FormData();\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=');\n var name = split.shift().replace(/\\+/g, ' ');\n var value = split.join('=').replace(/\\+/g, ' ');\n form.append(decodeURIComponent(name), decodeURIComponent(value));\n }\n });\n return form\n }\n\n function parseHeaders(rawHeaders) {\n var headers = new Headers();\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ');\n preProcessedHeaders.split(/\\r?\\n/).forEach(function(line) {\n var parts = line.split(':');\n var key = parts.shift().trim();\n if (key) {\n var value = parts.join(':').trim();\n headers.append(key, value);\n }\n });\n return headers\n }\n\n Body.call(Request.prototype);\n\n function Response(bodyInit, options) {\n if (!options) {\n options = {};\n }\n\n this.type = 'default';\n this.status = options.status === undefined ? 200 : options.status;\n this.ok = this.status >= 200 && this.status < 300;\n this.statusText = 'statusText' in options ? options.statusText : 'OK';\n this.headers = new Headers(options.headers);\n this.url = options.url || '';\n this._initBody(bodyInit);\n }\n\n Body.call(Response.prototype);\n\n Response.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n };\n\n Response.error = function() {\n var response = new Response(null, {status: 0, statusText: ''});\n response.type = 'error';\n return response\n };\n\n var redirectStatuses = [301, 302, 303, 307, 308];\n\n Response.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n };\n\n exports.DOMException = self.DOMException;\n try {\n new exports.DOMException();\n } catch (err) {\n exports.DOMException = function(message, name) {\n this.message = message;\n this.name = name;\n var error = Error(message);\n this.stack = error.stack;\n };\n exports.DOMException.prototype = Object.create(Error.prototype);\n exports.DOMException.prototype.constructor = exports.DOMException;\n }\n\n function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init);\n\n if (request.signal && request.signal.aborted) {\n return reject(new exports.DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest();\n\n function abortXhr() {\n xhr.abort();\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n };\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL');\n var body = 'response' in xhr ? xhr.response : xhr.responseText;\n resolve(new Response(body, options));\n };\n\n xhr.onerror = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.ontimeout = function() {\n reject(new TypeError('Network request failed'));\n };\n\n xhr.onabort = function() {\n reject(new exports.DOMException('Aborted', 'AbortError'));\n };\n\n xhr.open(request.method, request.url, true);\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true;\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false;\n }\n\n if ('responseType' in xhr && support.blob) {\n xhr.responseType = 'blob';\n }\n\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value);\n });\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr);\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr);\n }\n };\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit);\n })\n }\n\n fetch.polyfill = true;\n\n if (!self.fetch) {\n self.fetch = fetch;\n self.Headers = Headers;\n self.Request = Request;\n self.Response = Response;\n }\n\n exports.Headers = Headers;\n exports.Request = Request;\n exports.Response = Response;\n exports.fetch = fetch;\n\n Object.defineProperty(exports, '__esModule', { value: true });\n\n return exports;\n\n})({});\n})(__self__);\n__self__.fetch.ponyfill = true;\n// Remove \"polyfill\" property added by whatwg-fetch\ndelete __self__.fetch.polyfill;\n// Choose between native implementation (global) or custom implementation (__self__)\n// var ctx = global.fetch ? global : __self__;\nvar ctx = __self__; // this line disable service worker support temporarily\nexports = ctx.fetch // To enable: import fetch from 'cross-fetch'\nexports.default = ctx.fetch // For TypeScript consumers without esModuleInterop.\nexports.fetch = ctx.fetch // To enable: import {fetch} from 'cross-fetch'\nexports.Headers = ctx.Headers\nexports.Request = ctx.Request\nexports.Response = ctx.Response\nmodule.exports = exports\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 _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}","/*! decimal.js-light v2.5.1 https://github.com/MikeMcl/decimal.js-light/LICENCE */\r\n;(function (globalScope) {\r\n 'use strict';\r\n\r\n\r\n /*\r\n * decimal.js-light v2.5.1\r\n * An arbitrary-precision Decimal type for JavaScript.\r\n * https://github.com/MikeMcl/decimal.js-light\r\n * Copyright (c) 2020 Michael Mclaughlin \r\n * MIT Expat Licence\r\n */\r\n\r\n\r\n // ----------------------------------- EDITABLE DEFAULTS ------------------------------------ //\r\n\r\n\r\n // The limit on the value of `precision`, and on the value of the first argument to\r\n // `toDecimalPlaces`, `toExponential`, `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n var MAX_DIGITS = 1e9, // 0 to 1e9\r\n\r\n\r\n // The initial configuration properties of the Decimal constructor.\r\n Decimal = {\r\n\r\n // These values must be integers within the stated ranges (inclusive).\r\n // Most of these values can be changed during run-time using `Decimal.config`.\r\n\r\n // The maximum number of significant digits of the result of a calculation or base conversion.\r\n // E.g. `Decimal.config({ precision: 20 });`\r\n precision: 20, // 1 to MAX_DIGITS\r\n\r\n // The rounding mode used by default by `toInteger`, `toDecimalPlaces`, `toExponential`,\r\n // `toFixed`, `toPrecision` and `toSignificantDigits`.\r\n //\r\n // ROUND_UP 0 Away from zero.\r\n // ROUND_DOWN 1 Towards zero.\r\n // ROUND_CEIL 2 Towards +Infinity.\r\n // ROUND_FLOOR 3 Towards -Infinity.\r\n // ROUND_HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // ROUND_HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // ROUND_HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // ROUND_HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // ROUND_HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n //\r\n // E.g.\r\n // `Decimal.rounding = 4;`\r\n // `Decimal.rounding = Decimal.ROUND_HALF_UP;`\r\n rounding: 4, // 0 to 8\r\n\r\n // The exponent value at and beneath which `toString` returns exponential notation.\r\n // JavaScript numbers: -7\r\n toExpNeg: -7, // 0 to -MAX_E\r\n\r\n // The exponent value at and above which `toString` returns exponential notation.\r\n // JavaScript numbers: 21\r\n toExpPos: 21, // 0 to MAX_E\r\n\r\n // The natural logarithm of 10.\r\n // 115 digits\r\n LN10: '2.302585092994045684017991454684364207601101488628772976033327900967572609677352480235997205089598298341967784042286'\r\n },\r\n\r\n\r\n // ----------------------------------- END OF EDITABLE DEFAULTS ------------------------------- //\r\n\r\n\r\n external = true,\r\n\r\n decimalError = '[DecimalError] ',\r\n invalidArgument = decimalError + 'Invalid argument: ',\r\n exponentOutOfRange = decimalError + 'Exponent out of range: ',\r\n\r\n mathfloor = Math.floor,\r\n mathpow = Math.pow,\r\n\r\n isDecimal = /^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,\r\n\r\n ONE,\r\n BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_SAFE_INTEGER = 9007199254740991,\r\n MAX_E = mathfloor(MAX_SAFE_INTEGER / LOG_BASE), // 1286742750677284\r\n\r\n // Decimal.prototype object\r\n P = {};\r\n\r\n\r\n // Decimal prototype methods\r\n\r\n\r\n /*\r\n * absoluteValue abs\r\n * comparedTo cmp\r\n * decimalPlaces dp\r\n * dividedBy div\r\n * dividedToIntegerBy idiv\r\n * equals eq\r\n * exponent\r\n * greaterThan gt\r\n * greaterThanOrEqualTo gte\r\n * isInteger isint\r\n * isNegative isneg\r\n * isPositive ispos\r\n * isZero\r\n * lessThan lt\r\n * lessThanOrEqualTo lte\r\n * logarithm log\r\n * minus sub\r\n * modulo mod\r\n * naturalExponential exp\r\n * naturalLogarithm ln\r\n * negated neg\r\n * plus add\r\n * precision sd\r\n * squareRoot sqrt\r\n * times mul\r\n * toDecimalPlaces todp\r\n * toExponential\r\n * toFixed\r\n * toInteger toint\r\n * toNumber\r\n * toPower pow\r\n * toPrecision\r\n * toSignificantDigits tosd\r\n * toString\r\n * valueOf val\r\n */\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the absolute value of this Decimal.\r\n *\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new this.constructor(this);\r\n if (x.s) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this Decimal is greater than the value of `y`,\r\n * -1 if the value of this Decimal is less than the value of `y`,\r\n * 0 if they have the same value\r\n *\r\n */\r\n P.comparedTo = P.cmp = function (y) {\r\n var i, j, xdL, ydL,\r\n x = this;\r\n\r\n y = new x.constructor(y);\r\n\r\n // Signs differ?\r\n if (x.s !== y.s) return x.s || -y.s;\r\n\r\n // Compare exponents.\r\n if (x.e !== y.e) return x.e > y.e ^ x.s < 0 ? 1 : -1;\r\n\r\n xdL = x.d.length;\r\n ydL = y.d.length;\r\n\r\n // Compare digit by digit.\r\n for (i = 0, j = xdL < ydL ? xdL : ydL; i < j; ++i) {\r\n if (x.d[i] !== y.d[i]) return x.d[i] > y.d[i] ^ x.s < 0 ? 1 : -1;\r\n }\r\n\r\n // Compare lengths.\r\n return xdL === ydL ? 0 : xdL > ydL ^ x.s < 0 ? 1 : -1;\r\n };\r\n\r\n\r\n /*\r\n * Return the number of decimal places of the value of this Decimal.\r\n *\r\n */\r\n P.decimalPlaces = P.dp = function () {\r\n var x = this,\r\n w = x.d.length - 1,\r\n dp = (w - x.e) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n w = x.d[w];\r\n if (w) for (; w % 10 == 0; w /= 10) dp--;\r\n\r\n return dp < 0 ? 0 : dp;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal divided by `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.dividedBy = P.div = function (y) {\r\n return divide(this, new this.constructor(y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the integer part of dividing the value of this Decimal\r\n * by the value of `y`, truncated to `precision` significant digits.\r\n *\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(divide(x, new Ctor(y), 0, 1), Ctor.precision);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is equal to the value of `y`, otherwise return false.\r\n *\r\n */\r\n P.equals = P.eq = function (y) {\r\n return !this.cmp(y);\r\n };\r\n\r\n\r\n /*\r\n * Return the (base 10) exponent value of this Decimal (this.e is the base 10000000 exponent).\r\n *\r\n */\r\n P.exponent = function () {\r\n return getBase10Exponent(this);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than the value of `y`, otherwise return\r\n * false.\r\n *\r\n */\r\n P.greaterThan = P.gt = function (y) {\r\n return this.cmp(y) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is greater than or equal to the value of `y`,\r\n * otherwise return false.\r\n *\r\n */\r\n P.greaterThanOrEqualTo = P.gte = function (y) {\r\n return this.cmp(y) >= 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is an integer, otherwise return false.\r\n *\r\n */\r\n P.isInteger = P.isint = function () {\r\n return this.e > this.d.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is negative, otherwise return false.\r\n *\r\n */\r\n P.isNegative = P.isneg = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is positive, otherwise return false.\r\n *\r\n */\r\n P.isPositive = P.ispos = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is 0, otherwise return false.\r\n *\r\n */\r\n P.isZero = function () {\r\n return this.s === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThan = P.lt = function (y) {\r\n return this.cmp(y) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this Decimal is less than or equal to `y`, otherwise return false.\r\n *\r\n */\r\n P.lessThanOrEqualTo = P.lte = function (y) {\r\n return this.cmp(y) < 1;\r\n };\r\n\r\n\r\n /*\r\n * Return the logarithm of the value of this Decimal to the specified base, truncated to\r\n * `precision` significant digits.\r\n *\r\n * If no base is specified, return log[10](x).\r\n *\r\n * log[base](x) = ln(x) / ln(base)\r\n *\r\n * The maximum error of the result is 1 ulp (unit in the last place).\r\n *\r\n * [base] {number|string|Decimal} The base of the logarithm.\r\n *\r\n */\r\n P.logarithm = P.log = function (base) {\r\n var r,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision,\r\n wpr = pr + 5;\r\n\r\n // Default base is 10.\r\n if (base === void 0) {\r\n base = new Ctor(10);\r\n } else {\r\n base = new Ctor(base);\r\n\r\n // log[-b](x) = NaN\r\n // log[0](x) = NaN\r\n // log[1](x) = NaN\r\n if (base.s < 1 || base.eq(ONE)) throw Error(decimalError + 'NaN');\r\n }\r\n\r\n // log[b](-x) = NaN\r\n // log[b](0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // log[b](1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n external = false;\r\n r = divide(ln(x, wpr), ln(base, wpr), wpr);\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal minus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.minus = P.sub = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? subtract(x, y) : add(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal modulo `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.modulo = P.mod = function (y) {\r\n var q,\r\n x = this,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n y = new Ctor(y);\r\n\r\n // x % 0 = NaN\r\n if (!y.s) throw Error(decimalError + 'NaN');\r\n\r\n // Return x if x is 0.\r\n if (!x.s) return round(new Ctor(x), pr);\r\n\r\n // Prevent rounding of intermediate calculations.\r\n external = false;\r\n q = divide(x, y, 0, 1).times(y);\r\n external = true;\r\n\r\n return x.minus(q);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of the value of this Decimal,\r\n * i.e. the base e raised to the power the value of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.naturalExponential = P.exp = function () {\r\n return exp(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of the value of this Decimal,\r\n * truncated to `precision` significant digits.\r\n *\r\n */\r\n P.naturalLogarithm = P.ln = function () {\r\n return ln(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal negated, i.e. as if multiplied by\r\n * -1.\r\n *\r\n */\r\n P.negated = P.neg = function () {\r\n var x = new this.constructor(this);\r\n x.s = -x.s || 0;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal plus `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.plus = P.add = function (y) {\r\n var x = this;\r\n y = new x.constructor(y);\r\n return x.s == y.s ? add(x, y) : subtract(x, (y.s = -y.s, y));\r\n };\r\n\r\n\r\n /*\r\n * Return the number of significant digits of the value of this Decimal.\r\n *\r\n * [z] {boolean|number} Whether to count integer-part trailing zeros: true, false, 1 or 0.\r\n *\r\n */\r\n P.precision = P.sd = function (z) {\r\n var e, sd, w,\r\n x = this;\r\n\r\n if (z !== void 0 && z !== !!z && z !== 1 && z !== 0) throw Error(invalidArgument + z);\r\n\r\n e = getBase10Exponent(x) + 1;\r\n w = x.d.length - 1;\r\n sd = w * LOG_BASE + 1;\r\n w = x.d[w];\r\n\r\n // If non-zero...\r\n if (w) {\r\n\r\n // Subtract the number of trailing zeros of the last word.\r\n for (; w % 10 == 0; w /= 10) sd--;\r\n\r\n // Add the number of digits of the first word.\r\n for (w = x.d[0]; w >= 10; w /= 10) sd++;\r\n }\r\n\r\n return z && e > sd ? e : sd;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the square root of this Decimal, truncated to `precision`\r\n * significant digits.\r\n *\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var e, n, pr, r, s, t, wpr,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n // Negative or zero?\r\n if (x.s < 1) {\r\n if (!x.s) return new Ctor(0);\r\n\r\n // sqrt(-x) = NaN\r\n throw Error(decimalError + 'NaN');\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n external = false;\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+x);\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = digitsToString(x.d);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(n);\r\n e = mathfloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new Ctor(n);\r\n } else {\r\n r = new Ctor(s.toString());\r\n }\r\n\r\n pr = Ctor.precision;\r\n s = wpr = pr + 3;\r\n\r\n // Newton-Raphson iteration.\r\n for (;;) {\r\n t = r;\r\n r = t.plus(divide(x, t, wpr + 2)).times(0.5);\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === (n = digitsToString(r.d)).slice(0, wpr)) {\r\n n = n.slice(wpr - 3, wpr + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits are 9999 or\r\n // 4999, i.e. approaching a rounding boundary, continue the iteration.\r\n if (s == wpr && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the exact result as the\r\n // nines may infinitely repeat.\r\n round(t, pr + 1, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n } else if (n != '9999') {\r\n break;\r\n }\r\n\r\n wpr += 4;\r\n }\r\n }\r\n\r\n external = true;\r\n\r\n return round(r, pr);\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal times `y`, truncated to\r\n * `precision` significant digits.\r\n *\r\n */\r\n P.times = P.mul = function (y) {\r\n var carry, e, i, k, r, rL, t, xdL, ydL,\r\n x = this,\r\n Ctor = x.constructor,\r\n xd = x.d,\r\n yd = (y = new Ctor(y)).d;\r\n\r\n // Return 0 if either is 0.\r\n if (!x.s || !y.s) return new Ctor(0);\r\n\r\n y.s *= x.s;\r\n e = x.e + y.e;\r\n xdL = xd.length;\r\n ydL = yd.length;\r\n\r\n // Ensure xd points to the longer array.\r\n if (xdL < ydL) {\r\n r = xd;\r\n xd = yd;\r\n yd = r;\r\n rL = xdL;\r\n xdL = ydL;\r\n ydL = rL;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n r = [];\r\n rL = xdL + ydL;\r\n for (i = rL; i--;) r.push(0);\r\n\r\n // Multiply!\r\n for (i = ydL; --i >= 0;) {\r\n carry = 0;\r\n for (k = xdL + i; k > i;) {\r\n t = r[k] + yd[i] * xd[k - i - 1] + carry;\r\n r[k--] = t % BASE | 0;\r\n carry = t / BASE | 0;\r\n }\r\n\r\n r[k] = (r[k] + carry) % BASE | 0;\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; !r[--rL];) r.pop();\r\n\r\n if (carry) ++e;\r\n else r.shift();\r\n\r\n y.d = r;\r\n y.e = e;\r\n\r\n return external ? round(y, Ctor.precision) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `dp`\r\n * decimal places using rounding mode `rm` or `rounding` if `rm` is omitted.\r\n *\r\n * If `dp` is omitted, return a new Decimal whose value is the value of this Decimal.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toDecimalPlaces = P.todp = function (dp, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n x = new Ctor(x);\r\n if (dp === void 0) return x;\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n return round(x, dp + getBase10Exponent(x) + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in exponential notation rounded to\r\n * `dp` fixed decimal places using rounding mode `rounding`.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toExponential = function (dp, rm) {\r\n var str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) {\r\n str = toString(x, true);\r\n } else {\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), dp + 1, rm);\r\n str = toString(x, true, dp + 1);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal in normal (fixed-point) notation to\r\n * `dp` fixed decimal places and rounded using rounding mode `rm` or `rounding` if `rm` is\r\n * omitted.\r\n *\r\n * As with JavaScript numbers, (-0).toFixed(0) is '0', but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.\r\n * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.\r\n * (-0).toFixed(3) is '0.000'.\r\n * (-0.5).toFixed(0) is '-0'.\r\n *\r\n */\r\n P.toFixed = function (dp, rm) {\r\n var str, y,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (dp === void 0) return toString(x);\r\n\r\n checkInt32(dp, 0, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n y = round(new Ctor(x), dp + getBase10Exponent(x) + 1, rm);\r\n str = toString(y.abs(), false, dp + getBase10Exponent(y) + 1);\r\n\r\n // To determine whether to add the minus sign look at the value before it was rounded,\r\n // i.e. look at `x` rather than `y`.\r\n return x.isneg() && !x.isZero() ? '-' + str : str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a whole number using\r\n * rounding mode `rounding`.\r\n *\r\n */\r\n P.toInteger = P.toint = function () {\r\n var x = this,\r\n Ctor = x.constructor;\r\n return round(new Ctor(x), getBase10Exponent(x) + 1, Ctor.rounding);\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this Decimal converted to a number primitive.\r\n *\r\n */\r\n P.toNumber = function () {\r\n return +this;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal raised to the power `y`,\r\n * truncated to `precision` significant digits.\r\n *\r\n * For non-integer or very large exponents pow(x, y) is calculated using\r\n *\r\n * x^y = exp(y*ln(x))\r\n *\r\n * The maximum error is 1 ulp (unit in last place).\r\n *\r\n * y {number|string|Decimal} The power to which to raise this Decimal.\r\n *\r\n */\r\n P.toPower = P.pow = function (y) {\r\n var e, k, pr, r, sign, yIsInt,\r\n x = this,\r\n Ctor = x.constructor,\r\n guard = 12,\r\n yn = +(y = new Ctor(y));\r\n\r\n // pow(x, 0) = 1\r\n if (!y.s) return new Ctor(ONE);\r\n\r\n x = new Ctor(x);\r\n\r\n // pow(0, y > 0) = 0\r\n // pow(0, y < 0) = Infinity\r\n if (!x.s) {\r\n if (y.s < 1) throw Error(decimalError + 'Infinity');\r\n return x;\r\n }\r\n\r\n // pow(1, y) = 1\r\n if (x.eq(ONE)) return x;\r\n\r\n pr = Ctor.precision;\r\n\r\n // pow(x, 1) = x\r\n if (y.eq(ONE)) return round(x, pr);\r\n\r\n e = y.e;\r\n k = y.d.length - 1;\r\n yIsInt = e >= k;\r\n sign = x.s;\r\n\r\n if (!yIsInt) {\r\n\r\n // pow(x < 0, y non-integer) = NaN\r\n if (sign < 0) throw Error(decimalError + 'NaN');\r\n\r\n // If y is a small integer use the 'exponentiation by squaring' algorithm.\r\n } else if ((k = yn < 0 ? -yn : yn) <= MAX_SAFE_INTEGER) {\r\n r = new Ctor(ONE);\r\n\r\n // Max k of 9007199254740991 takes 53 loop iterations.\r\n // Maximum digits array length; leaves [28, 34] guard digits.\r\n e = Math.ceil(pr / LOG_BASE + 4);\r\n\r\n external = false;\r\n\r\n for (;;) {\r\n if (k % 2) {\r\n r = r.times(x);\r\n truncate(r.d, e);\r\n }\r\n\r\n k = mathfloor(k / 2);\r\n if (k === 0) break;\r\n\r\n x = x.times(x);\r\n truncate(x.d, e);\r\n }\r\n\r\n external = true;\r\n\r\n return y.s < 0 ? new Ctor(ONE).div(r) : round(r, pr);\r\n }\r\n\r\n // Result is negative if x is negative and the last digit of integer y is odd.\r\n sign = sign < 0 && y.d[Math.max(e, k)] & 1 ? -1 : 1;\r\n\r\n x.s = 1;\r\n external = false;\r\n r = y.times(ln(x, pr + guard));\r\n external = true;\r\n r = exp(r);\r\n r.s = sign;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal rounded to `sd` significant digits\r\n * using rounding mode `rounding`.\r\n *\r\n * Return exponential notation if `sd` is less than the number of digits necessary to represent\r\n * the integer part of the value in normal notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n var e, str,\r\n x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n e = getBase10Exponent(x);\r\n str = toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n\r\n x = round(new Ctor(x), sd, rm);\r\n e = getBase10Exponent(x);\r\n str = toString(x, sd <= e || e <= Ctor.toExpNeg, sd);\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the value of this Decimal rounded to a maximum of `sd`\r\n * significant digits using rounding mode `rm`, or to `precision` and `rounding` respectively if\r\n * omitted.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX_DIGITS inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n */\r\n P.toSignificantDigits = P.tosd = function (sd, rm) {\r\n var x = this,\r\n Ctor = x.constructor;\r\n\r\n if (sd === void 0) {\r\n sd = Ctor.precision;\r\n rm = Ctor.rounding;\r\n } else {\r\n checkInt32(sd, 1, MAX_DIGITS);\r\n\r\n if (rm === void 0) rm = Ctor.rounding;\r\n else checkInt32(rm, 0, 8);\r\n }\r\n\r\n return round(new Ctor(x), sd, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this Decimal.\r\n *\r\n * Return exponential notation if this Decimal has a positive exponent equal to or greater than\r\n * `toExpPos`, or a negative exponent equal to or less than `toExpNeg`.\r\n *\r\n */\r\n P.toString = P.valueOf = P.val = P.toJSON = function () {\r\n var x = this,\r\n e = getBase10Exponent(x),\r\n Ctor = x.constructor;\r\n\r\n return toString(x, e <= Ctor.toExpNeg || e >= Ctor.toExpPos);\r\n };\r\n\r\n\r\n // Helper functions for Decimal.prototype (P) and/or Decimal methods, and their callers.\r\n\r\n\r\n /*\r\n * add P.minus, P.plus\r\n * checkInt32 P.todp, P.toExponential, P.toFixed, P.toPrecision, P.tosd\r\n * digitsToString P.log, P.sqrt, P.pow, toString, exp, ln\r\n * divide P.div, P.idiv, P.log, P.mod, P.sqrt, exp, ln\r\n * exp P.exp, P.pow\r\n * getBase10Exponent P.exponent, P.sd, P.toint, P.sqrt, P.todp, P.toFixed, P.toPrecision,\r\n * P.toString, divide, round, toString, exp, ln\r\n * getLn10 P.log, ln\r\n * getZeroString digitsToString, toString\r\n * ln P.log, P.ln, P.pow, exp\r\n * parseDecimal Decimal\r\n * round P.abs, P.idiv, P.log, P.minus, P.mod, P.neg, P.plus, P.toint, P.sqrt,\r\n * P.times, P.todp, P.toExponential, P.toFixed, P.pow, P.toPrecision, P.tosd,\r\n * divide, getLn10, exp, ln\r\n * subtract P.minus, P.plus\r\n * toString P.toExponential, P.toFixed, P.toPrecision, P.toString, P.valueOf\r\n * truncate P.pow\r\n *\r\n * Throws: P.log, P.mod, P.sd, P.sqrt, P.pow, checkInt32, divide, round,\r\n * getLn10, exp, ln, parseDecimal, Decimal, config\r\n */\r\n\r\n\r\n function add(x, y) {\r\n var carry, d, e, i, k, len, xd, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // If either is zero...\r\n if (!x.s || !y.s) {\r\n\r\n // Return x if y is zero.\r\n // Return y if y is non-zero.\r\n if (!y.s) y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are finite, non-zero numbers with the same sign.\r\n\r\n k = x.e;\r\n e = y.e;\r\n xd = xd.slice();\r\n i = k - e;\r\n\r\n // If base 1e7 exponents differ...\r\n if (i) {\r\n if (i < 0) {\r\n d = xd;\r\n i = -i;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = k;\r\n len = xd.length;\r\n }\r\n\r\n // Limit number of zeros prepended to max(ceil(pr / LOG_BASE), len) + 1.\r\n k = Math.ceil(pr / LOG_BASE);\r\n len = k > len ? k + 1 : len + 1;\r\n\r\n if (i > len) {\r\n i = len;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents. Note: Faster to use reverse then do unshifts.\r\n d.reverse();\r\n for (; i--;) d.push(0);\r\n d.reverse();\r\n }\r\n\r\n len = xd.length;\r\n i = yd.length;\r\n\r\n // If yd is longer than xd, swap xd and yd so xd points to the longer array.\r\n if (len - i < 0) {\r\n i = len;\r\n d = yd;\r\n yd = xd;\r\n xd = d;\r\n }\r\n\r\n // Only start adding at yd.length - 1 as the further digits of xd can be left as they are.\r\n for (carry = 0; i;) {\r\n carry = (xd[--i] = xd[i] + yd[i] + carry) / BASE | 0;\r\n xd[i] %= BASE;\r\n }\r\n\r\n if (carry) {\r\n xd.unshift(carry);\r\n ++e;\r\n }\r\n\r\n // Remove trailing zeros.\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n for (len = xd.length; xd[--len] == 0;) xd.pop();\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function checkInt32(i, min, max) {\r\n if (i !== ~~i || i < min || i > max) {\r\n throw Error(invalidArgument + i);\r\n }\r\n }\r\n\r\n\r\n function digitsToString(d) {\r\n var i, k, ws,\r\n indexOfLastWord = d.length - 1,\r\n str = '',\r\n w = d[0];\r\n\r\n if (indexOfLastWord > 0) {\r\n str += w;\r\n for (i = 1; i < indexOfLastWord; i++) {\r\n ws = d[i] + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n str += ws;\r\n }\r\n\r\n w = d[i];\r\n ws = w + '';\r\n k = LOG_BASE - ws.length;\r\n if (k) str += getZeroString(k);\r\n } else if (w === 0) {\r\n return '0';\r\n }\r\n\r\n // Remove trailing zeros of last w.\r\n for (; w % 10 === 0;) w /= 10;\r\n\r\n return str + w;\r\n }\r\n\r\n\r\n var divide = (function () {\r\n\r\n // Assumes non-zero x and k, and hence non-zero result.\r\n function multiplyInteger(x, k) {\r\n var temp,\r\n carry = 0,\r\n i = x.length;\r\n\r\n for (x = x.slice(); i--;) {\r\n temp = x[i] * k + carry;\r\n x[i] = temp % BASE | 0;\r\n carry = temp / BASE | 0;\r\n }\r\n\r\n if (carry) x.unshift(carry);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, r;\r\n\r\n if (aL != bL) {\r\n r = aL > bL ? 1 : -1;\r\n } else {\r\n for (i = r = 0; i < aL; i++) {\r\n if (a[i] != b[i]) {\r\n r = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return r;\r\n }\r\n\r\n function subtract(a, b, aL) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * BASE + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1;) a.shift();\r\n }\r\n\r\n return function (x, y, pr, dp) {\r\n var cmp, e, i, k, prod, prodL, q, qd, rem, remL, rem0, sd, t, xi, xL, yd0, yL, yz,\r\n Ctor = x.constructor,\r\n sign = x.s == y.s ? 1 : -1,\r\n xd = x.d,\r\n yd = y.d;\r\n\r\n // Either 0?\r\n if (!x.s) return new Ctor(x);\r\n if (!y.s) throw Error(decimalError + 'Division by zero');\r\n\r\n e = x.e - y.e;\r\n yL = yd.length;\r\n xL = xd.length;\r\n q = new Ctor(sign);\r\n qd = q.d = [];\r\n\r\n // Result exponent may be one less than e.\r\n for (i = 0; yd[i] == (xd[i] || 0); ) ++i;\r\n if (yd[i] > (xd[i] || 0)) --e;\r\n\r\n if (pr == null) {\r\n sd = pr = Ctor.precision;\r\n } else if (dp) {\r\n sd = pr + (getBase10Exponent(x) - getBase10Exponent(y)) + 1;\r\n } else {\r\n sd = pr;\r\n }\r\n\r\n if (sd < 0) return new Ctor(0);\r\n\r\n // Convert precision in number of base 10 digits to base 1e7 digits.\r\n sd = sd / LOG_BASE + 2 | 0;\r\n i = 0;\r\n\r\n // divisor < 1e7\r\n if (yL == 1) {\r\n k = 0;\r\n yd = yd[0];\r\n sd++;\r\n\r\n // k is the carry.\r\n for (; (i < xL || k) && sd--; i++) {\r\n t = k * BASE + (xd[i] || 0);\r\n qd[i] = t / yd | 0;\r\n k = t % yd | 0;\r\n }\r\n\r\n // divisor >= 1e7\r\n } else {\r\n\r\n // Normalise xd and yd so highest order digit of yd is >= BASE/2\r\n k = BASE / (yd[0] + 1) | 0;\r\n\r\n if (k > 1) {\r\n yd = multiplyInteger(yd, k);\r\n xd = multiplyInteger(xd, k);\r\n yL = yd.length;\r\n xL = xd.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xd.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL;) rem[remL++] = 0;\r\n\r\n yz = yd.slice();\r\n yz.unshift(0);\r\n yd0 = yd[0];\r\n\r\n if (yd[1] >= BASE / 2) ++yd0;\r\n\r\n do {\r\n k = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, k.\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * BASE + (rem[1] || 0);\r\n\r\n // k will be how many times the divisor goes into the current remainder.\r\n k = rem0 / yd0 | 0;\r\n\r\n // Algorithm:\r\n // 1. product = divisor * trial digit (k)\r\n // 2. if product > remainder: product -= divisor, k--\r\n // 3. remainder -= product\r\n // 4. if product was < remainder at 2:\r\n // 5. compare new remainder and divisor\r\n // 6. If remainder > divisor: remainder -= divisor, k++\r\n\r\n if (k > 1) {\r\n if (k >= BASE) k = BASE - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiplyInteger(yd, k);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n cmp = compare(prod, rem, prodL, remL);\r\n\r\n // product > remainder.\r\n if (cmp == 1) {\r\n k--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yd, prodL);\r\n }\r\n } else {\r\n\r\n // cmp is -1.\r\n // If k is 0, there is no need to compare yd and rem again below, so change cmp to 1\r\n // to avoid it. If k is 1 there is a need to compare yd and rem again below.\r\n if (k == 0) cmp = k = 1;\r\n prod = yd.slice();\r\n }\r\n\r\n prodL = prod.length;\r\n if (prodL < remL) prod.unshift(0);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL);\r\n\r\n // If product was < previous remainder.\r\n if (cmp == -1) {\r\n remL = rem.length;\r\n\r\n // Compare divisor and new remainder.\r\n cmp = compare(yd, rem, yL, remL);\r\n\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n if (cmp < 1) {\r\n k++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yd, remL);\r\n }\r\n }\r\n\r\n remL = rem.length;\r\n } else if (cmp === 0) {\r\n k++;\r\n rem = [0];\r\n } // if cmp === 1, k will be 0\r\n\r\n // Add the next digit, k, to the result array.\r\n qd[i++] = k;\r\n\r\n // Update the remainder.\r\n if (cmp && rem[0]) {\r\n rem[remL++] = xd[xi] || 0;\r\n } else {\r\n rem = [xd[xi]];\r\n remL = 1;\r\n }\r\n\r\n } while ((xi++ < xL || rem[0] !== void 0) && sd--);\r\n }\r\n\r\n // Leading zero?\r\n if (!qd[0]) qd.shift();\r\n\r\n q.e = e;\r\n\r\n return round(q, dp ? pr + getBase10Exponent(q) + 1 : pr);\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural exponential of `x` truncated to `sd`\r\n * significant digits.\r\n *\r\n * Taylor/Maclaurin series.\r\n *\r\n * exp(x) = x^0/0! + x^1/1! + x^2/2! + x^3/3! + ...\r\n *\r\n * Argument reduction:\r\n * Repeat x = x / 32, k += 5, until |x| < 0.1\r\n * exp(x) = exp(x / 2^k)^(2^k)\r\n *\r\n * Previously, the argument was initially reduced by\r\n * exp(x) = exp(r) * 10^k where r = x - k * ln10, k = floor(x / ln10)\r\n * to first put r in the range [0, ln10], before dividing by 32 until |x| < 0.1, but this was\r\n * found to be slower than just dividing repeatedly by 32 as above.\r\n *\r\n * (Math object integer min/max: Math.exp(709) = 8.2e+307, Math.exp(-745) = 5e-324)\r\n *\r\n * exp(x) is non-terminating for any finite, non-zero x.\r\n *\r\n */\r\n function exp(x, sd) {\r\n var denominator, guard, pow, sum, t, wpr,\r\n i = 0,\r\n k = 0,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n if (getBase10Exponent(x) > 16) throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n\r\n // exp(0) = 1\r\n if (!x.s) return new Ctor(ONE);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n t = new Ctor(0.03125);\r\n\r\n while (x.abs().gte(0.1)) {\r\n x = x.times(t); // x = x / 2^5\r\n k += 5;\r\n }\r\n\r\n // Estimate the precision increase necessary to ensure the first 4 rounding digits are correct.\r\n guard = Math.log(mathpow(2, k)) / Math.LN10 * 2 + 5 | 0;\r\n wpr += guard;\r\n denominator = pow = sum = new Ctor(ONE);\r\n Ctor.precision = wpr;\r\n\r\n for (;;) {\r\n pow = round(pow.times(x), wpr);\r\n denominator = denominator.times(++i);\r\n t = sum.plus(divide(pow, denominator, wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n while (k--) sum = round(sum.times(sum), wpr);\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n }\r\n }\r\n\r\n\r\n // Calculate the base 10 exponent from the base 1e7 exponent.\r\n function getBase10Exponent(x) {\r\n var e = x.e * LOG_BASE,\r\n w = x.d[0];\r\n\r\n // Add the number of digits of the first word of the digits array.\r\n for (; w >= 10; w /= 10) e++;\r\n return e;\r\n }\r\n\r\n\r\n function getLn10(Ctor, sd, pr) {\r\n\r\n if (sd > Ctor.LN10.sd()) {\r\n\r\n\r\n // Reset global state in case the exception is caught.\r\n external = true;\r\n if (pr) Ctor.precision = pr;\r\n throw Error(decimalError + 'LN10 precision limit exceeded');\r\n }\r\n\r\n return round(new Ctor(Ctor.LN10), sd);\r\n }\r\n\r\n\r\n function getZeroString(k) {\r\n var zs = '';\r\n for (; k--;) zs += '0';\r\n return zs;\r\n }\r\n\r\n\r\n /*\r\n * Return a new Decimal whose value is the natural logarithm of `x` truncated to `sd` significant\r\n * digits.\r\n *\r\n * ln(n) is non-terminating (n != 1)\r\n *\r\n */\r\n function ln(y, sd) {\r\n var c, c0, denominator, e, numerator, sum, t, wpr, x2,\r\n n = 1,\r\n guard = 10,\r\n x = y,\r\n xd = x.d,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // ln(-x) = NaN\r\n // ln(0) = -Infinity\r\n if (x.s < 1) throw Error(decimalError + (x.s ? 'NaN' : '-Infinity'));\r\n\r\n // ln(1) = 0\r\n if (x.eq(ONE)) return new Ctor(0);\r\n\r\n if (sd == null) {\r\n external = false;\r\n wpr = pr;\r\n } else {\r\n wpr = sd;\r\n }\r\n\r\n if (x.eq(10)) {\r\n if (sd == null) external = true;\r\n return getLn10(Ctor, wpr);\r\n }\r\n\r\n wpr += guard;\r\n Ctor.precision = wpr;\r\n c = digitsToString(xd);\r\n c0 = c.charAt(0);\r\n e = getBase10Exponent(x);\r\n\r\n if (Math.abs(e) < 1.5e15) {\r\n\r\n // Argument reduction.\r\n // The series converges faster the closer the argument is to 1, so using\r\n // ln(a^b) = b * ln(a), ln(a) = ln(a^b) / b\r\n // multiply the argument by itself until the leading digits of the significand are 7, 8, 9,\r\n // 10, 11, 12 or 13, recording the number of multiplications so the sum of the series can\r\n // later be divided by this number, then separate out the power of 10 using\r\n // ln(a*10^b) = ln(a) + b*ln(10).\r\n\r\n // max n is 21 (gives 0.9, 1.0 or 1.1) (9e15 / 21 = 4.2e14).\r\n //while (c0 < 9 && c0 != 1 || c0 == 1 && c.charAt(1) > 1) {\r\n // max n is 6 (gives 0.7 - 1.3)\r\n while (c0 < 7 && c0 != 1 || c0 == 1 && c.charAt(1) > 3) {\r\n x = x.times(y);\r\n c = digitsToString(x.d);\r\n c0 = c.charAt(0);\r\n n++;\r\n }\r\n\r\n e = getBase10Exponent(x);\r\n\r\n if (c0 > 1) {\r\n x = new Ctor('0.' + c);\r\n e++;\r\n } else {\r\n x = new Ctor(c0 + '.' + c.slice(1));\r\n }\r\n } else {\r\n\r\n // The argument reduction method above may result in overflow if the argument y is a massive\r\n // number with exponent >= 1500000000000000 (9e15 / 6 = 1.5e15), so instead recall this\r\n // function using ln(x*10^e) = ln(x) + e*ln(10).\r\n t = getLn10(Ctor, wpr + 2, pr).times(e + '');\r\n x = ln(new Ctor(c0 + '.' + c.slice(1)), wpr - guard).plus(t);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(x, pr)) : x;\r\n }\r\n\r\n // x is reduced to a value near 1.\r\n\r\n // Taylor series.\r\n // ln(y) = ln((1 + x)/(1 - x)) = 2(x + x^3/3 + x^5/5 + x^7/7 + ...)\r\n // where x = (y - 1)/(y + 1) (|x| < 1)\r\n sum = numerator = x = divide(x.minus(ONE), x.plus(ONE), wpr);\r\n x2 = round(x.times(x), wpr);\r\n denominator = 3;\r\n\r\n for (;;) {\r\n numerator = round(numerator.times(x2), wpr);\r\n t = sum.plus(divide(numerator, new Ctor(denominator), wpr));\r\n\r\n if (digitsToString(t.d).slice(0, wpr) === digitsToString(sum.d).slice(0, wpr)) {\r\n sum = sum.times(2);\r\n\r\n // Reverse the argument reduction.\r\n if (e !== 0) sum = sum.plus(getLn10(Ctor, wpr + 2, pr).times(e + ''));\r\n sum = divide(sum, new Ctor(n), wpr);\r\n\r\n Ctor.precision = pr;\r\n return sd == null ? (external = true, round(sum, pr)) : sum;\r\n }\r\n\r\n sum = t;\r\n denominator += 2;\r\n }\r\n }\r\n\r\n\r\n /*\r\n * Parse the value of a new Decimal `x` from string `str`.\r\n */\r\n function parseDecimal(x, str) {\r\n var e, i, len;\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48;) ++i;\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(len - 1) === 48;) --len;\r\n str = str.slice(i, len);\r\n\r\n if (str) {\r\n len -= i;\r\n e = e - i - 1;\r\n x.e = mathfloor(e / LOG_BASE);\r\n x.d = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first word of the digits array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE;\r\n\r\n if (i < len) {\r\n if (i) x.d.push(+str.slice(0, i));\r\n for (len -= LOG_BASE; i < len;) x.d.push(+str.slice(i, i += LOG_BASE));\r\n str = str.slice(i);\r\n i = LOG_BASE - str.length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--;) str += '0';\r\n x.d.push(+str);\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) throw Error(exponentOutOfRange + e);\r\n } else {\r\n\r\n // Zero.\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Round `x` to `sd` significant digits, using rounding mode `rm` if present (truncate otherwise).\r\n */\r\n function round(x, sd, rm) {\r\n var i, j, k, n, rd, doRound, w, xdi,\r\n xd = x.d;\r\n\r\n // rd: the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // w: the word of xd which contains the rounding digit, a base 1e7 number.\r\n // xdi: the index of w within xd.\r\n // n: the number of digits of w.\r\n // i: what would be the index of rd within w if all the numbers were 7 digits long (i.e. if\r\n // they had leading zeros)\r\n // j: if > 0, the actual index of rd within w (if < 0, rd is a leading zero).\r\n\r\n // Get the length of the first word of the digits array xd.\r\n for (n = 1, k = xd[0]; k >= 10; k /= 10) n++;\r\n i = sd - n;\r\n\r\n // Is the rounding digit in the first word of xd?\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n w = xd[xdi = 0];\r\n } else {\r\n xdi = Math.ceil((i + 1) / LOG_BASE);\r\n k = xd.length;\r\n if (xdi >= k) return x;\r\n w = k = xd[xdi];\r\n\r\n // Get the number of digits of w.\r\n for (n = 1; k >= 10; k /= 10) n++;\r\n\r\n // Get the index of rd within w.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within w, adjusted for leading zeros.\r\n // The number of leading zeros of w is given by LOG_BASE - n.\r\n j = i - LOG_BASE + n;\r\n }\r\n\r\n if (rm !== void 0) {\r\n k = mathpow(10, n - j - 1);\r\n\r\n // Get the rounding digit at index j of w.\r\n rd = w / k % 10 | 0;\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n doRound = sd < 0 || xd[xdi + 1] !== void 0 || w % k;\r\n\r\n // The expression `w % mathpow(10, n - j - 1)` returns all the digits of w to the right of the\r\n // digit at (left-to-right) index j, e.g. if w is 908714 and j is 2, the expression will give\r\n // 714.\r\n\r\n doRound = rm < 4\r\n ? (rd || doRound) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || doRound || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? w / mathpow(10, n - j) : 0 : xd[xdi - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n }\r\n\r\n if (sd < 1 || !xd[0]) {\r\n if (doRound) {\r\n k = getBase10Exponent(x);\r\n xd.length = 1;\r\n\r\n // Convert sd to decimal places.\r\n sd = sd - k - 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xd[0] = mathpow(10, (LOG_BASE - sd % LOG_BASE) % LOG_BASE);\r\n x.e = mathfloor(-sd / LOG_BASE) || 0;\r\n } else {\r\n xd.length = 1;\r\n\r\n // Zero.\r\n xd[0] = x.e = x.s = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xd.length = xdi;\r\n k = 1;\r\n xdi--;\r\n } else {\r\n xd.length = xdi + 1;\r\n k = mathpow(10, LOG_BASE - i);\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of w.\r\n xd[xdi] = j > 0 ? (w / mathpow(10, n - j) % mathpow(10, j) | 0) * k : 0;\r\n }\r\n\r\n if (doRound) {\r\n for (;;) {\r\n\r\n // Is the digit to be rounded up in the first word of xd?\r\n if (xdi == 0) {\r\n if ((xd[0] += k) == BASE) {\r\n xd[0] = 1;\r\n ++x.e;\r\n }\r\n\r\n break;\r\n } else {\r\n xd[xdi] += k;\r\n if (xd[xdi] != BASE) break;\r\n xd[xdi--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xd.length; xd[--i] === 0;) xd.pop();\r\n\r\n if (external && (x.e > MAX_E || x.e < -MAX_E)) {\r\n throw Error(exponentOutOfRange + getBase10Exponent(x));\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function subtract(x, y) {\r\n var d, e, i, j, k, len, xd, xe, xLTy, yd,\r\n Ctor = x.constructor,\r\n pr = Ctor.precision;\r\n\r\n // Return y negated if x is zero.\r\n // Return x if y is zero and x is non-zero.\r\n if (!x.s || !y.s) {\r\n if (y.s) y.s = -y.s;\r\n else y = new Ctor(x);\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n xd = x.d;\r\n yd = y.d;\r\n\r\n // x and y are non-zero numbers with the same sign.\r\n\r\n e = y.e;\r\n xe = x.e;\r\n xd = xd.slice();\r\n k = xe - e;\r\n\r\n // If exponents differ...\r\n if (k) {\r\n xLTy = k < 0;\r\n\r\n if (xLTy) {\r\n d = xd;\r\n k = -k;\r\n len = yd.length;\r\n } else {\r\n d = yd;\r\n e = xe;\r\n len = xd.length;\r\n }\r\n\r\n // Numbers with massively different exponents would result in a very high number of zeros\r\n // needing to be prepended, but this can be avoided while still ensuring correct rounding by\r\n // limiting the number of zeros to `Math.ceil(pr / LOG_BASE) + 2`.\r\n i = Math.max(Math.ceil(pr / LOG_BASE), len) + 2;\r\n\r\n if (k > i) {\r\n k = i;\r\n d.length = 1;\r\n }\r\n\r\n // Prepend zeros to equalise exponents.\r\n d.reverse();\r\n for (i = k; i--;) d.push(0);\r\n d.reverse();\r\n\r\n // Base 1e7 exponents equal.\r\n } else {\r\n\r\n // Check digits to determine which is the bigger number.\r\n\r\n i = xd.length;\r\n len = yd.length;\r\n xLTy = i < len;\r\n if (xLTy) len = i;\r\n\r\n for (i = 0; i < len; i++) {\r\n if (xd[i] != yd[i]) {\r\n xLTy = xd[i] < yd[i];\r\n break;\r\n }\r\n }\r\n\r\n k = 0;\r\n }\r\n\r\n if (xLTy) {\r\n d = xd;\r\n xd = yd;\r\n yd = d;\r\n y.s = -y.s;\r\n }\r\n\r\n len = xd.length;\r\n\r\n // Append zeros to xd if shorter.\r\n // Don't add zeros to yd if shorter as subtraction only needs to start at yd length.\r\n for (i = yd.length - len; i > 0; --i) xd[len++] = 0;\r\n\r\n // Subtract yd from xd.\r\n for (i = yd.length; i > k;) {\r\n if (xd[--i] < yd[i]) {\r\n for (j = i; j && xd[--j] === 0;) xd[j] = BASE - 1;\r\n --xd[j];\r\n xd[i] += BASE;\r\n }\r\n\r\n xd[i] -= yd[i];\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (; xd[--len] === 0;) xd.pop();\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xd[0] === 0; xd.shift()) --e;\r\n\r\n // Zero?\r\n if (!xd[0]) return new Ctor(0);\r\n\r\n y.d = xd;\r\n y.e = e;\r\n\r\n //return external && xd.length >= pr / LOG_BASE ? round(y, pr) : y;\r\n return external ? round(y, pr) : y;\r\n }\r\n\r\n\r\n function toString(x, isExp, sd) {\r\n var k,\r\n e = getBase10Exponent(x),\r\n str = digitsToString(x.d),\r\n len = str.length;\r\n\r\n if (isExp) {\r\n if (sd && (k = sd - len) > 0) {\r\n str = str.charAt(0) + '.' + str.slice(1) + getZeroString(k);\r\n } else if (len > 1) {\r\n str = str.charAt(0) + '.' + str.slice(1);\r\n }\r\n\r\n str = str + (e < 0 ? 'e' : 'e+') + e;\r\n } else if (e < 0) {\r\n str = '0.' + getZeroString(-e - 1) + str;\r\n if (sd && (k = sd - len) > 0) str += getZeroString(k);\r\n } else if (e >= len) {\r\n str += getZeroString(e + 1 - len);\r\n if (sd && (k = sd - e - 1) > 0) str = str + '.' + getZeroString(k);\r\n } else {\r\n if ((k = e + 1) < len) str = str.slice(0, k) + '.' + str.slice(k);\r\n if (sd && (k = sd - len) > 0) {\r\n if (e + 1 === len) str += '.';\r\n str += getZeroString(k);\r\n }\r\n }\r\n\r\n return x.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Does not strip trailing zeros.\r\n function truncate(arr, len) {\r\n if (arr.length > len) {\r\n arr.length = len;\r\n return true;\r\n }\r\n }\r\n\r\n\r\n // Decimal methods\r\n\r\n\r\n /*\r\n * clone\r\n * config/set\r\n */\r\n\r\n\r\n /*\r\n * Create and return a Decimal constructor with the same configuration properties as this Decimal\r\n * constructor.\r\n *\r\n */\r\n function clone(obj) {\r\n var i, p, ps;\r\n\r\n /*\r\n * The Decimal constructor and exported function.\r\n * Return a new Decimal instance.\r\n *\r\n * value {number|string|Decimal} A numeric value.\r\n *\r\n */\r\n function Decimal(value) {\r\n var x = this;\r\n\r\n // Decimal called without new.\r\n if (!(x instanceof Decimal)) return new Decimal(value);\r\n\r\n // Retain a reference to this Decimal constructor, and shadow Decimal.prototype.constructor\r\n // which points to Object.\r\n x.constructor = Decimal;\r\n\r\n // Duplicate.\r\n if (value instanceof Decimal) {\r\n x.s = value.s;\r\n x.e = value.e;\r\n x.d = (value = value.d) ? value.slice() : value;\r\n return;\r\n }\r\n\r\n if (typeof value === 'number') {\r\n\r\n // Reject Infinity/NaN.\r\n if (value * 0 !== 0) {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n if (value > 0) {\r\n x.s = 1;\r\n } else if (value < 0) {\r\n value = -value;\r\n x.s = -1;\r\n } else {\r\n x.s = 0;\r\n x.e = 0;\r\n x.d = [0];\r\n return;\r\n }\r\n\r\n // Fast path for small integers.\r\n if (value === ~~value && value < 1e7) {\r\n x.e = 0;\r\n x.d = [value];\r\n return;\r\n }\r\n\r\n return parseDecimal(x, value.toString());\r\n } else if (typeof value !== 'string') {\r\n throw Error(invalidArgument + value);\r\n }\r\n\r\n // Minus sign?\r\n if (value.charCodeAt(0) === 45) {\r\n value = value.slice(1);\r\n x.s = -1;\r\n } else {\r\n x.s = 1;\r\n }\r\n\r\n if (isDecimal.test(value)) parseDecimal(x, value);\r\n else throw Error(invalidArgument + value);\r\n }\r\n\r\n Decimal.prototype = P;\r\n\r\n Decimal.ROUND_UP = 0;\r\n Decimal.ROUND_DOWN = 1;\r\n Decimal.ROUND_CEIL = 2;\r\n Decimal.ROUND_FLOOR = 3;\r\n Decimal.ROUND_HALF_UP = 4;\r\n Decimal.ROUND_HALF_DOWN = 5;\r\n Decimal.ROUND_HALF_EVEN = 6;\r\n Decimal.ROUND_HALF_CEIL = 7;\r\n Decimal.ROUND_HALF_FLOOR = 8;\r\n\r\n Decimal.clone = clone;\r\n Decimal.config = Decimal.set = config;\r\n\r\n if (obj === void 0) obj = {};\r\n if (obj) {\r\n ps = ['precision', 'rounding', 'toExpNeg', 'toExpPos', 'LN10'];\r\n for (i = 0; i < ps.length;) if (!obj.hasOwnProperty(p = ps[i++])) obj[p] = this[p];\r\n }\r\n\r\n Decimal.config(obj);\r\n\r\n return Decimal;\r\n }\r\n\r\n\r\n /*\r\n * Configure global settings for a Decimal constructor.\r\n *\r\n * `obj` is an object with one or more of the following properties,\r\n *\r\n * precision {number}\r\n * rounding {number}\r\n * toExpNeg {number}\r\n * toExpPos {number}\r\n *\r\n * E.g. Decimal.config({ precision: 20, rounding: 4 })\r\n *\r\n */\r\n function config(obj) {\r\n if (!obj || typeof obj !== 'object') {\r\n throw Error(decimalError + 'Object expected');\r\n }\r\n var i, p, v,\r\n ps = [\r\n 'precision', 1, MAX_DIGITS,\r\n 'rounding', 0, 8,\r\n 'toExpNeg', -1 / 0, 0,\r\n 'toExpPos', 0, 1 / 0\r\n ];\r\n\r\n for (i = 0; i < ps.length; i += 3) {\r\n if ((v = obj[p = ps[i]]) !== void 0) {\r\n if (mathfloor(v) === v && v >= ps[i + 1] && v <= ps[i + 2]) this[p] = v;\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n }\r\n\r\n if ((v = obj[p = 'LN10']) !== void 0) {\r\n if (v == Math.LN10) this[p] = new this(v);\r\n else throw Error(invalidArgument + p + ': ' + v);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n // Create and configure initial Decimal constructor.\r\n Decimal = clone(Decimal);\r\n\r\n Decimal['default'] = Decimal.Decimal = Decimal;\r\n\r\n // Internal constant.\r\n ONE = new Decimal(1);\r\n\r\n\r\n // Export.\r\n\r\n\r\n // AMD.\r\n if (typeof define == 'function' && define.amd) {\r\n define(function () {\r\n return Decimal;\r\n });\r\n\r\n // Node and other environments that support module.exports.\r\n } else if (typeof module != 'undefined' && module.exports) {\r\n module.exports = Decimal;\r\n\r\n // Browser.\r\n } else {\r\n if (!globalScope) {\r\n globalScope = typeof self != 'undefined' && self && self.self == self\r\n ? self : Function('return this')();\r\n }\r\n\r\n globalScope.Decimal = Decimal;\r\n }\r\n})(this);\r\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp('(' + token + ')|([^%]+?)', 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn [decodeURIComponent(components.join(''))];\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher) || [];\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher) || [];\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\n/******************************************************************************\n * Created 2008-08-19.\n *\n * Dijkstra path-finding functions. Adapted from the Dijkstar Python project.\n *\n * Copyright (C) 2008\n * Wyatt Baldwin \n * All rights reserved\n *\n * Licensed under the MIT license.\n *\n * http://www.opensource.org/licenses/mit-license.php\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n * THE SOFTWARE.\n *****************************************************************************/\nvar dijkstra = {\n single_source_shortest_paths: function(graph, s, d) {\n // Predecessor map for each node that has been encountered.\n // node ID => predecessor node ID\n var predecessors = {};\n\n // Costs of shortest paths from s to all nodes encountered.\n // node ID => cost\n var costs = {};\n costs[s] = 0;\n\n // Costs of shortest paths from s to all nodes encountered; differs from\n // `costs` in that it provides easy access to the node that currently has\n // the known shortest path from s.\n // XXX: Do we actually need both `costs` and `open`?\n var open = dijkstra.PriorityQueue.make();\n open.push(s, 0);\n\n var closest,\n u, v,\n cost_of_s_to_u,\n adjacent_nodes,\n cost_of_e,\n cost_of_s_to_u_plus_cost_of_e,\n cost_of_s_to_v,\n first_visit;\n while (!open.empty()) {\n // In the nodes remaining in graph that have a known cost from s,\n // find the node, u, that currently has the shortest path from s.\n closest = open.pop();\n u = closest.value;\n cost_of_s_to_u = closest.cost;\n\n // Get nodes adjacent to u...\n adjacent_nodes = graph[u] || {};\n\n // ...and explore the edges that connect u to those nodes, updating\n // the cost of the shortest paths to any or all of those nodes as\n // necessary. v is the node across the current edge from u.\n for (v in adjacent_nodes) {\n if (adjacent_nodes.hasOwnProperty(v)) {\n // Get the cost of the edge running from u to v.\n cost_of_e = adjacent_nodes[v];\n\n // Cost of s to u plus the cost of u to v across e--this is *a*\n // cost from s to v that may or may not be less than the current\n // known cost to v.\n cost_of_s_to_u_plus_cost_of_e = cost_of_s_to_u + cost_of_e;\n\n // If we haven't visited v yet OR if the current known cost from s to\n // v is greater than the new cost we just found (cost of s to u plus\n // cost of u to v across e), update v's cost in the cost list and\n // update v's predecessor in the predecessor list (it's now u).\n cost_of_s_to_v = costs[v];\n first_visit = (typeof costs[v] === 'undefined');\n if (first_visit || cost_of_s_to_v > cost_of_s_to_u_plus_cost_of_e) {\n costs[v] = cost_of_s_to_u_plus_cost_of_e;\n open.push(v, cost_of_s_to_u_plus_cost_of_e);\n predecessors[v] = u;\n }\n }\n }\n }\n\n if (typeof d !== 'undefined' && typeof costs[d] === 'undefined') {\n var msg = ['Could not find a path from ', s, ' to ', d, '.'].join('');\n throw new Error(msg);\n }\n\n return predecessors;\n },\n\n extract_shortest_path_from_predecessor_list: function(predecessors, d) {\n var nodes = [];\n var u = d;\n var predecessor;\n while (u) {\n nodes.push(u);\n predecessor = predecessors[u];\n u = predecessors[u];\n }\n nodes.reverse();\n return nodes;\n },\n\n find_path: function(graph, s, d) {\n var predecessors = dijkstra.single_source_shortest_paths(graph, s, d);\n return dijkstra.extract_shortest_path_from_predecessor_list(\n predecessors, d);\n },\n\n /**\n * A very naive priority queue implementation.\n */\n PriorityQueue: {\n make: function (opts) {\n var T = dijkstra.PriorityQueue,\n t = {},\n key;\n opts = opts || {};\n for (key in T) {\n if (T.hasOwnProperty(key)) {\n t[key] = T[key];\n }\n }\n t.queue = [];\n t.sorter = opts.sorter || T.default_sorter;\n return t;\n },\n\n default_sorter: function (a, b) {\n return a.cost - b.cost;\n },\n\n /**\n * Add a new item to the queue and ensure the highest priority element\n * is at the front of the queue.\n */\n push: function (value, cost) {\n var item = {value: value, cost: cost};\n this.queue.push(item);\n this.queue.sort(this.sorter);\n },\n\n /**\n * Return the highest priority element in the queue.\n */\n pop: function () {\n return this.queue.shift();\n },\n\n empty: function () {\n return this.queue.length === 0;\n }\n }\n};\n\n\n// node.js module exports\nif (typeof module !== 'undefined') {\n module.exports = dijkstra;\n}\n","'use strict'\n\nmodule.exports = function encodeUtf8 (input) {\n var result = []\n var size = input.length\n\n for (var index = 0; index < size; index++) {\n var point = input.charCodeAt(index)\n\n if (point >= 0xD800 && point <= 0xDBFF && size > index + 1) {\n var second = input.charCodeAt(index + 1)\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n point = (point - 0xD800) * 0x400 + second - 0xDC00 + 0x10000\n index += 1\n }\n }\n\n // US-ASCII\n if (point < 0x80) {\n result.push(point)\n continue\n }\n\n // 2-byte UTF-8\n if (point < 0x800) {\n result.push((point >> 6) | 192)\n result.push((point & 63) | 128)\n continue\n }\n\n // 3-byte UTF-8\n if (point < 0xD800 || (point >= 0xE000 && point < 0x10000)) {\n result.push((point >> 12) | 224)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // 4-byte UTF-8\n if (point >= 0x10000 && point <= 0x10FFFF) {\n result.push((point >> 18) | 240)\n result.push(((point >> 12) & 63) | 128)\n result.push(((point >> 6) & 63) | 128)\n result.push((point & 63) | 128)\n continue\n }\n\n // Invalid character\n result.push(0xEF, 0xBF, 0xBD)\n }\n\n return new Uint8Array(result).buffer\n}\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","'use strict';\n\nmodule.exports = function ReactNativeFile(_ref) {\n var uri = _ref.uri,\n name = _ref.name,\n type = _ref.type;\n this.uri = uri;\n this.name = name;\n this.type = type;\n};\n","'use strict';\n\nvar defaultIsExtractableFile = require('./isExtractableFile');\n\nmodule.exports = function extractFiles(value, path, isExtractableFile) {\n if (path === void 0) {\n path = '';\n }\n\n if (isExtractableFile === void 0) {\n isExtractableFile = defaultIsExtractableFile;\n }\n\n var clone;\n var files = new Map();\n\n function addFile(paths, file) {\n var storedPaths = files.get(file);\n if (storedPaths) storedPaths.push.apply(storedPaths, paths);\n else files.set(file, paths);\n }\n\n if (isExtractableFile(value)) {\n clone = null;\n addFile([path], value);\n } else {\n var prefix = path ? path + '.' : '';\n if (typeof FileList !== 'undefined' && value instanceof FileList)\n clone = Array.prototype.map.call(value, function (file, i) {\n addFile(['' + prefix + i], file);\n return null;\n });\n else if (Array.isArray(value))\n clone = value.map(function (child, i) {\n var result = extractFiles(child, '' + prefix + i, isExtractableFile);\n result.files.forEach(addFile);\n return result.clone;\n });\n else if (value && value.constructor === Object) {\n clone = {};\n\n for (var i in value) {\n var result = extractFiles(value[i], '' + prefix + i, isExtractableFile);\n result.files.forEach(addFile);\n clone[i] = result.clone;\n }\n } else clone = value;\n }\n\n return {\n clone: clone,\n files: files,\n };\n};\n","'use strict';\n\nexports.ReactNativeFile = require('./ReactNativeFile');\nexports.extractFiles = require('./extractFiles');\nexports.isExtractableFile = require('./isExtractableFile');\n","'use strict';\n\nvar ReactNativeFile = require('./ReactNativeFile');\n\nmodule.exports = function isExtractableFile(value) {\n return (\n (typeof File !== 'undefined' && value instanceof File) ||\n (typeof Blob !== 'undefined' && value instanceof Blob) ||\n value instanceof ReactNativeFile\n );\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","/* eslint-env browser */\nmodule.exports = typeof self == 'object' ? self.FormData : window.FormData;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar extract_files_1 = require(\"extract-files\");\nvar form_data_1 = __importDefault(require(\"form-data\"));\nvar defaultJsonSerializer_1 = require(\"./defaultJsonSerializer\");\n/**\n * Duck type if NodeJS stream\n * https://github.com/sindresorhus/is-stream/blob/3750505b0727f6df54324784fe369365ef78841e/index.js#L3\n */\nvar isExtractableFileEnhanced = function (value) {\n return extract_files_1.isExtractableFile(value) ||\n (value !== null && typeof value === 'object' && typeof value.pipe === 'function');\n};\n/**\n * Returns Multipart Form if body contains files\n * (https://github.com/jaydenseric/graphql-multipart-request-spec)\n * Otherwise returns JSON\n */\nfunction createRequestBody(query, variables, operationName, jsonSerializer) {\n if (jsonSerializer === void 0) { jsonSerializer = defaultJsonSerializer_1.defaultJsonSerializer; }\n var _a = extract_files_1.extractFiles({ query: query, variables: variables, operationName: operationName }, '', isExtractableFileEnhanced), clone = _a.clone, files = _a.files;\n if (files.size === 0) {\n if (!Array.isArray(query)) {\n return jsonSerializer.stringify(clone);\n }\n if (typeof variables !== 'undefined' && !Array.isArray(variables)) {\n throw new Error('Cannot create request body with given variable type, array expected');\n }\n // Batch support\n var payload = query.reduce(function (accu, currentQuery, index) {\n accu.push({ query: currentQuery, variables: variables ? variables[index] : undefined });\n return accu;\n }, []);\n return jsonSerializer.stringify(payload);\n }\n var Form = typeof FormData === 'undefined' ? form_data_1.default : FormData;\n var form = new Form();\n form.append('operations', jsonSerializer.stringify(clone));\n var map = {};\n var i = 0;\n files.forEach(function (paths) {\n map[++i] = paths;\n });\n form.append('map', jsonSerializer.stringify(map));\n i = 0;\n files.forEach(function (paths, file) {\n form.append(\"\" + ++i, file);\n });\n return form;\n}\nexports.default = createRequestBody;\n//# sourceMappingURL=createRequestBody.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.defaultJsonSerializer = void 0;\nexports.defaultJsonSerializer = {\n parse: JSON.parse,\n stringify: JSON.stringify\n};\n//# sourceMappingURL=defaultJsonSerializer.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"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 (_) 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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GraphQLWebSocketClient = void 0;\nvar types_1 = require(\"./types\");\nvar _1 = require(\".\");\nvar CONNECTION_INIT = 'connection_init';\nvar CONNECTION_ACK = 'connection_ack';\nvar PING = 'ping';\nvar PONG = 'pong';\nvar SUBSCRIBE = 'subscribe';\nvar NEXT = 'next';\nvar ERROR = 'error';\nvar COMPLETE = 'complete';\nvar GraphQLWebSocketMessage = /** @class */ (function () {\n function GraphQLWebSocketMessage(type, payload, id) {\n this._type = type;\n this._payload = payload;\n this._id = id;\n }\n Object.defineProperty(GraphQLWebSocketMessage.prototype, \"type\", {\n get: function () { return this._type; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GraphQLWebSocketMessage.prototype, \"id\", {\n get: function () { return this._id; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GraphQLWebSocketMessage.prototype, \"payload\", {\n get: function () { return this._payload; },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GraphQLWebSocketMessage.prototype, \"text\", {\n get: function () {\n var result = { type: this.type };\n if (this.id != null && this.id != undefined)\n result.id = this.id;\n if (this.payload != null && this.payload != undefined)\n result.payload = this.payload;\n return JSON.stringify(result);\n },\n enumerable: false,\n configurable: true\n });\n GraphQLWebSocketMessage.parse = function (data, f) {\n var _a = JSON.parse(data), type = _a.type, payload = _a.payload, id = _a.id;\n return new GraphQLWebSocketMessage(type, f(payload), id);\n };\n return GraphQLWebSocketMessage;\n}());\nvar GraphQLWebSocketClient = /** @class */ (function () {\n function GraphQLWebSocketClient(socket, _a) {\n var _this = this;\n var onInit = _a.onInit, onAcknowledged = _a.onAcknowledged, onPing = _a.onPing, onPong = _a.onPong;\n this.socketState = { acknowledged: false, lastRequestId: 0, subscriptions: {} };\n this.socket = socket;\n socket.onopen = function (e) { return __awaiter(_this, void 0, void 0, function () {\n var _a, _b, _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n this.socketState.acknowledged = false;\n this.socketState.subscriptions = {};\n _b = (_a = socket).send;\n _c = ConnectionInit;\n if (!onInit) return [3 /*break*/, 2];\n return [4 /*yield*/, onInit()];\n case 1:\n _d = _e.sent();\n return [3 /*break*/, 3];\n case 2:\n _d = null;\n _e.label = 3;\n case 3:\n _b.apply(_a, [_c.apply(void 0, [_d]).text]);\n return [2 /*return*/];\n }\n });\n }); };\n socket.onclose = function (e) {\n _this.socketState.acknowledged = false;\n _this.socketState.subscriptions = {};\n };\n socket.onerror = function (e) {\n console.error(e);\n };\n socket.onmessage = function (e) {\n try {\n var message = parseMessage(e.data);\n switch (message.type) {\n case CONNECTION_ACK: {\n if (_this.socketState.acknowledged) {\n console.warn(\"Duplicate CONNECTION_ACK message ignored\");\n }\n else {\n _this.socketState.acknowledged = true;\n if (onAcknowledged)\n onAcknowledged(message.payload);\n }\n return;\n }\n case PING: {\n if (onPing)\n onPing(message.payload).then(function (r) { return socket.send(Pong(r).text); });\n else\n socket.send(Pong(null).text);\n return;\n }\n case PONG: {\n if (onPong)\n onPong(message.payload);\n return;\n }\n }\n if (!_this.socketState.acknowledged) {\n // Web-socket connection not acknowledged\n return;\n }\n if (message.id === undefined || message.id === null || !_this.socketState.subscriptions[message.id]) {\n // No subscription identifer or subscription indentifier is not found\n return;\n }\n var _a = _this.socketState.subscriptions[message.id], query = _a.query, variables = _a.variables, subscriber = _a.subscriber;\n switch (message.type) {\n case NEXT: {\n if (!message.payload.errors && message.payload.data) {\n subscriber.next && subscriber.next(message.payload.data);\n }\n if (message.payload.errors) {\n subscriber.error && subscriber.error(new types_1.ClientError(__assign(__assign({}, message.payload), { status: 200 }), { query: query, variables: variables }));\n }\n else {\n }\n return;\n }\n case ERROR: {\n subscriber.error && subscriber.error(new types_1.ClientError({ errors: message.payload, status: 200 }, { query: query, variables: variables }));\n return;\n }\n case COMPLETE: {\n subscriber.complete && subscriber.complete();\n delete _this.socketState.subscriptions[message.id];\n return;\n }\n }\n }\n catch (e) {\n // Unexpected errors while handling graphql-ws message\n console.error(e);\n socket.close(1006);\n }\n socket.close(4400, \"Unknown graphql-ws message.\");\n };\n }\n GraphQLWebSocketClient.prototype.makeSubscribe = function (query, operationName, variables, subscriber) {\n var _this = this;\n var subscriptionId = (this.socketState.lastRequestId++).toString();\n this.socketState.subscriptions[subscriptionId] = { query: query, variables: variables, subscriber: subscriber };\n this.socket.send(Subscribe(subscriptionId, { query: query, operationName: operationName, variables: variables }).text);\n return function () {\n _this.socket.send(Complete(subscriptionId).text);\n delete _this.socketState.subscriptions[subscriptionId];\n };\n };\n GraphQLWebSocketClient.prototype.rawRequest = function (query, variables) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var result;\n _this.rawSubscribe(query, {\n next: function (data, extensions) { return (result = { data: data, extensions: extensions }); },\n error: reject,\n complete: function () { return resolve(result); },\n }, variables);\n });\n };\n GraphQLWebSocketClient.prototype.request = function (document, variables) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var result;\n _this.subscribe(document, {\n next: function (data) { return (result = data); },\n error: reject,\n complete: function () { return resolve(result); },\n }, variables);\n });\n };\n GraphQLWebSocketClient.prototype.subscribe = function (document, subscriber, variables) {\n var _a = _1.resolveRequestDocument(document), query = _a.query, operationName = _a.operationName;\n return this.makeSubscribe(query, operationName, variables, subscriber);\n };\n GraphQLWebSocketClient.prototype.rawSubscribe = function (query, subscriber, variables) {\n return this.makeSubscribe(query, undefined, variables, subscriber);\n };\n GraphQLWebSocketClient.prototype.ping = function (payload) {\n this.socket.send(Ping(payload).text);\n };\n GraphQLWebSocketClient.prototype.close = function () {\n this.socket.close(1000);\n };\n GraphQLWebSocketClient.PROTOCOL = \"graphql-transport-ws\";\n return GraphQLWebSocketClient;\n}());\nexports.GraphQLWebSocketClient = GraphQLWebSocketClient;\n// Helper functions\nfunction parseMessage(data, f) {\n if (f === void 0) { f = function (a) { return a; }; }\n var m = GraphQLWebSocketMessage.parse(data, f);\n return m;\n}\nfunction ConnectionInit(payload) {\n return new GraphQLWebSocketMessage(CONNECTION_INIT, payload);\n}\nfunction Ping(payload) {\n return new GraphQLWebSocketMessage(PING, payload, undefined);\n}\nfunction Pong(payload) {\n return new GraphQLWebSocketMessage(PONG, payload, undefined);\n}\nfunction Subscribe(id, payload) {\n return new GraphQLWebSocketMessage(SUBSCRIBE, payload, id);\n}\nfunction Complete(id) {\n return new GraphQLWebSocketMessage(COMPLETE, undefined, id);\n}\n//# sourceMappingURL=graphql-ws.js.map","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (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};\nvar __awaiter = (this && this.__awaiter) || function (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};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"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 (_) 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};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GraphQLWebSocketClient = exports.gql = exports.resolveRequestDocument = exports.batchRequests = exports.request = exports.rawRequest = exports.GraphQLClient = exports.ClientError = void 0;\nvar cross_fetch_1 = __importStar(require(\"cross-fetch\")), CrossFetch = cross_fetch_1;\nvar parser_1 = require(\"graphql/language/parser\");\nvar printer_1 = require(\"graphql/language/printer\");\nvar createRequestBody_1 = __importDefault(require(\"./createRequestBody\"));\nvar defaultJsonSerializer_1 = require(\"./defaultJsonSerializer\");\nvar parseArgs_1 = require(\"./parseArgs\");\nvar types_1 = require(\"./types\");\nObject.defineProperty(exports, \"ClientError\", { enumerable: true, get: function () { return types_1.ClientError; } });\n/**\n * Convert the given headers configuration into a plain object.\n */\nvar resolveHeaders = function (headers) {\n var oHeaders = {};\n if (headers) {\n if ((typeof Headers !== 'undefined' && headers instanceof Headers) ||\n headers instanceof CrossFetch.Headers) {\n oHeaders = HeadersInstanceToPlainObject(headers);\n }\n else if (Array.isArray(headers)) {\n headers.forEach(function (_a) {\n var name = _a[0], value = _a[1];\n oHeaders[name] = value;\n });\n }\n else {\n oHeaders = headers;\n }\n }\n return oHeaders;\n};\n/**\n * Clean a GraphQL document to send it via a GET query\n *\n * @param {string} str GraphQL query\n * @returns {string} Cleaned query\n */\nvar queryCleanner = function (str) { return str.replace(/([\\s,]|#[^\\n\\r]+)+/g, ' ').trim(); };\n/**\n * Create query string for GraphQL request\n *\n * @param {object} param0 -\n *\n * @param {string|string[]} param0.query the GraphQL document or array of document if it's a batch request\n * @param {string|undefined} param0.operationName the GraphQL operation name\n * @param {any|any[]} param0.variables the GraphQL variables to use\n */\nvar buildGetQueryParams = function (_a) {\n var query = _a.query, variables = _a.variables, operationName = _a.operationName, jsonSerializer = _a.jsonSerializer;\n if (!Array.isArray(query)) {\n var search = [\"query=\" + encodeURIComponent(queryCleanner(query))];\n if (variables) {\n search.push(\"variables=\" + encodeURIComponent(jsonSerializer.stringify(variables)));\n }\n if (operationName) {\n search.push(\"operationName=\" + encodeURIComponent(operationName));\n }\n return search.join('&');\n }\n if (typeof variables !== 'undefined' && !Array.isArray(variables)) {\n throw new Error('Cannot create query with given variable type, array expected');\n }\n // Batch support\n var payload = query.reduce(function (accu, currentQuery, index) {\n accu.push({\n query: queryCleanner(currentQuery),\n variables: variables ? jsonSerializer.stringify(variables[index]) : undefined,\n });\n return accu;\n }, []);\n return \"query=\" + encodeURIComponent(jsonSerializer.stringify(payload));\n};\n/**\n * Fetch data using POST method\n */\nvar post = function (_a) {\n var url = _a.url, query = _a.query, variables = _a.variables, operationName = _a.operationName, headers = _a.headers, fetch = _a.fetch, fetchOptions = _a.fetchOptions;\n return __awaiter(void 0, void 0, void 0, function () {\n var body;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n body = createRequestBody_1.default(query, variables, operationName, fetchOptions.jsonSerializer);\n return [4 /*yield*/, fetch(url, __assign({ method: 'POST', headers: __assign(__assign({}, (typeof body === 'string' ? { 'Content-Type': 'application/json' } : {})), headers), body: body }, fetchOptions))];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n });\n};\n/**\n * Fetch data using GET method\n */\nvar get = function (_a) {\n var url = _a.url, query = _a.query, variables = _a.variables, operationName = _a.operationName, headers = _a.headers, fetch = _a.fetch, fetchOptions = _a.fetchOptions;\n return __awaiter(void 0, void 0, void 0, function () {\n var queryParams;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n queryParams = buildGetQueryParams({\n query: query,\n variables: variables,\n operationName: operationName,\n jsonSerializer: fetchOptions.jsonSerializer\n });\n return [4 /*yield*/, fetch(url + \"?\" + queryParams, __assign({ method: 'GET', headers: headers }, fetchOptions))];\n case 1: return [2 /*return*/, _b.sent()];\n }\n });\n });\n};\n/**\n * GraphQL Client.\n */\nvar GraphQLClient = /** @class */ (function () {\n function GraphQLClient(url, options) {\n this.url = url;\n this.options = options || {};\n }\n GraphQLClient.prototype.rawRequest = function (queryOrOptions, variables, requestHeaders) {\n return __awaiter(this, void 0, void 0, function () {\n var rawRequestOptions, _a, headers, _b, fetch, _c, method, fetchOptions, url, operationName;\n return __generator(this, function (_d) {\n rawRequestOptions = parseArgs_1.parseRawRequestArgs(queryOrOptions, variables, requestHeaders);\n _a = this.options, headers = _a.headers, _b = _a.fetch, fetch = _b === void 0 ? cross_fetch_1.default : _b, _c = _a.method, method = _c === void 0 ? 'POST' : _c, fetchOptions = __rest(_a, [\"headers\", \"fetch\", \"method\"]);\n url = this.url;\n if (rawRequestOptions.signal !== undefined) {\n fetchOptions.signal = rawRequestOptions.signal;\n }\n operationName = resolveRequestDocument(rawRequestOptions.query).operationName;\n return [2 /*return*/, makeRequest({\n url: url,\n query: rawRequestOptions.query,\n variables: rawRequestOptions.variables,\n headers: __assign(__assign({}, resolveHeaders(callOrIdentity(headers))), resolveHeaders(rawRequestOptions.requestHeaders)),\n operationName: operationName,\n fetch: fetch,\n method: method,\n fetchOptions: fetchOptions,\n })];\n });\n });\n };\n GraphQLClient.prototype.request = function (documentOrOptions, variables, requestHeaders) {\n return __awaiter(this, void 0, void 0, function () {\n var requestOptions, _a, headers, _b, fetch, _c, method, fetchOptions, url, _d, query, operationName, data;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n requestOptions = parseArgs_1.parseRequestArgs(documentOrOptions, variables, requestHeaders);\n _a = this.options, headers = _a.headers, _b = _a.fetch, fetch = _b === void 0 ? cross_fetch_1.default : _b, _c = _a.method, method = _c === void 0 ? 'POST' : _c, fetchOptions = __rest(_a, [\"headers\", \"fetch\", \"method\"]);\n url = this.url;\n if (requestOptions.signal !== undefined) {\n fetchOptions.signal = requestOptions.signal;\n }\n _d = resolveRequestDocument(requestOptions.document), query = _d.query, operationName = _d.operationName;\n return [4 /*yield*/, makeRequest({\n url: url,\n query: query,\n variables: requestOptions.variables,\n headers: __assign(__assign({}, resolveHeaders(callOrIdentity(headers))), resolveHeaders(requestOptions.requestHeaders)),\n operationName: operationName,\n fetch: fetch,\n method: method,\n fetchOptions: fetchOptions,\n })];\n case 1:\n data = (_e.sent()).data;\n return [2 /*return*/, data];\n }\n });\n });\n };\n GraphQLClient.prototype.batchRequests = function (documentsOrOptions, requestHeaders) {\n return __awaiter(this, void 0, void 0, function () {\n var batchRequestOptions, _a, headers, _b, fetch, _c, method, fetchOptions, url, queries, variables, data;\n return __generator(this, function (_d) {\n switch (_d.label) {\n case 0:\n batchRequestOptions = parseArgs_1.parseBatchRequestArgs(documentsOrOptions, requestHeaders);\n _a = this.options, headers = _a.headers, _b = _a.fetch, fetch = _b === void 0 ? cross_fetch_1.default : _b, _c = _a.method, method = _c === void 0 ? 'POST' : _c, fetchOptions = __rest(_a, [\"headers\", \"fetch\", \"method\"]);\n url = this.url;\n if (batchRequestOptions.signal !== undefined) {\n fetchOptions.signal = batchRequestOptions.signal;\n }\n queries = batchRequestOptions.documents.map(function (_a) {\n var document = _a.document;\n return resolveRequestDocument(document).query;\n });\n variables = batchRequestOptions.documents.map(function (_a) {\n var variables = _a.variables;\n return variables;\n });\n return [4 /*yield*/, makeRequest({\n url: url,\n query: queries,\n variables: variables,\n headers: __assign(__assign({}, resolveHeaders(callOrIdentity(headers))), resolveHeaders(batchRequestOptions.requestHeaders)),\n operationName: undefined,\n fetch: fetch,\n method: method,\n fetchOptions: fetchOptions,\n })];\n case 1:\n data = (_d.sent()).data;\n return [2 /*return*/, data];\n }\n });\n });\n };\n GraphQLClient.prototype.setHeaders = function (headers) {\n this.options.headers = headers;\n return this;\n };\n /**\n * Attach a header to the client. All subsequent requests will have this header.\n */\n GraphQLClient.prototype.setHeader = function (key, value) {\n var _a;\n var headers = this.options.headers;\n if (headers) {\n // todo what if headers is in nested array form... ?\n //@ts-ignore\n headers[key] = value;\n }\n else {\n this.options.headers = (_a = {}, _a[key] = value, _a);\n }\n return this;\n };\n /**\n * Change the client endpoint. All subsequent requests will send to this endpoint.\n */\n GraphQLClient.prototype.setEndpoint = function (value) {\n this.url = value;\n return this;\n };\n return GraphQLClient;\n}());\nexports.GraphQLClient = GraphQLClient;\nfunction makeRequest(_a) {\n var url = _a.url, query = _a.query, variables = _a.variables, headers = _a.headers, operationName = _a.operationName, fetch = _a.fetch, _b = _a.method, method = _b === void 0 ? 'POST' : _b, fetchOptions = _a.fetchOptions;\n return __awaiter(this, void 0, void 0, function () {\n var fetcher, isBathchingQuery, response, result, successfullyReceivedData, successfullyPassedErrorPolicy, headers_1, status_1, errors, rest, data, errorResult;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n fetcher = method.toUpperCase() === 'POST' ? post : get;\n isBathchingQuery = Array.isArray(query);\n return [4 /*yield*/, fetcher({\n url: url,\n query: query,\n variables: variables,\n operationName: operationName,\n headers: headers,\n fetch: fetch,\n fetchOptions: fetchOptions,\n })];\n case 1:\n response = _c.sent();\n return [4 /*yield*/, getResult(response, fetchOptions.jsonSerializer)];\n case 2:\n result = _c.sent();\n successfullyReceivedData = isBathchingQuery && Array.isArray(result) ? !result.some(function (_a) {\n var data = _a.data;\n return !data;\n }) : !!result.data;\n successfullyPassedErrorPolicy = !result.errors || fetchOptions.errorPolicy === 'all' || fetchOptions.errorPolicy === 'ignore';\n if (response.ok && successfullyPassedErrorPolicy && successfullyReceivedData) {\n headers_1 = response.headers, status_1 = response.status;\n errors = result.errors, rest = __rest(result, [\"errors\"]);\n data = fetchOptions.errorPolicy === 'ignore' ? rest : result;\n return [2 /*return*/, __assign(__assign({}, (isBathchingQuery ? { data: data } : data)), { headers: headers_1, status: status_1 })];\n }\n else {\n errorResult = typeof result === 'string' ? { error: result } : result;\n throw new types_1.ClientError(__assign(__assign({}, errorResult), { status: response.status, headers: response.headers }), { query: query, variables: variables });\n }\n return [2 /*return*/];\n }\n });\n });\n}\nfunction rawRequest(urlOrOptions, query, variables, requestHeaders) {\n return __awaiter(this, void 0, void 0, function () {\n var requestOptions, client;\n return __generator(this, function (_a) {\n requestOptions = parseArgs_1.parseRawRequestExtendedArgs(urlOrOptions, query, variables, requestHeaders);\n client = new GraphQLClient(requestOptions.url);\n return [2 /*return*/, client.rawRequest(__assign({}, requestOptions))];\n });\n });\n}\nexports.rawRequest = rawRequest;\nfunction request(urlOrOptions, document, variables, requestHeaders) {\n return __awaiter(this, void 0, void 0, function () {\n var requestOptions, client;\n return __generator(this, function (_a) {\n requestOptions = parseArgs_1.parseRequestExtendedArgs(urlOrOptions, document, variables, requestHeaders);\n client = new GraphQLClient(requestOptions.url);\n return [2 /*return*/, client.request(__assign({}, requestOptions))];\n });\n });\n}\nexports.request = request;\nfunction batchRequests(urlOrOptions, documents, requestHeaders) {\n return __awaiter(this, void 0, void 0, function () {\n var requestOptions, client;\n return __generator(this, function (_a) {\n requestOptions = parseArgs_1.parseBatchRequestsExtendedArgs(urlOrOptions, documents, requestHeaders);\n client = new GraphQLClient(requestOptions.url);\n return [2 /*return*/, client.batchRequests(__assign({}, requestOptions))];\n });\n });\n}\nexports.batchRequests = batchRequests;\nexports.default = request;\n/**\n * todo\n */\nfunction getResult(response, jsonSerializer) {\n if (jsonSerializer === void 0) { jsonSerializer = defaultJsonSerializer_1.defaultJsonSerializer; }\n return __awaiter(this, void 0, void 0, function () {\n var contentType, _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n response.headers.forEach(function (value, key) {\n if (key.toLowerCase() === 'content-type') {\n contentType = value;\n }\n });\n if (!(contentType && contentType.toLowerCase().startsWith('application/json'))) return [3 /*break*/, 2];\n _b = (_a = jsonSerializer).parse;\n return [4 /*yield*/, response.text()];\n case 1: return [2 /*return*/, _b.apply(_a, [_c.sent()])];\n case 2: return [2 /*return*/, response.text()];\n }\n });\n });\n}\n/**\n * helpers\n */\nfunction extractOperationName(document) {\n var _a;\n var operationName = undefined;\n var operationDefinitions = document.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; });\n if (operationDefinitions.length === 1) {\n operationName = (_a = operationDefinitions[0].name) === null || _a === void 0 ? void 0 : _a.value;\n }\n return operationName;\n}\nfunction resolveRequestDocument(document) {\n if (typeof document === 'string') {\n var operationName_1 = undefined;\n try {\n var parsedDocument = parser_1.parse(document);\n operationName_1 = extractOperationName(parsedDocument);\n }\n catch (err) {\n // Failed parsing the document, the operationName will be undefined\n }\n return { query: document, operationName: operationName_1 };\n }\n var operationName = extractOperationName(document);\n return { query: printer_1.print(document), operationName: operationName };\n}\nexports.resolveRequestDocument = resolveRequestDocument;\nfunction callOrIdentity(value) {\n return typeof value === 'function' ? value() : value;\n}\n/**\n * Convenience passthrough template tag to get the benefits of tooling for the gql template tag. This does not actually parse the input into a GraphQL DocumentNode like graphql-tag package does. It just returns the string with any variables given interpolated. Can save you a bit of performance and having to install another package.\n *\n * @example\n *\n * import { gql } from 'graphql-request'\n *\n * await request('https://foo.bar/graphql', gql`...`)\n *\n * @remarks\n *\n * Several tools in the Node GraphQL ecosystem are hardcoded to specially treat any template tag named \"gql\". For example see this prettier issue: https://github.com/prettier/prettier/issues/4360. Using this template tag has no runtime effect beyond variable interpolation.\n */\nfunction gql(chunks) {\n var variables = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n variables[_i - 1] = arguments[_i];\n }\n return chunks.reduce(function (accumulator, chunk, index) { return \"\" + accumulator + chunk + (index in variables ? variables[index] : ''); }, '');\n}\nexports.gql = gql;\n/**\n * Convert Headers instance into regular object\n */\nfunction HeadersInstanceToPlainObject(headers) {\n var o = {};\n headers.forEach(function (v, k) {\n o[k] = v;\n });\n return o;\n}\nvar graphql_ws_1 = require(\"./graphql-ws\");\nObject.defineProperty(exports, \"GraphQLWebSocketClient\", { enumerable: true, get: function () { return graphql_ws_1.GraphQLWebSocketClient; } });\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.parseBatchRequestsExtendedArgs = exports.parseRawRequestExtendedArgs = exports.parseRequestExtendedArgs = exports.parseBatchRequestArgs = exports.parseRawRequestArgs = exports.parseRequestArgs = void 0;\nfunction parseRequestArgs(documentOrOptions, variables, requestHeaders) {\n return documentOrOptions.document\n ? documentOrOptions\n : {\n document: documentOrOptions,\n variables: variables,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n}\nexports.parseRequestArgs = parseRequestArgs;\nfunction parseRawRequestArgs(queryOrOptions, variables, requestHeaders) {\n return queryOrOptions.query\n ? queryOrOptions\n : {\n query: queryOrOptions,\n variables: variables,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n}\nexports.parseRawRequestArgs = parseRawRequestArgs;\nfunction parseBatchRequestArgs(documentsOrOptions, requestHeaders) {\n return documentsOrOptions.documents\n ? documentsOrOptions\n : {\n documents: documentsOrOptions,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n}\nexports.parseBatchRequestArgs = parseBatchRequestArgs;\nfunction parseRequestExtendedArgs(urlOrOptions, document, variables, requestHeaders) {\n return urlOrOptions.document\n ? urlOrOptions\n : {\n url: urlOrOptions,\n document: document,\n variables: variables,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n}\nexports.parseRequestExtendedArgs = parseRequestExtendedArgs;\nfunction parseRawRequestExtendedArgs(urlOrOptions, query, variables, requestHeaders) {\n return urlOrOptions.query\n ? urlOrOptions\n : {\n url: urlOrOptions,\n query: query,\n variables: variables,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n}\nexports.parseRawRequestExtendedArgs = parseRawRequestExtendedArgs;\nfunction parseBatchRequestsExtendedArgs(urlOrOptions, documents, requestHeaders) {\n return urlOrOptions.documents\n ? urlOrOptions\n : {\n url: urlOrOptions,\n documents: documents,\n requestHeaders: requestHeaders,\n signal: undefined,\n };\n}\nexports.parseBatchRequestsExtendedArgs = parseBatchRequestsExtendedArgs;\n//# sourceMappingURL=parseArgs.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClientError = void 0;\nvar ClientError = /** @class */ (function (_super) {\n __extends(ClientError, _super);\n function ClientError(response, request) {\n var _this = this;\n var message = ClientError.extractMessage(response) + \": \" + JSON.stringify({\n response: response,\n request: request,\n });\n _this = _super.call(this, message) || this;\n Object.setPrototypeOf(_this, ClientError.prototype);\n _this.response = response;\n _this.request = request;\n // this is needed as Safari doesn't support .captureStackTrace\n if (typeof Error.captureStackTrace === 'function') {\n Error.captureStackTrace(_this, ClientError);\n }\n return _this;\n }\n ClientError.extractMessage = function (response) {\n try {\n return response.errors[0].message;\n }\n catch (e) {\n return \"GraphQL Error (Code: \" + response.status + \")\";\n }\n };\n return ClientError;\n}(Error));\nexports.ClientError = ClientError;\n//# sourceMappingURL=types.js.map","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","var warning = function () { };\r\nvar invariant = function () { };\r\nif (process.env.NODE_ENV !== 'production') {\r\n warning = function (check, message) {\r\n if (!check && typeof console !== 'undefined') {\r\n console.warn(message);\r\n }\r\n };\r\n invariant = function (check, message) {\r\n if (!check) {\r\n throw new Error(message);\r\n }\r\n };\r\n}\n\nexport { invariant, warning };\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","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.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","/**\n * [js-sha3]{@link https://github.com/emn178/js-sha3}\n *\n * @version 0.8.0\n * @author Chen, Yi-Cyuan [emn178@gmail.com]\n * @copyright Chen, Yi-Cyuan 2015-2018\n * @license MIT\n */\n/*jslint bitwise: true */\n(function () {\n 'use strict';\n\n var INPUT_ERROR = 'input is invalid type';\n var FINALIZE_ERROR = 'finalize already called';\n var WINDOW = typeof window === 'object';\n var root = WINDOW ? window : {};\n if (root.JS_SHA3_NO_WINDOW) {\n WINDOW = false;\n }\n var WEB_WORKER = !WINDOW && typeof self === 'object';\n var NODE_JS = !root.JS_SHA3_NO_NODE_JS && typeof process === 'object' && process.versions && process.versions.node;\n if (NODE_JS) {\n root = global;\n } else if (WEB_WORKER) {\n root = self;\n }\n var COMMON_JS = !root.JS_SHA3_NO_COMMON_JS && typeof module === 'object' && module.exports;\n var AMD = typeof define === 'function' && define.amd;\n var ARRAY_BUFFER = !root.JS_SHA3_NO_ARRAY_BUFFER && typeof ArrayBuffer !== 'undefined';\n var HEX_CHARS = '0123456789abcdef'.split('');\n var SHAKE_PADDING = [31, 7936, 2031616, 520093696];\n var CSHAKE_PADDING = [4, 1024, 262144, 67108864];\n var KECCAK_PADDING = [1, 256, 65536, 16777216];\n var PADDING = [6, 1536, 393216, 100663296];\n var SHIFT = [0, 8, 16, 24];\n var RC = [1, 0, 32898, 0, 32906, 2147483648, 2147516416, 2147483648, 32907, 0, 2147483649,\n 0, 2147516545, 2147483648, 32777, 2147483648, 138, 0, 136, 0, 2147516425, 0,\n 2147483658, 0, 2147516555, 0, 139, 2147483648, 32905, 2147483648, 32771,\n 2147483648, 32770, 2147483648, 128, 2147483648, 32778, 0, 2147483658, 2147483648,\n 2147516545, 2147483648, 32896, 2147483648, 2147483649, 0, 2147516424, 2147483648];\n var BITS = [224, 256, 384, 512];\n var SHAKE_BITS = [128, 256];\n var OUTPUT_TYPES = ['hex', 'buffer', 'arrayBuffer', 'array', 'digest'];\n var CSHAKE_BYTEPAD = {\n '128': 168,\n '256': 136\n };\n\n if (root.JS_SHA3_NO_NODE_JS || !Array.isArray) {\n Array.isArray = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n }\n\n if (ARRAY_BUFFER && (root.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW || !ArrayBuffer.isView)) {\n ArrayBuffer.isView = function (obj) {\n return typeof obj === 'object' && obj.buffer && obj.buffer.constructor === ArrayBuffer;\n };\n }\n\n var createOutputMethod = function (bits, padding, outputType) {\n return function (message) {\n return new Keccak(bits, padding, bits).update(message)[outputType]();\n };\n };\n\n var createShakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits) {\n return new Keccak(bits, padding, outputBits).update(message)[outputType]();\n };\n };\n\n var createCshakeOutputMethod = function (bits, padding, outputType) {\n return function (message, outputBits, n, s) {\n return methods['cshake' + bits].update(message, outputBits, n, s)[outputType]();\n };\n };\n\n var createKmacOutputMethod = function (bits, padding, outputType) {\n return function (key, message, outputBits, s) {\n return methods['kmac' + bits].update(key, message, outputBits, s)[outputType]();\n };\n };\n\n var createOutputMethods = function (method, createMethod, bits, padding) {\n for (var i = 0; i < OUTPUT_TYPES.length; ++i) {\n var type = OUTPUT_TYPES[i];\n method[type] = createMethod(bits, padding, type);\n }\n return method;\n };\n\n var createMethod = function (bits, padding) {\n var method = createOutputMethod(bits, padding, 'hex');\n method.create = function () {\n return new Keccak(bits, padding, bits);\n };\n method.update = function (message) {\n return method.create().update(message);\n };\n return createOutputMethods(method, createOutputMethod, bits, padding);\n };\n\n var createShakeMethod = function (bits, padding) {\n var method = createShakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits) {\n return new Keccak(bits, padding, outputBits);\n };\n method.update = function (message, outputBits) {\n return method.create(outputBits).update(message);\n };\n return createOutputMethods(method, createShakeOutputMethod, bits, padding);\n };\n\n var createCshakeMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createCshakeOutputMethod(bits, padding, 'hex');\n method.create = function (outputBits, n, s) {\n if (!n && !s) {\n return methods['shake' + bits].create(outputBits);\n } else {\n return new Keccak(bits, padding, outputBits).bytepad([n, s], w);\n }\n };\n method.update = function (message, outputBits, n, s) {\n return method.create(outputBits, n, s).update(message);\n };\n return createOutputMethods(method, createCshakeOutputMethod, bits, padding);\n };\n\n var createKmacMethod = function (bits, padding) {\n var w = CSHAKE_BYTEPAD[bits];\n var method = createKmacOutputMethod(bits, padding, 'hex');\n method.create = function (key, outputBits, s) {\n return new Kmac(bits, padding, outputBits).bytepad(['KMAC', s], w).bytepad([key], w);\n };\n method.update = function (key, message, outputBits, s) {\n return method.create(key, outputBits, s).update(message);\n };\n return createOutputMethods(method, createKmacOutputMethod, bits, padding);\n };\n\n var algorithms = [\n { name: 'keccak', padding: KECCAK_PADDING, bits: BITS, createMethod: createMethod },\n { name: 'sha3', padding: PADDING, bits: BITS, createMethod: createMethod },\n { name: 'shake', padding: SHAKE_PADDING, bits: SHAKE_BITS, createMethod: createShakeMethod },\n { name: 'cshake', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createCshakeMethod },\n { name: 'kmac', padding: CSHAKE_PADDING, bits: SHAKE_BITS, createMethod: createKmacMethod }\n ];\n\n var methods = {}, methodNames = [];\n\n for (var i = 0; i < algorithms.length; ++i) {\n var algorithm = algorithms[i];\n var bits = algorithm.bits;\n for (var j = 0; j < bits.length; ++j) {\n var methodName = algorithm.name + '_' + bits[j];\n methodNames.push(methodName);\n methods[methodName] = algorithm.createMethod(bits[j], algorithm.padding);\n if (algorithm.name !== 'sha3') {\n var newMethodName = algorithm.name + bits[j];\n methodNames.push(newMethodName);\n methods[newMethodName] = methods[methodName];\n }\n }\n }\n\n function Keccak(bits, padding, outputBits) {\n this.blocks = [];\n this.s = [];\n this.padding = padding;\n this.outputBits = outputBits;\n this.reset = true;\n this.finalized = false;\n this.block = 0;\n this.start = 0;\n this.blockCount = (1600 - (bits << 1)) >> 5;\n this.byteCount = this.blockCount << 2;\n this.outputBlocks = outputBits >> 5;\n this.extraBytes = (outputBits & 31) >> 3;\n\n for (var i = 0; i < 50; ++i) {\n this.s[i] = 0;\n }\n }\n\n Keccak.prototype.update = function (message) {\n if (this.finalized) {\n throw new Error(FINALIZE_ERROR);\n }\n var notString, type = typeof message;\n if (type !== 'string') {\n if (type === 'object') {\n if (message === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && message.constructor === ArrayBuffer) {\n message = new Uint8Array(message);\n } else if (!Array.isArray(message)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(message)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var blocks = this.blocks, byteCount = this.byteCount, length = message.length,\n blockCount = this.blockCount, index = 0, s = this.s, i, code;\n\n while (index < length) {\n if (this.reset) {\n this.reset = false;\n blocks[0] = this.block;\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n if (notString) {\n for (i = this.start; index < length && i < byteCount; ++index) {\n blocks[i >> 2] |= message[index] << SHIFT[i++ & 3];\n }\n } else {\n for (i = this.start; index < length && i < byteCount; ++index) {\n code = message.charCodeAt(index);\n if (code < 0x80) {\n blocks[i >> 2] |= code << SHIFT[i++ & 3];\n } else if (code < 0x800) {\n blocks[i >> 2] |= (0xc0 | (code >> 6)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else if (code < 0xd800 || code >= 0xe000) {\n blocks[i >> 2] |= (0xe0 | (code >> 12)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (message.charCodeAt(++index) & 0x3ff));\n blocks[i >> 2] |= (0xf0 | (code >> 18)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 12) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | ((code >> 6) & 0x3f)) << SHIFT[i++ & 3];\n blocks[i >> 2] |= (0x80 | (code & 0x3f)) << SHIFT[i++ & 3];\n }\n }\n }\n this.lastByteIndex = i;\n if (i >= byteCount) {\n this.start = i - byteCount;\n this.block = blocks[blockCount];\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n this.reset = true;\n } else {\n this.start = i;\n }\n }\n return this;\n };\n\n Keccak.prototype.encode = function (x, right) {\n var o = x & 255, n = 1;\n var bytes = [o];\n x = x >> 8;\n o = x & 255;\n while (o > 0) {\n bytes.unshift(o);\n x = x >> 8;\n o = x & 255;\n ++n;\n }\n if (right) {\n bytes.push(n);\n } else {\n bytes.unshift(n);\n }\n this.update(bytes);\n return bytes.length;\n };\n\n Keccak.prototype.encodeString = function (str) {\n var notString, type = typeof str;\n if (type !== 'string') {\n if (type === 'object') {\n if (str === null) {\n throw new Error(INPUT_ERROR);\n } else if (ARRAY_BUFFER && str.constructor === ArrayBuffer) {\n str = new Uint8Array(str);\n } else if (!Array.isArray(str)) {\n if (!ARRAY_BUFFER || !ArrayBuffer.isView(str)) {\n throw new Error(INPUT_ERROR);\n }\n }\n } else {\n throw new Error(INPUT_ERROR);\n }\n notString = true;\n }\n var bytes = 0, length = str.length;\n if (notString) {\n bytes = length;\n } else {\n for (var i = 0; i < str.length; ++i) {\n var code = str.charCodeAt(i);\n if (code < 0x80) {\n bytes += 1;\n } else if (code < 0x800) {\n bytes += 2;\n } else if (code < 0xd800 || code >= 0xe000) {\n bytes += 3;\n } else {\n code = 0x10000 + (((code & 0x3ff) << 10) | (str.charCodeAt(++i) & 0x3ff));\n bytes += 4;\n }\n }\n }\n bytes += this.encode(bytes * 8);\n this.update(str);\n return bytes;\n };\n\n Keccak.prototype.bytepad = function (strs, w) {\n var bytes = this.encode(w);\n for (var i = 0; i < strs.length; ++i) {\n bytes += this.encodeString(strs[i]);\n }\n var paddingBytes = w - bytes % w;\n var zeros = [];\n zeros.length = paddingBytes;\n this.update(zeros);\n return this;\n };\n\n Keccak.prototype.finalize = function () {\n if (this.finalized) {\n return;\n }\n this.finalized = true;\n var blocks = this.blocks, i = this.lastByteIndex, blockCount = this.blockCount, s = this.s;\n blocks[i >> 2] |= this.padding[i & 3];\n if (this.lastByteIndex === this.byteCount) {\n blocks[0] = blocks[blockCount];\n for (i = 1; i < blockCount + 1; ++i) {\n blocks[i] = 0;\n }\n }\n blocks[blockCount - 1] |= 0x80000000;\n for (i = 0; i < blockCount; ++i) {\n s[i] ^= blocks[i];\n }\n f(s);\n };\n\n Keccak.prototype.toString = Keccak.prototype.hex = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var hex = '', block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F] +\n HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F] +\n HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F] +\n HEX_CHARS[(block >> 28) & 0x0F] + HEX_CHARS[(block >> 24) & 0x0F];\n }\n if (j % blockCount === 0) {\n f(s);\n i = 0;\n }\n }\n if (extraBytes) {\n block = s[i];\n hex += HEX_CHARS[(block >> 4) & 0x0F] + HEX_CHARS[block & 0x0F];\n if (extraBytes > 1) {\n hex += HEX_CHARS[(block >> 12) & 0x0F] + HEX_CHARS[(block >> 8) & 0x0F];\n }\n if (extraBytes > 2) {\n hex += HEX_CHARS[(block >> 20) & 0x0F] + HEX_CHARS[(block >> 16) & 0x0F];\n }\n }\n return hex;\n };\n\n Keccak.prototype.arrayBuffer = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var bytes = this.outputBits >> 3;\n var buffer;\n if (extraBytes) {\n buffer = new ArrayBuffer((outputBlocks + 1) << 2);\n } else {\n buffer = new ArrayBuffer(bytes);\n }\n var array = new Uint32Array(buffer);\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n array[j] = s[i];\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n array[i] = s[i];\n buffer = buffer.slice(0, bytes);\n }\n return buffer;\n };\n\n Keccak.prototype.buffer = Keccak.prototype.arrayBuffer;\n\n Keccak.prototype.digest = Keccak.prototype.array = function () {\n this.finalize();\n\n var blockCount = this.blockCount, s = this.s, outputBlocks = this.outputBlocks,\n extraBytes = this.extraBytes, i = 0, j = 0;\n var array = [], offset, block;\n while (j < outputBlocks) {\n for (i = 0; i < blockCount && j < outputBlocks; ++i, ++j) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n array[offset + 1] = (block >> 8) & 0xFF;\n array[offset + 2] = (block >> 16) & 0xFF;\n array[offset + 3] = (block >> 24) & 0xFF;\n }\n if (j % blockCount === 0) {\n f(s);\n }\n }\n if (extraBytes) {\n offset = j << 2;\n block = s[i];\n array[offset] = block & 0xFF;\n if (extraBytes > 1) {\n array[offset + 1] = (block >> 8) & 0xFF;\n }\n if (extraBytes > 2) {\n array[offset + 2] = (block >> 16) & 0xFF;\n }\n }\n return array;\n };\n\n function Kmac(bits, padding, outputBits) {\n Keccak.call(this, bits, padding, outputBits);\n }\n\n Kmac.prototype = new Keccak();\n\n Kmac.prototype.finalize = function () {\n this.encode(this.outputBits, true);\n return Keccak.prototype.finalize.call(this);\n };\n\n var f = function (s) {\n var h, l, n, c0, c1, c2, c3, c4, c5, c6, c7, c8, c9,\n b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13, b14, b15, b16, b17,\n b18, b19, b20, b21, b22, b23, b24, b25, b26, b27, b28, b29, b30, b31, b32, b33,\n b34, b35, b36, b37, b38, b39, b40, b41, b42, b43, b44, b45, b46, b47, b48, b49;\n for (n = 0; n < 48; n += 2) {\n c0 = s[0] ^ s[10] ^ s[20] ^ s[30] ^ s[40];\n c1 = s[1] ^ s[11] ^ s[21] ^ s[31] ^ s[41];\n c2 = s[2] ^ s[12] ^ s[22] ^ s[32] ^ s[42];\n c3 = s[3] ^ s[13] ^ s[23] ^ s[33] ^ s[43];\n c4 = s[4] ^ s[14] ^ s[24] ^ s[34] ^ s[44];\n c5 = s[5] ^ s[15] ^ s[25] ^ s[35] ^ s[45];\n c6 = s[6] ^ s[16] ^ s[26] ^ s[36] ^ s[46];\n c7 = s[7] ^ s[17] ^ s[27] ^ s[37] ^ s[47];\n c8 = s[8] ^ s[18] ^ s[28] ^ s[38] ^ s[48];\n c9 = s[9] ^ s[19] ^ s[29] ^ s[39] ^ s[49];\n\n h = c8 ^ ((c2 << 1) | (c3 >>> 31));\n l = c9 ^ ((c3 << 1) | (c2 >>> 31));\n s[0] ^= h;\n s[1] ^= l;\n s[10] ^= h;\n s[11] ^= l;\n s[20] ^= h;\n s[21] ^= l;\n s[30] ^= h;\n s[31] ^= l;\n s[40] ^= h;\n s[41] ^= l;\n h = c0 ^ ((c4 << 1) | (c5 >>> 31));\n l = c1 ^ ((c5 << 1) | (c4 >>> 31));\n s[2] ^= h;\n s[3] ^= l;\n s[12] ^= h;\n s[13] ^= l;\n s[22] ^= h;\n s[23] ^= l;\n s[32] ^= h;\n s[33] ^= l;\n s[42] ^= h;\n s[43] ^= l;\n h = c2 ^ ((c6 << 1) | (c7 >>> 31));\n l = c3 ^ ((c7 << 1) | (c6 >>> 31));\n s[4] ^= h;\n s[5] ^= l;\n s[14] ^= h;\n s[15] ^= l;\n s[24] ^= h;\n s[25] ^= l;\n s[34] ^= h;\n s[35] ^= l;\n s[44] ^= h;\n s[45] ^= l;\n h = c4 ^ ((c8 << 1) | (c9 >>> 31));\n l = c5 ^ ((c9 << 1) | (c8 >>> 31));\n s[6] ^= h;\n s[7] ^= l;\n s[16] ^= h;\n s[17] ^= l;\n s[26] ^= h;\n s[27] ^= l;\n s[36] ^= h;\n s[37] ^= l;\n s[46] ^= h;\n s[47] ^= l;\n h = c6 ^ ((c0 << 1) | (c1 >>> 31));\n l = c7 ^ ((c1 << 1) | (c0 >>> 31));\n s[8] ^= h;\n s[9] ^= l;\n s[18] ^= h;\n s[19] ^= l;\n s[28] ^= h;\n s[29] ^= l;\n s[38] ^= h;\n s[39] ^= l;\n s[48] ^= h;\n s[49] ^= l;\n\n b0 = s[0];\n b1 = s[1];\n b32 = (s[11] << 4) | (s[10] >>> 28);\n b33 = (s[10] << 4) | (s[11] >>> 28);\n b14 = (s[20] << 3) | (s[21] >>> 29);\n b15 = (s[21] << 3) | (s[20] >>> 29);\n b46 = (s[31] << 9) | (s[30] >>> 23);\n b47 = (s[30] << 9) | (s[31] >>> 23);\n b28 = (s[40] << 18) | (s[41] >>> 14);\n b29 = (s[41] << 18) | (s[40] >>> 14);\n b20 = (s[2] << 1) | (s[3] >>> 31);\n b21 = (s[3] << 1) | (s[2] >>> 31);\n b2 = (s[13] << 12) | (s[12] >>> 20);\n b3 = (s[12] << 12) | (s[13] >>> 20);\n b34 = (s[22] << 10) | (s[23] >>> 22);\n b35 = (s[23] << 10) | (s[22] >>> 22);\n b16 = (s[33] << 13) | (s[32] >>> 19);\n b17 = (s[32] << 13) | (s[33] >>> 19);\n b48 = (s[42] << 2) | (s[43] >>> 30);\n b49 = (s[43] << 2) | (s[42] >>> 30);\n b40 = (s[5] << 30) | (s[4] >>> 2);\n b41 = (s[4] << 30) | (s[5] >>> 2);\n b22 = (s[14] << 6) | (s[15] >>> 26);\n b23 = (s[15] << 6) | (s[14] >>> 26);\n b4 = (s[25] << 11) | (s[24] >>> 21);\n b5 = (s[24] << 11) | (s[25] >>> 21);\n b36 = (s[34] << 15) | (s[35] >>> 17);\n b37 = (s[35] << 15) | (s[34] >>> 17);\n b18 = (s[45] << 29) | (s[44] >>> 3);\n b19 = (s[44] << 29) | (s[45] >>> 3);\n b10 = (s[6] << 28) | (s[7] >>> 4);\n b11 = (s[7] << 28) | (s[6] >>> 4);\n b42 = (s[17] << 23) | (s[16] >>> 9);\n b43 = (s[16] << 23) | (s[17] >>> 9);\n b24 = (s[26] << 25) | (s[27] >>> 7);\n b25 = (s[27] << 25) | (s[26] >>> 7);\n b6 = (s[36] << 21) | (s[37] >>> 11);\n b7 = (s[37] << 21) | (s[36] >>> 11);\n b38 = (s[47] << 24) | (s[46] >>> 8);\n b39 = (s[46] << 24) | (s[47] >>> 8);\n b30 = (s[8] << 27) | (s[9] >>> 5);\n b31 = (s[9] << 27) | (s[8] >>> 5);\n b12 = (s[18] << 20) | (s[19] >>> 12);\n b13 = (s[19] << 20) | (s[18] >>> 12);\n b44 = (s[29] << 7) | (s[28] >>> 25);\n b45 = (s[28] << 7) | (s[29] >>> 25);\n b26 = (s[38] << 8) | (s[39] >>> 24);\n b27 = (s[39] << 8) | (s[38] >>> 24);\n b8 = (s[48] << 14) | (s[49] >>> 18);\n b9 = (s[49] << 14) | (s[48] >>> 18);\n\n s[0] = b0 ^ (~b2 & b4);\n s[1] = b1 ^ (~b3 & b5);\n s[10] = b10 ^ (~b12 & b14);\n s[11] = b11 ^ (~b13 & b15);\n s[20] = b20 ^ (~b22 & b24);\n s[21] = b21 ^ (~b23 & b25);\n s[30] = b30 ^ (~b32 & b34);\n s[31] = b31 ^ (~b33 & b35);\n s[40] = b40 ^ (~b42 & b44);\n s[41] = b41 ^ (~b43 & b45);\n s[2] = b2 ^ (~b4 & b6);\n s[3] = b3 ^ (~b5 & b7);\n s[12] = b12 ^ (~b14 & b16);\n s[13] = b13 ^ (~b15 & b17);\n s[22] = b22 ^ (~b24 & b26);\n s[23] = b23 ^ (~b25 & b27);\n s[32] = b32 ^ (~b34 & b36);\n s[33] = b33 ^ (~b35 & b37);\n s[42] = b42 ^ (~b44 & b46);\n s[43] = b43 ^ (~b45 & b47);\n s[4] = b4 ^ (~b6 & b8);\n s[5] = b5 ^ (~b7 & b9);\n s[14] = b14 ^ (~b16 & b18);\n s[15] = b15 ^ (~b17 & b19);\n s[24] = b24 ^ (~b26 & b28);\n s[25] = b25 ^ (~b27 & b29);\n s[34] = b34 ^ (~b36 & b38);\n s[35] = b35 ^ (~b37 & b39);\n s[44] = b44 ^ (~b46 & b48);\n s[45] = b45 ^ (~b47 & b49);\n s[6] = b6 ^ (~b8 & b0);\n s[7] = b7 ^ (~b9 & b1);\n s[16] = b16 ^ (~b18 & b10);\n s[17] = b17 ^ (~b19 & b11);\n s[26] = b26 ^ (~b28 & b20);\n s[27] = b27 ^ (~b29 & b21);\n s[36] = b36 ^ (~b38 & b30);\n s[37] = b37 ^ (~b39 & b31);\n s[46] = b46 ^ (~b48 & b40);\n s[47] = b47 ^ (~b49 & b41);\n s[8] = b8 ^ (~b0 & b2);\n s[9] = b9 ^ (~b1 & b3);\n s[18] = b18 ^ (~b10 & b12);\n s[19] = b19 ^ (~b11 & b13);\n s[28] = b28 ^ (~b20 & b22);\n s[29] = b29 ^ (~b21 & b23);\n s[38] = b38 ^ (~b30 & b32);\n s[39] = b39 ^ (~b31 & b33);\n s[48] = b48 ^ (~b40 & b42);\n s[49] = b49 ^ (~b41 & b43);\n\n s[0] ^= RC[n];\n s[1] ^= RC[n + 1];\n }\n };\n\n if (COMMON_JS) {\n module.exports = methods;\n } else {\n for (i = 0; i < methodNames.length; ++i) {\n root[methodNames[i]] = methods[methodNames[i]];\n }\n if (AMD) {\n define(function () {\n return methods;\n });\n }\n }\n})();\n","(function(i,_){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=_():\"function\"==typeof define&&define.amd?define(_):(i=i||self,i.JSBI=_())})(this,function(){'use strict';var i=Math.imul,_=Math.clz32,t=Math.abs,e=Math.max,g=Math.floor;class o extends Array{constructor(i,_){if(super(i),this.sign=_,i>o.__kMaxLength)throw new RangeError(\"Maximum BigInt size exceeded\")}static BigInt(i){var _=Number.isFinite;if(\"number\"==typeof i){if(0===i)return o.__zero();if(o.__isOneDigitInt(i))return 0>i?o.__oneDigit(-i,!0):o.__oneDigit(i,!1);if(!_(i)||g(i)!==i)throw new RangeError(\"The number \"+i+\" cannot be converted to BigInt because it is not an integer\");return o.__fromDouble(i)}if(\"string\"==typeof i){const _=o.__fromString(i);if(null===_)throw new SyntaxError(\"Cannot convert \"+i+\" to a BigInt\");return _}if(\"boolean\"==typeof i)return!0===i?o.__oneDigit(1,!1):o.__zero();if(\"object\"==typeof i){if(i.constructor===o)return i;const _=o.__toPrimitive(i);return o.BigInt(_)}throw new TypeError(\"Cannot convert \"+i+\" to a BigInt\")}toDebugString(){const i=[\"BigInt[\"];for(const _ of this)i.push((_?(_>>>0).toString(16):_)+\", \");return i.push(\"]\"),i.join(\"\")}toString(i=10){if(2>i||36>>=12;const u=r-12;let d=12<=r?0:s<<20+r,h=20+r;for(0>>30-u,d=s<>>30-h,h-=30;const m=o.__decideRounding(i,h,l,s);if((1===m||0===m&&1==(1&d))&&(d=d+1>>>0,0===d&&(a++,0!=a>>>20&&(a=0,g++,1023=o.__kMaxLengthBits)throw new RangeError(\"BigInt too big\");if(1===i.length&&2===i.__digit(0)){const _=1+(0|t/30),e=i.sign&&0!=(1&t),n=new o(_,e);n.__initializeDigits();const g=1<>=1;0!==t;t>>=1)n=o.multiply(n,n),0!=(1&t)&&(null===e?e=n:e=o.multiply(e,n));return e}static multiply(_,t){if(0===_.length)return _;if(0===t.length)return t;let i=_.length+t.length;30<=_.__clzmsd()+t.__clzmsd()&&i--;const e=new o(i,_.sign!==t.sign);e.__initializeDigits();for(let n=0;n<_.length;n++)o.__multiplyAccumulate(t,_.__digit(n),e,n);return e.__trim()}static divide(i,_){if(0===_.length)throw new RangeError(\"Division by zero\");if(0>o.__absoluteCompare(i,_))return o.__zero();const t=i.sign!==_.sign,e=_.__unsignedDigit(0);let n;if(1===_.length&&32767>=e){if(1===e)return t===i.sign?i:o.unaryMinus(i);n=o.__absoluteDivSmall(i,e,null)}else n=o.__absoluteDivLarge(i,_,!0,!1);return n.sign=t,n.__trim()}static remainder(i,_){if(0===_.length)throw new RangeError(\"Division by zero\");if(0>o.__absoluteCompare(i,_))return i;const t=_.__unsignedDigit(0);if(1===_.length&&32767>=t){if(1===t)return o.__zero();const _=o.__absoluteModSmall(i,t);return 0===_?o.__zero():o.__oneDigit(_,i.sign)}const e=o.__absoluteDivLarge(i,_,!1,!0);return e.sign=i.sign,e.__trim()}static add(i,_){const t=i.sign;return t===_.sign?o.__absoluteAdd(i,_,t):0<=o.__absoluteCompare(i,_)?o.__absoluteSub(i,_,t):o.__absoluteSub(_,i,!t)}static subtract(i,_){const t=i.sign;return t===_.sign?0<=o.__absoluteCompare(i,_)?o.__absoluteSub(i,_,t):o.__absoluteSub(_,i,!t):o.__absoluteAdd(i,_,t)}static leftShift(i,_){return 0===_.length||0===i.length?i:_.sign?o.__rightShiftByAbsolute(i,_):o.__leftShiftByAbsolute(i,_)}static signedRightShift(i,_){return 0===_.length||0===i.length?i:_.sign?o.__leftShiftByAbsolute(i,_):o.__rightShiftByAbsolute(i,_)}static unsignedRightShift(){throw new TypeError(\"BigInts have no unsigned right shift; use >> instead\")}static lessThan(i,_){return 0>o.__compareToBigInt(i,_)}static lessThanOrEqual(i,_){return 0>=o.__compareToBigInt(i,_)}static greaterThan(i,_){return 0_)throw new RangeError(\"Invalid value: not (convertible to) a safe integer\");if(0===_)return o.__zero();if(_>=o.__kMaxLengthBits)return t;const e=0|(_+29)/30;if(t.lengthi)throw new RangeError(\"Invalid value: not (convertible to) a safe integer\");if(0===i)return o.__zero();if(_.sign){if(i>o.__kMaxLengthBits)throw new RangeError(\"BigInt too big\");return o.__truncateAndSubFromPowerOfTwo(i,_,!1)}if(i>=o.__kMaxLengthBits)return _;const t=0|(i+29)/30;if(_.length>>e)return _}return o.__truncateToNBits(i,_)}static ADD(i,_){if(i=o.__toPrimitive(i),_=o.__toPrimitive(_),\"string\"==typeof i)return\"string\"!=typeof _&&(_=_.toString()),i+_;if(\"string\"==typeof _)return i.toString()+_;if(i=o.__toNumeric(i),_=o.__toNumeric(_),o.__isBigInt(i)&&o.__isBigInt(_))return o.add(i,_);if(\"number\"==typeof i&&\"number\"==typeof _)return i+_;throw new TypeError(\"Cannot mix BigInt and other types, use explicit conversions\")}static LT(i,_){return o.__compare(i,_,0)}static LE(i,_){return o.__compare(i,_,1)}static GT(i,_){return o.__compare(i,_,2)}static GE(i,_){return o.__compare(i,_,3)}static EQ(i,_){for(;;){if(o.__isBigInt(i))return o.__isBigInt(_)?o.equal(i,_):o.EQ(_,i);if(\"number\"==typeof i){if(o.__isBigInt(_))return o.__equalToNumber(_,i);if(\"object\"!=typeof _)return i==_;_=o.__toPrimitive(_)}else if(\"string\"==typeof i){if(o.__isBigInt(_))return i=o.__fromString(i),null!==i&&o.equal(i,_);if(\"object\"!=typeof _)return i==_;_=o.__toPrimitive(_)}else if(\"boolean\"==typeof i){if(o.__isBigInt(_))return o.__equalToNumber(_,+i);if(\"object\"!=typeof _)return i==_;_=o.__toPrimitive(_)}else if(\"symbol\"==typeof i){if(o.__isBigInt(_))return!1;if(\"object\"!=typeof _)return i==_;_=o.__toPrimitive(_)}else if(\"object\"==typeof i){if(\"object\"==typeof _&&_.constructor!==o)return i==_;i=o.__toPrimitive(i)}else return i==_}}static NE(i,_){return!o.EQ(i,_)}static __zero(){return new o(0,!1)}static __oneDigit(i,_){const t=new o(1,_);return t.__setDigit(0,i),t}__copy(){const _=new o(this.length,this.sign);for(let t=0;t_)n=-_-1;else{if(0===t)return-1;t--,e=i.__digit(t),n=29}let g=1<>>20,t=_-1023,e=(0|t/30)+1,n=new o(e,0>i);let g=1048575&o.__kBitConversionInts[1]|1048576,s=o.__kBitConversionInts[0];const l=20,r=t%30;let a,u=0;if(20>r){const i=l-r;u=i+32,a=g>>>i,g=g<<32-i|s>>>i,s<<=32-i}else if(20===r)u=32,a=g,g=s,s=0;else{const i=r-l;u=32-i,a=g<>>32-i,g=s<>>2,g=g<<30|s>>>2,s<<=30):a=0,n.__setDigit(_,a);return n.__trim()}static __isWhitespace(i){return!!(13>=i&&9<=i)||(159>=i?32==i:131071>=i?160==i||5760==i:196607>=i?(i&=131071,10>=i||40==i||41==i||47==i||95==i||4096==i):65279==i)}static __fromString(i,_=0){let t=0;const e=i.length;let n=0;if(n===e)return o.__zero();let g=i.charCodeAt(n);for(;o.__isWhitespace(g);){if(++n===e)return o.__zero();g=i.charCodeAt(n)}if(43===g){if(++n===e)return null;g=i.charCodeAt(n),t=1}else if(45===g){if(++n===e)return null;g=i.charCodeAt(n),t=-1}if(0===_){if(_=10,48===g){if(++n===e)return o.__zero();if(g=i.charCodeAt(n),88===g||120===g){if(_=16,++n===e)return null;g=i.charCodeAt(n)}else if(79===g||111===g){if(_=8,++n===e)return null;g=i.charCodeAt(n)}else if(66===g||98===g){if(_=2,++n===e)return null;g=i.charCodeAt(n)}}}else if(16===_&&48===g){if(++n===e)return o.__zero();if(g=i.charCodeAt(n),88===g||120===g){if(++n===e)return null;g=i.charCodeAt(n)}}if(0!=t&&10!==_)return null;for(;48===g;){if(++n===e)return o.__zero();g=i.charCodeAt(n)}const s=e-n;let l=o.__kMaxBitsPerChar[_],r=o.__kBitsPerCharTableMultiplier-1;if(s>1073741824/l)return null;const a=l*s+r>>>o.__kBitsPerCharTableShift,u=new o(0|(a+29)/30,!1),h=10>_?_:10,b=10<_?_-10:0;if(0==(_&_-1)){l>>=o.__kBitsPerCharTableShift;const _=[],t=[];let s=!1;do{let o=0,r=0;for(;;){let _;if(g-48>>>0>>0>>0>>0>>o.__kBitsPerCharTableShift)/30;u.__inplaceMultiplyAdd(D,a,c)}while(!t)}if(n!==e){if(!o.__isWhitespace(g))return null;for(n++;n>>l-o)}if(0!==g){if(n>=_.length)throw new Error(\"implementation bug\");_.__setDigit(n++,g)}for(;n<_.length;n++)_.__setDigit(n,0)}static __toStringBasePowerOfTwo(_,i){const t=_.length;let e=i-1;e=(85&e>>>1)+(85&e),e=(51&e>>>2)+(51&e),e=(15&e>>>4)+(15&e);const n=e,g=i-1,s=_.__digit(t-1),l=o.__clz30(s);let r=0|(30*t-l+n-1)/n;if(_.sign&&r++,268435456>>s,h=30-s;h>=n;)a[u--]=o.__kConversionChars[d&g],d>>>=n,h-=n}const m=(d|s<>>n-h;0!==d;)a[u--]=o.__kConversionChars[d&g],d>>>=n;if(_.sign&&(a[u--]=\"-\"),-1!=u)throw new Error(\"implementation bug\");return a.join(\"\")}static __toStringGeneric(_,i,t){const e=_.length;if(0===e)return\"\";if(1===e){let e=_.__unsignedDigit(0).toString(i);return!1===t&&_.sign&&(e=\"-\"+e),e}const n=30*e-o.__clz30(_.__digit(e-1)),g=o.__kMaxBitsPerChar[i],s=g-1;let l=n*o.__kBitsPerCharTableMultiplier;l+=s-1,l=0|l/s;const r=l+1>>1,a=o.exponentiate(o.__oneDigit(i,!1),o.__oneDigit(r,!1));let u,d;const h=a.__unsignedDigit(0);if(1===a.length&&32767>=h){u=new o(_.length,!1),u.__initializeDigits();let t=0;for(let e=2*_.length-1;0<=e;e--){const i=t<<15|_.__halfDigit(e);u.__setHalfDigit(e,0|i/h),t=0|i%h}d=t.toString(i)}else{const t=o.__absoluteDivLarge(_,a,!0,!0);u=t.quotient;const e=t.remainder.__trim();d=o.__toStringGeneric(e,i,!0)}u.__trim();let m=o.__toStringGeneric(u,i,!0);for(;d.lengthe?o.__absoluteLess(t):0}static __compareToNumber(i,_){if(o.__isOneDigitInt(_)){const e=i.sign,n=0>_;if(e!==n)return o.__unequalSign(e);if(0===i.length){if(n)throw new Error(\"implementation bug\");return 0===_?0:-1}if(1g?o.__absoluteGreater(e):s_)return o.__unequalSign(t);if(0===_)throw new Error(\"implementation bug: should be handled elsewhere\");if(0===i.length)return-1;o.__kBitConversionDouble[0]=_;const e=2047&o.__kBitConversionInts[1]>>>20;if(2047==e)throw new Error(\"implementation bug: handled elsewhere\");const n=e-1023;if(0>n)return o.__absoluteGreater(t);const g=i.length;let s=i.__digit(g-1);const l=o.__clz30(s),r=30*g-l,a=n+1;if(ra)return o.__absoluteGreater(t);let u=1048576|1048575&o.__kBitConversionInts[1],d=o.__kBitConversionInts[0];const h=20,m=29-l;if(m!==(0|(r-1)%30))throw new Error(\"implementation bug\");let b,D=0;if(20>m){const i=h-m;D=i+32,b=u>>>i,u=u<<32-i|d>>>i,d<<=32-i}else if(20===m)D=32,b=u,u=d,d=0;else{const i=m-h;D=32-i,b=u<>>32-i,u=d<>>=0,b>>>=0,s>b)return o.__absoluteGreater(t);if(s>>2,u=u<<30|d>>>2,d<<=30):b=0;const _=i.__unsignedDigit(e);if(_>b)return o.__absoluteGreater(t);if(__&&i.__unsignedDigit(0)===t(_):0===o.__compareToDouble(i,_)}static __comparisonResultToBool(i,_){return 0===_?0>i:1===_?0>=i:2===_?0_;case 3:return i>=_;}if(o.__isBigInt(i)&&\"string\"==typeof _)return _=o.__fromString(_),null!==_&&o.__comparisonResultToBool(o.__compareToBigInt(i,_),t);if(\"string\"==typeof i&&o.__isBigInt(_))return i=o.__fromString(i),null!==i&&o.__comparisonResultToBool(o.__compareToBigInt(i,_),t);if(i=o.__toNumeric(i),_=o.__toNumeric(_),o.__isBigInt(i)){if(o.__isBigInt(_))return o.__comparisonResultToBool(o.__compareToBigInt(i,_),t);if(\"number\"!=typeof _)throw new Error(\"implementation bug\");return o.__comparisonResultToBool(o.__compareToNumber(i,_),t)}if(\"number\"!=typeof i)throw new Error(\"implementation bug\");if(o.__isBigInt(_))return o.__comparisonResultToBool(o.__compareToNumber(_,i),2^t);if(\"number\"!=typeof _)throw new Error(\"implementation bug\");return 0===t?i<_:1===t?i<=_:2===t?i>_:3===t?i>=_:void 0}__clzmsd(){return o.__clz30(this.__digit(this.length-1))}static __absoluteAdd(_,t,e){if(_.length>>30,g.__setDigit(l,1073741823&i)}for(;l<_.length;l++){const i=_.__digit(l)+s;s=i>>>30,g.__setDigit(l,1073741823&i)}return l>>30,n.__setDigit(s,1073741823&i)}for(;s<_.length;s++){const i=_.__digit(s)-g;g=1&i>>>30,n.__setDigit(s,1073741823&i)}return n.__trim()}static __absoluteAddOne(_,i,t=null){const e=_.length;null===t?t=new o(e,i):t.sign=i;let n=1;for(let g=0;g>>30,t.__setDigit(g,1073741823&i)}return 0!=n&&t.__setDigitGrow(e,1),t}static __absoluteSubOne(_,t){const e=_.length;t=t||e;const n=new o(t,!1);let g=1;for(let o=0;o>>30,n.__setDigit(o,1073741823&i)}if(0!=g)throw new Error(\"implementation bug\");for(let g=e;gn?0:_.__unsignedDigit(n)>t.__unsignedDigit(n)?1:-1}static __multiplyAccumulate(_,t,e,n){if(0===t)return;const g=32767&t,s=t>>>15;let l=0,r=0;for(let a,u=0;u<_.length;u++,n++){a=e.__digit(n);const i=_.__digit(u),t=32767&i,d=i>>>15,h=o.__imul(t,g),m=o.__imul(t,s),b=o.__imul(d,g),D=o.__imul(d,s);a+=r+h+l,l=a>>>30,a&=1073741823,a+=((32767&m)<<15)+((32767&b)<<15),l+=a>>>30,r=D+(m>>>15)+(b>>>15),e.__setDigit(n,1073741823&a)}for(;0!=l||0!==r;n++){let i=e.__digit(n);i+=l+r,r=0,l=i>>>30,e.__setDigit(n,1073741823&i)}}static __internalMultiplyAdd(_,t,e,g,s){let l=e,a=0;for(let n=0;n>>15,t),u=e+((32767&g)<<15)+a+l;l=u>>>30,a=g>>>15,s.__setDigit(n,1073741823&u)}if(s.length>g)for(s.__setDigit(g++,l+a);gthis.length&&(t=this.length);const e=32767&i,n=i>>>15;let g=0,s=_;for(let l=0;l>>15,r=o.__imul(_,e),a=o.__imul(_,n),u=o.__imul(t,e),d=o.__imul(t,n);let h=s+r+g;g=h>>>30,h&=1073741823,h+=((32767&a)<<15)+((32767&u)<<15),g+=h>>>30,s=d+(a>>>15)+(u>>>15),this.__setDigit(l,1073741823&h)}if(0!=g||0!==s)throw new Error(\"implementation bug\")}static __absoluteDivSmall(_,t,e=null){null===e&&(e=new o(_.length,!1));let n=0;for(let g,o=2*_.length-1;0<=o;o-=2){g=(n<<15|_.__halfDigit(o))>>>0;const i=0|g/t;n=0|g%t,g=(n<<15|_.__halfDigit(o-1))>>>0;const s=0|g/t;n=0|g%t,e.__setDigit(o>>>1,i<<15|s)}return e}static __absoluteModSmall(_,t){let e=0;for(let n=2*_.length-1;0<=n;n--){const i=(e<<15|_.__halfDigit(n))>>>0;e=0|i%t}return e}static __absoluteDivLarge(i,_,t,e){const g=_.__halfDigitLength(),n=_.length,s=i.__halfDigitLength()-g;let l=null;t&&(l=new o(s+2>>>1,!1),l.__initializeDigits());const r=new o(g+2>>>1,!1);r.__initializeDigits();const a=o.__clz15(_.__halfDigit(g-1));0>>0;a=0|t/u;let e=0|t%u;const n=_.__halfDigit(g-2),s=d.__halfDigit(m+g-2);for(;o.__imul(a,n)>>>0>(e<<16|s)>>>0&&(a--,e+=u,!(32767>>1,h|a))}if(e)return d.__inplaceRightShift(a),t?{quotient:l,remainder:d}:d;if(t)return l;throw new Error(\"unreachable\")}static __clz15(i){return o.__clz30(i)-15}__inplaceAdd(_,t,e){let n=0;for(let g=0;g>>15,this.__setHalfDigit(t+g,32767&i)}return n}__inplaceSub(_,t,e){let n=0;if(1&t){t>>=1;let g=this.__digit(t),o=32767&g,s=0;for(;s>>1;s++){const i=_.__digit(s),e=(g>>>15)-(32767&i)-n;n=1&e>>>15,this.__setDigit(t+s,(32767&e)<<15|32767&o),g=this.__digit(t+s+1),o=(32767&g)-(i>>>15)-n,n=1&o>>>15}const i=_.__digit(s),l=(g>>>15)-(32767&i)-n;n=1&l>>>15,this.__setDigit(t+s,(32767&l)<<15|32767&o);if(t+s+1>=this.length)throw new RangeError(\"out of bounds\");0==(1&e)&&(g=this.__digit(t+s+1),o=(32767&g)-(i>>>15)-n,n=1&o>>>15,this.__setDigit(t+_.length,1073709056&g|32767&o))}else{t>>=1;let g=0;for(;g<_.length-1;g++){const i=this.__digit(t+g),e=_.__digit(g),o=(32767&i)-(32767&e)-n;n=1&o>>>15;const s=(i>>>15)-(e>>>15)-n;n=1&s>>>15,this.__setDigit(t+g,(32767&s)<<15|32767&o)}const i=this.__digit(t+g),o=_.__digit(g),s=(32767&i)-(32767&o)-n;n=1&s>>>15;let l=0;0==(1&e)&&(l=(i>>>15)-(o>>>15)-n,n=1&l>>>15),this.__setDigit(t+g,(32767&l)<<15|32767&s)}return n}__inplaceRightShift(_){if(0===_)return;let t=this.__digit(0)>>>_;const e=this.length-1;for(let n=0;n>>_}this.__setDigit(e,t)}static __specialLeftShift(_,t,e){const g=_.length,n=new o(g+e,!1);if(0===t){for(let t=0;t>>30-t}return 0t)throw new RangeError(\"BigInt too big\");const e=0|t/30,n=t%30,g=_.length,s=0!==n&&0!=_.__digit(g-1)>>>30-n,l=g+e+(s?1:0),r=new o(l,_.sign);if(0===n){let t=0;for(;t>>30-n}if(s)r.__setDigit(g+e,t);else if(0!==t)throw new Error(\"implementation bug\")}return r.__trim()}static __rightShiftByAbsolute(_,i){const t=_.length,e=_.sign,n=o.__toShiftAmount(i);if(0>n)return o.__rightShiftByMaximum(e);const g=0|n/30,s=n%30;let l=t-g;if(0>=l)return o.__rightShiftByMaximum(e);let r=!1;if(e){if(0!=(_.__digit(g)&(1<>>s;const n=t-g-1;for(let t=0;t>>s}a.__setDigit(n,e)}return r&&(a=o.__absoluteAddOne(a,!0,a)),a.__trim()}static __rightShiftByMaximum(i){return i?o.__oneDigit(1,!0):o.__zero()}static __toShiftAmount(i){if(1o.__kMaxLengthBits?-1:_}static __toPrimitive(i,_=\"default\"){if(\"object\"!=typeof i)return i;if(i.constructor===o)return i;if(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol.toPrimitive){const t=i[Symbol.toPrimitive];if(t){const i=t(_);if(\"object\"!=typeof i)return i;throw new TypeError(\"Cannot convert object to primitive value\")}}const t=i.valueOf;if(t){const _=t.call(i);if(\"object\"!=typeof _)return _}const e=i.toString;if(e){const _=e.call(i);if(\"object\"!=typeof _)return _}throw new TypeError(\"Cannot convert object to primitive value\")}static __toNumeric(i){return o.__isBigInt(i)?i:+i}static __isBigInt(i){return\"object\"==typeof i&&null!==i&&i.constructor===o}static __truncateToNBits(i,_){const t=0|(i+29)/30,e=new o(t,_.sign),n=t-1;for(let t=0;t>>_}return e.__setDigit(n,g),e.__trim()}static __truncateAndSubFromPowerOfTwo(_,t,e){var n=Math.min;const g=0|(_+29)/30,s=new o(g,e);let l=0;const r=g-1;let a=0;for(const i=n(r,t.length);l>>30,s.__setDigit(l,1073741823&i)}for(;l>>i;const _=1<<32-i;h=_-u-a,h&=_-1}return s.__setDigit(r,h),s.__trim()}__digit(_){return this[_]}__unsignedDigit(_){return this[_]>>>0}__setDigit(_,i){this[_]=0|i}__setDigitGrow(_,i){this[_]=0|i}__halfDigitLength(){const i=this.length;return 32767>=this.__unsignedDigit(i-1)?2*i-1:2*i}__halfDigit(_){return 32767&this[_>>>1]>>>15*(1&_)}__setHalfDigit(_,i){const t=_>>>1,e=this.__digit(t),n=1&_?32767&e|i<<15:1073709056&e|32767&i;this.__setDigit(t,n)}static __digitPow(i,_){let t=1;for(;0<_;)1&_&&(t*=i),_>>>=1,i*=i;return t}static __isOneDigitInt(i){return(1073741823&i)===i}}return o.__kMaxLength=33554432,o.__kMaxLengthBits=o.__kMaxLength<<5,o.__kMaxBitsPerChar=[0,0,32,51,64,75,83,90,96,102,107,111,115,119,122,126,128,131,134,136,139,141,143,145,147,149,151,153,154,156,158,159,160,162,163,165,166],o.__kBitsPerCharTableShift=5,o.__kBitsPerCharTableMultiplier=1<>>0)/_)},o.__imul=i||function(i,_){return 0|i*_},o});\n//# sourceMappingURL=jsbi-umd.js.map\n","'use strict';\n\nvar stub = require('./stub');\nvar parse = require('./parse');\nvar tracking = require('./tracking');\nvar ls = 'localStorage' in global && global.localStorage ? global.localStorage : stub;\n\nfunction accessor (key, value) {\n if (arguments.length === 1) {\n return get(key);\n }\n return set(key, value);\n}\n\nfunction get (key) {\n const raw = ls.getItem(key);\n const parsed = parse(raw);\n return parsed;\n}\n\nfunction set (key, value) {\n try {\n ls.setItem(key, JSON.stringify(value));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction remove (key) {\n return ls.removeItem(key);\n}\n\nfunction clear () {\n return ls.clear();\n}\n\nfunction backend (store) {\n store && (ls = store);\n\n return ls;\n}\n\naccessor.set = set;\naccessor.get = get;\naccessor.remove = remove;\naccessor.clear = clear;\naccessor.backend = backend;\naccessor.on = tracking.on;\naccessor.off = tracking.off;\n\nmodule.exports = accessor;\n","'use strict';\n\nfunction parse (rawValue) {\n const parsed = parseValue(rawValue);\n\n if (parsed === undefined) {\n return null;\n }\n\n return parsed;\n}\n\nfunction parseValue (rawValue) {\n try {\n return JSON.parse(rawValue);\n } catch (err) {\n return rawValue;\n }\n}\n\nmodule.exports = parse;\n","'use strict';\n\nvar ms = {};\n\nfunction getItem (key) {\n return key in ms ? ms[key] : null;\n}\n\nfunction setItem (key, value) {\n ms[key] = value;\n return true;\n}\n\nfunction removeItem (key) {\n var found = key in ms;\n if (found) {\n return delete ms[key];\n }\n return false;\n}\n\nfunction clear () {\n ms = {};\n return true;\n}\n\nmodule.exports = {\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear\n};\n","'use strict';\n\nvar parse = require('./parse');\nvar listeners = {};\nvar listening = false;\n\nfunction listen () {\n if (global.addEventListener) {\n global.addEventListener('storage', change, false);\n } else if (global.attachEvent) {\n global.attachEvent('onstorage', change);\n } else {\n global.onstorage = change;\n }\n}\n\nfunction change (e) {\n if (!e) {\n e = global.event;\n }\n var all = listeners[e.key];\n if (all) {\n all.forEach(fire);\n }\n\n function fire (listener) {\n listener(parse(e.newValue), parse(e.oldValue), e.url || e.uri);\n }\n}\n\nfunction on (key, fn) {\n if (listeners[key]) {\n listeners[key].push(fn);\n } else {\n listeners[key] = [fn];\n }\n if (listening === false) {\n listen();\n }\n}\n\nfunction off (key, fn) {\n var ns = listeners[key];\n if (ns.length > 1) {\n ns.splice(ns.indexOf(fn), 1);\n } else {\n listeners[key] = [];\n }\n}\n\nmodule.exports = {\n on: on,\n off: off\n};\n","/*!\n localForage -- Offline Storage, Improved\n Version 1.10.0\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.localforage = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw (f.code=\"MODULE_NOT_FOUND\", f)}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n scriptEl.onreadystatechange = function () {\n nextTick();\n\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function () {\n setTimeout(nextTick, 0);\n };\n }\n}\n\nvar draining;\nvar queue = [];\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n while (++i < len) {\n oldQueue[i]();\n }\n len = queue.length;\n }\n draining = false;\n}\n\nmodule.exports = immediate;\nfunction immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{}],2:[function(_dereq_,module,exports){\n'use strict';\nvar immediate = _dereq_(1);\n\n/* istanbul ignore next */\nfunction INTERNAL() {}\n\nvar handlers = {};\n\nvar REJECTED = ['REJECTED'];\nvar FULFILLED = ['FULFILLED'];\nvar PENDING = ['PENDING'];\n\nmodule.exports = Promise;\n\nfunction Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n}\n\nPromise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n};\nPromise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED ||\n typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n var promise = new this.constructor(INTERNAL);\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n};\nfunction QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n}\nQueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n};\nQueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n};\nQueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n};\nQueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n};\n\nfunction unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n}\n\nhandlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n return self;\n};\nhandlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n return self;\n};\n\nfunction getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n}\n\nfunction safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n function onError(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n if (result.status === 'error') {\n onError(result.value);\n }\n}\n\nfunction tryCatch(func, value) {\n var out = {};\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n return out;\n}\n\nPromise.resolve = resolve;\nfunction resolve(value) {\n if (value instanceof this) {\n return value;\n }\n return handlers.resolve(new this(INTERNAL), value);\n}\n\nPromise.reject = reject;\nfunction reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n}\n\nPromise.all = all;\nfunction all(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n return promise;\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n function resolveFromAll(outValue) {\n values[i] = outValue;\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n}\n\nPromise.race = race;\nfunction race(iterable) {\n var self = this;\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n return promise;\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n}\n\n},{\"1\":1}],3:[function(_dereq_,module,exports){\n(function (global){\n'use strict';\nif (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n}\n\n}).call(this,typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {})\n},{\"2\":2}],4:[function(_dereq_,module,exports){\n'use strict';\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n}\n\nvar idb = getIDB();\n\nfunction isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb || !idb.open) {\n return false;\n }\n // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1;\n\n // Safari <10.1 does not meet our requirements for IDB support\n // (see: https://github.com/pouchdb/pouchdb/issues/5572).\n // Safari 10.1 shipped with fetch, we can use that to detect it.\n // Note: this creates issues with `window.fetch` polyfills and\n // overrides; see:\n // https://github.com/localForage/localForage/issues/856\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' &&\n // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n}\n\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\n// Abstracts constructing a Blob object, so it also works in older\n// browsers that don't support the native Blob constructor. (i.e.\n// old QtWebKit versions, at least).\nfunction createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n return builder.getBlob(properties.type);\n }\n}\n\n// This is CommonJS because lie is an external dependency, so Rollup\n// can just ignore it.\nif (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n}\nvar Promise$1 = Promise;\n\nfunction executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n}\n\nfunction executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n}\n\nfunction normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n}\n\nfunction getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n}\n\n// Some code originally from async_storage.js in\n// [Gaia](https://github.com/mozilla-b2g/gaia).\n\nvar DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\nvar supportsBlobs = void 0;\nvar dbContexts = {};\nvar toString = Object.prototype.toString;\n\n// Transaction Modes\nvar READ_ONLY = 'readonly';\nvar READ_WRITE = 'readwrite';\n\n// Transform a binary string to an array buffer, because otherwise\n// weird stuff happens when you try to work with the binary string directly.\n// It is known.\n// From http://stackoverflow.com/questions/14967647/ (continues on next line)\n// encode-decode-image-with-base64-breaks-image (2013-04-21)\nfunction _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n return buf;\n}\n\n//\n// Blobs are not supported in all versions of IndexedDB, notably\n// Chrome <37 and Android <5. In those versions, storing a blob will throw.\n//\n// Various other blob bugs exist in Chrome v37-42 (inclusive).\n// Detecting them is expensive and confusing to users, and Chrome 37-42\n// is at very low usage worldwide, so we do a hacky userAgent check instead.\n//\n// content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n// 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n// FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n//\n// Code borrowed from PouchDB. See:\n// https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n//\nfunction _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//);\n // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n}\n\nfunction _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n}\n\nfunction _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Create a deferred object representing the current database operation.\n var deferredOperation = {};\n\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n });\n\n // Enqueue the deferred operation.\n dbContext.deferredOperations.push(deferredOperation);\n\n // Chain its promise to the database readiness.\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n}\n\nfunction _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Resolve its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n}\n\nfunction _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name];\n\n // Dequeue a deferred operation.\n var deferredOperation = dbContext.deferredOperations.pop();\n\n // Reject its promise (which is part of the database readiness\n // chain of promises).\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n}\n\nfunction _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n try {\n db.createObjectStore(dbInfo.storeName);\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n var db = openreq.result;\n db.onversionchange = function (e) {\n // Triggered when the database is modified (e.g. adding an objectStore) or\n // deleted (even when initiated by other sessions in different tabs).\n // Closing the connection here prevents those operations from being blocked.\n // If the database is accessed again later by this instance, the connection\n // will be reopened or the database recreated as needed.\n e.target.close();\n };\n resolve(db);\n _advanceReadiness(dbInfo);\n };\n });\n}\n\nfunction _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n}\n\nfunction _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n}\n\nfunction _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n }\n // Align the versions to prevent errors.\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n}\n\n// encode a blob for indexeddb engines that don't support blobs\nfunction _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n reader.readAsBinaryString(blob);\n });\n}\n\n// decode an encoded blob\nfunction _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n return createBlob([arrayBuff], { type: encodedBlob.type });\n}\n\n// is this one of our fancy encoded blobs?\nfunction _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n}\n\n// Specialize the default `ready()` function by making it dependent\n// on the current database operations. Thus, the driver will be actually\n// ready when it's been initialized (default) *and* there are no pending\n// operations on the database (initiated by some other instances).\nfunction _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n}\n\n// Try to establish a new db connection to replace the\n// current one which is broken (i.e. experiencing\n// InvalidStateError while creating a transaction).\nfunction _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n forage._dbInfo.db = null;\n }\n }\n dbInfo.db = null;\n\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n throw err;\n });\n}\n\n// FF doesn't like Promises (micro-tasks) and IDDB store operations,\n// so we have to do it with callbacks\nfunction createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n }\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n}\n\nfunction createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n}\n\n// Open the IndexedDB database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n // Get the current context of the database;\n var dbContext = dbContexts[dbInfo.name];\n\n // ...or create a new context.\n if (!dbContext) {\n dbContext = createDbContext();\n // Register the new context in the global container.\n dbContexts[dbInfo.name] = dbContext;\n }\n\n // Register itself as a running localForage in the current context.\n dbContext.forages.push(self);\n\n // Replace the default `ready()` function with the specialized one.\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n }\n\n // Create an array of initialization states of the related localForages.\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n }\n\n // Take a snapshot of the related localForages.\n var forages = dbContext.forages.slice(0);\n\n // Initialize the connection process only when\n // all the related localForages aren't pending.\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db;\n // Get the connection or open a new one without upgrade.\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo;\n // Share the final connection amongst related localForages.\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n}\n\nfunction getItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n if (value === undefined) {\n value = null;\n }\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items stored in database.\nfunction iterate(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n var result = iterator(value, cursor.key, iterationNumber++);\n\n // when the iterator callback returns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n\n return promise;\n}\n\nfunction setItem(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n return _encodeBlob(value);\n });\n }\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n\n // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction removeItem(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n var req = store[\"delete\"](key);\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n };\n\n // The request will be also be aborted if we've exceeded our storage\n // space.\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction clear(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction length(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction key(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openKeyCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openKeyCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n reject(req.error);\n };\n\n req.onblocked = function () {\n // Closing all open connections in onversionchange handler should prevent this situation, but if\n // we do get here, it just means the request remains pending - eventually it will succeed or error\n console.warn('dropInstance blocked for database \"' + options.name + '\" until all open connections are closed');\n };\n\n req.onsuccess = function () {\n var db = req.result;\n if (db) {\n db.close();\n }\n resolve(db);\n };\n });\n\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n\n db.close();\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n};\n\nfunction isWebSQLValid() {\n return typeof openDatabase === 'function';\n}\n\n// Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n// it to Base64, so this is how we store it to prevent very strange errors with less\n// verbose ways of binary <-> string data storage.\nvar BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nvar BLOB_TYPE_PREFIX = '~~local_forage_type~';\nvar BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n\nvar SERIALIZED_MARKER = '__lfsc__:';\nvar SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length;\n\n// OMG the serializations!\nvar TYPE_ARRAYBUFFER = 'arbf';\nvar TYPE_BLOB = 'blob';\nvar TYPE_INT8ARRAY = 'si08';\nvar TYPE_UINT8ARRAY = 'ui08';\nvar TYPE_UINT8CLAMPEDARRAY = 'uic8';\nvar TYPE_INT16ARRAY = 'si16';\nvar TYPE_INT32ARRAY = 'si32';\nvar TYPE_UINT16ARRAY = 'ur16';\nvar TYPE_UINT32ARRAY = 'ui32';\nvar TYPE_FLOAT32ARRAY = 'fl32';\nvar TYPE_FLOAT64ARRAY = 'fl64';\nvar TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n\nvar toString$1 = Object.prototype.toString;\n\nfunction stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n\n /*jslint bitwise: true */\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n return buffer;\n}\n\n// Converts a buffer to a string to store, serialized, in the backend\n// storage library.\nfunction bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n}\n\n// Serialize a value, afterwards executing a callback (which usually\n// instructs the `setItem()` callback/promise to be executed). This is how\n// we store binary data with localStorage.\nfunction serialize(value, callback) {\n var valueType = '';\n if (value) {\n valueType = toString$1.call(value);\n }\n\n // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n\n callback(null, e);\n }\n }\n}\n\n// Deserialize data we've inserted into a value column/field. We place\n// special markers into our strings to mark them as encoded; this isn't\n// as nice as a meta field, but it's the only sane thing we can do whilst\n// keeping localStorage support intact.\n//\n// Oftentimes this will just deserialize JSON content, but if we have a\n// special marker (SERIALIZED_MARKER, defined above), we will extract\n// some kind of arraybuffer/binary data/typed array out of the string.\nfunction deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n }\n\n // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n\n var blobType;\n // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n var buffer = stringToBuffer(serializedString);\n\n // Return the right type based on the code/type set during\n // serialization.\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n case TYPE_BLOB:\n return createBlob([buffer], { type: blobType });\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n default:\n throw new Error('Unkown type: ' + type);\n }\n}\n\nvar localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n};\n\n/*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\nfunction createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n}\n\n// Open the WebSQL database (automatically creates one if one didn't\n// previously exist), using any options set in the config.\nfunction _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n }\n\n // Create our key/value table if it doesn't exist.\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n}\n\nfunction tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n}\n\nfunction getItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null;\n\n // Check to see if this is serialized content we need to\n // unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction iterate$1(iterator, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value;\n\n // Check to see if this is serialized content\n // we need to unpack.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1);\n\n // void(0) prevents problems with redefinition\n // of `undefined`.\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction _setItem(key, value, callback, retriesLeft) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n}\n\nfunction removeItem$1(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Deletes every item in the table.\n// TODO: Find out if this resets the AUTO_INCREMENT number.\nfunction clear$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Does a simple `COUNT(key)` to get the number of items stored in\n// localForage.\nfunction length$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Return the key located at key index X; essentially gets the key from a\n// `WHERE id = ?`. This is the most efficient way I can think to implement\n// this rarely-used (in my experience) part of the API, but it can seem\n// inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n// the ID of each key will change every time it's updated. Perhaps a stored\n// procedure for the `setItem()` SQL would solve this problem?\n// TODO: Don't change ID on `setItem()`.\nfunction key$1(n, callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$1(callback) {\n var self = this;\n\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// https://www.w3.org/TR/webdatabase/#databases\n// > There is no way to enumerate or delete the databases available for an origin from this API.\nfunction getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n}\n\nfunction dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n};\n\nfunction isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage &&\n // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n}\n\nfunction _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n return keyPrefix;\n}\n\n// Check if localStorage throws when saving an item\nfunction checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n\n return false;\n } catch (e) {\n return true;\n }\n}\n\n// Check if localStorage is usable and allows to save an item\n// This method checks if localStorage is usable in Safari Private Browsing\n// mode, or in any other case where the available quota for localStorage\n// is 0 and there wasn't any saved items yet.\nfunction _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n}\n\n// Config the localStorage backend, using options set in the config.\nfunction _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n\n return Promise$1.resolve();\n}\n\n// Remove all keys from the datastore, effectively destroying all data in\n// the app's key/value store!\nfunction clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Retrieve an item from the store. Unlike the original async_storage\n// library in Gaia, we don't modify return values at all. If a key's value\n// is `undefined`, we pass that value to the callback function.\nfunction getItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Iterate over all items in the store.\nfunction iterate$2(iterator, callback) {\n var self = this;\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length;\n\n // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n var value = localStorage.getItem(key);\n\n // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Same as localStorage's key() method, except takes a callback.\nfunction key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n }\n\n // Remove the prefix from the key, if a key is found.\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Supply the number of keys in the datastore to the callback function.\nfunction length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Remove an item from the store, nice and simple.\nfunction removeItem$2(key, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\n// Set a key's value and run an optional callback once the value is set.\n// Unlike Gaia's implementation, the callback function is passed the value,\n// in case you want to operate on that value only after you're sure it\n// saved, or something like that.\nfunction setItem$2(key, value, callback) {\n var self = this;\n\n key = normalizeKey(key);\n\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n }\n\n // Save the original value to pass to the callback.\n var originalValue = value;\n\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n reject(e);\n }\n }\n });\n });\n });\n\n executeCallback(promise, callback);\n return promise;\n}\n\nfunction dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n\n options = typeof options !== 'function' && options || {};\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n}\n\nvar localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n};\n\nvar sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n};\n\nvar includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n i++;\n }\n\n return false;\n};\n\nvar isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\n// Drivers are stored here when `defineDriver()` is called.\n// They are shared across all instances of localForage.\nvar DefinedDrivers = {};\n\nvar DriverSupport = {};\n\nvar DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n};\n\nvar DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n\nvar OptionalDriverMethods = ['dropInstance'];\n\nvar LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n\nvar DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n};\n\nfunction callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n}\n\nfunction extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n}\n\nvar LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n }\n\n // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n }\n\n // after all config options are set and\n // the driver option is used, try setting it\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n };\n\n // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver');\n\n // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i];\n\n // when the property is there,\n // it should be a method even when optional\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support;\n // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n setDriverToConfig();\n\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n }\n\n // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n self._wrapLibraryMethodsWithReady();\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n}();\n\n// The actual localForage object that we expose as a module or via a\n// global. It's extended by pulling in one of our other libraries.\n\n\nvar localforage_js = new LocalForage();\n\nmodule.exports = localforage_js;\n\n},{\"3\":3}]},{},[4])(4)\n});\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 `_.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 `_.reduce` 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 * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\nmodule.exports = arrayReduce;\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","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\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 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 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 arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\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 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 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 baseEach = require('./_baseEach'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n}\n\nmodule.exports = baseMap;\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","var arrayMap = require('./_arrayMap'),\n baseGet = require('./_baseGet'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n baseSortBy = require('./_baseSortBy'),\n baseUnary = require('./_baseUnary'),\n compareMultiple = require('./_compareMultiple'),\n identity = require('./identity'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\nfunction baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(baseIteratee));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n}\n\nmodule.exports = baseOrderBy;\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 `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\nfunction basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n}\n\nmodule.exports = basePropertyOf;\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 * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\nfunction baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n}\n\nmodule.exports = baseRange;\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 `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\nfunction baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n}\n\nmodule.exports = baseSortBy;\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 isSymbol = require('./isSymbol');\n\n/**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\nfunction compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n}\n\nmodule.exports = compareAscending;\n","var compareAscending = require('./_compareAscending');\n\n/**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\nfunction compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n}\n\nmodule.exports = compareMultiple;\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 arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var baseRange = require('./_baseRange'),\n isIterateeCall = require('./_isIterateeCall'),\n toFinite = require('./toFinite');\n\n/**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\nfunction createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n}\n\nmodule.exports = createRange;\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 basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\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 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 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 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","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\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","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\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","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","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\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 isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\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. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\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 * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\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 (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\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 baseFlatten = require('./_baseFlatten'),\n map = require('./map');\n\n/**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\nfunction flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n}\n\nmodule.exports = flatMap;\n","/**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\nfunction fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n}\n\nmodule.exports = fromPairs;\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 baseKeys = require('./_baseKeys'),\n getTag = require('./_getTag'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isArrayLike = require('./isArrayLike'),\n isBuffer = require('./isBuffer'),\n isPrototype = require('./_isPrototype'),\n isTypedArray = require('./isTypedArray');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n setTag = '[object Set]';\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 `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\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 empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\nfunction isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n}\n\nmodule.exports = isEmpty;\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","/**\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 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 createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\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 arrayMap = require('./_arrayMap'),\n baseIteratee = require('./_baseIteratee'),\n baseMap = require('./_baseMap'),\n isArray = require('./isArray');\n\n/**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\nfunction map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, baseIteratee(iteratee, 3));\n}\n\nmodule.exports = map;\n","var 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 root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","var baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\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","var createRange = require('./_createRange');\n\n/**\n * Creates an array of numbers (positive and/or negative) progressing from\n * `start` up to, but not including, `end`. A step of `-1` is used if a negative\n * `start` is specified without an `end` or `step`. If `end` is not specified,\n * it's set to `start` with `start` then set to `0`.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @param {number} [step=1] The value to increment or decrement by.\n * @returns {Array} Returns the range of numbers.\n * @see _.inRange, _.rangeRight\n * @example\n *\n * _.range(4);\n * // => [0, 1, 2, 3]\n *\n * _.range(-4);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 5);\n * // => [1, 2, 3, 4]\n *\n * _.range(0, 20, 5);\n * // => [0, 5, 10, 15]\n *\n * _.range(0, -4, -1);\n * // => [0, -1, -2, -3]\n *\n * _.range(1, 4, 0);\n * // => [1, 1, 1]\n *\n * _.range(0);\n * // => []\n */\nvar range = createRange();\n\nmodule.exports = range;\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 debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `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 throttled 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 to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\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","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","import e,{useContext as t,Fragment as n,useState as r,useCallback as o,useEffect as a,useMemo as s,memo as l,createContext as m}from\"react\";const c=[\"light\",\"dark\"],i=\"(prefers-color-scheme: dark)\",d=\"undefined\"==typeof window,u=/*#__PURE__*/m(void 0),h={setTheme:e=>{},themes:[]},y=()=>{var e;return null!==(e=t(u))&&void 0!==e?e:h},$=r=>t(u)?/*#__PURE__*/e.createElement(n,null,r.children):/*#__PURE__*/e.createElement(f,r),v=[\"light\",\"dark\"],f=({forcedTheme:t,disableTransitionOnChange:n=!1,enableSystem:l=!0,enableColorScheme:m=!0,storageKey:d=\"theme\",themes:h=v,defaultTheme:y=(l?\"system\":\"light\"),attribute:$=\"data-theme\",value:f,children:w,nonce:T})=>{const[E,k]=r(()=>S(d,y)),[C,L]=r(()=>S(d)),x=f?Object.values(f):h,I=o(e=>{let t=e;if(!t)return;\"system\"===e&&l&&(t=p());const r=f?f[t]:t,o=n?b():null,a=document.documentElement;if(\"class\"===$?(a.classList.remove(...x),r&&a.classList.add(r)):r?a.setAttribute($,r):a.removeAttribute($),m){const e=c.includes(y)?y:null,n=c.includes(t)?t:e;a.style.colorScheme=n}null==o||o()},[]),O=o(e=>{k(e);try{localStorage.setItem(d,e)}catch(e){}},[t]),M=o(e=>{const n=p(e);L(n),\"system\"===E&&l&&!t&&I(\"system\")},[E,t]);a(()=>{const e=window.matchMedia(i);return e.addListener(M),M(e),()=>e.removeListener(M)},[M]),a(()=>{const e=e=>{e.key===d&&O(e.newValue||y)};return window.addEventListener(\"storage\",e),()=>window.removeEventListener(\"storage\",e)},[O]),a(()=>{I(null!=t?t:E)},[t,E]);const A=s(()=>({theme:E,setTheme:O,forcedTheme:t,resolvedTheme:\"system\"===E?C:E,themes:l?[...h,\"system\"]:h,systemTheme:l?C:void 0}),[E,O,t,C,l,h]);/*#__PURE__*/return e.createElement(u.Provider,{value:A},/*#__PURE__*/e.createElement(g,{forcedTheme:t,disableTransitionOnChange:n,enableSystem:l,enableColorScheme:m,storageKey:d,themes:h,defaultTheme:y,attribute:$,value:f,children:w,attrs:x,nonce:T}),w)},g=/*#__PURE__*/l(({forcedTheme:t,storageKey:n,attribute:r,enableSystem:o,enableColorScheme:a,defaultTheme:s,value:l,attrs:m,nonce:d})=>{const u=\"system\"===s,h=\"class\"===r?`var d=document.documentElement,c=d.classList;c.remove(${m.map(e=>`'${e}'`).join(\",\")});`:`var d=document.documentElement,n='${r}',s='setAttribute';`,y=a?c.includes(s)&&s?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${s}'`:\"if(e==='light'||e==='dark')d.style.colorScheme=e\":\"\",$=(e,t=!1,n=!0)=>{const o=l?l[e]:e,s=t?e+\"|| ''\":`'${o}'`;let m=\"\";return a&&n&&!t&&c.includes(e)&&(m+=`d.style.colorScheme = '${e}';`),\"class\"===r?m+=t||o?`c.add(${s})`:\"null\":o&&(m+=`d[s](n,${s})`),m},v=t?`!function(){${h}${$(t)}}()`:o?`!function(){try{${h}var e=localStorage.getItem('${n}');if('system'===e||(!e&&${u})){var t='${i}',m=window.matchMedia(t);if(m.media!==t||m.matches){${$(\"dark\")}}else{${$(\"light\")}}}else if(e){${l?`var x=${JSON.stringify(l)};`:\"\"}${$(l?\"x[e]\":\"e\",!0)}}${u?\"\":\"else{\"+$(s,!1,!1)+\"}\"}${y}}catch(e){}}()`:`!function(){try{${h}var e=localStorage.getItem('${n}');if(e){${l?`var x=${JSON.stringify(l)};`:\"\"}${$(l?\"x[e]\":\"e\",!0)}}else{${$(s,!1,!1)};}${y}}catch(t){}}();`;/*#__PURE__*/return e.createElement(\"script\",{nonce:d,dangerouslySetInnerHTML:{__html:v}})},()=>!0),S=(e,t)=>{if(d)return;let n;try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t},b=()=>{const e=document.createElement(\"style\");return e.appendChild(document.createTextNode(\"*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}\")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},p=e=>(e||(e=window.matchMedia(i)),e.matches?\"dark\":\"light\");export{$ as ThemeProvider,y as useTheme};\n","\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_app\",\n function () {\n return require(\"private-next-pages/_app.tsx\");\n }\n ]);\n if(module.hot) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_app\"])\n });\n }\n ","import _define_property from \"@swc/helpers/src/_define_property.mjs\";\nimport JSBI from \"jsbi\";\nexport var ChainId;\n(function(ChainId) {\n ChainId[ChainId[\"BSC\"] = 56] = \"BSC\";\n ChainId[ChainId[\"BSC_TESTNET\"] = 97] = \"BSC_TESTNET\";\n})(ChainId || (ChainId = {}));\nexport var TradeType;\n(function(TradeType) {\n TradeType[TradeType[\"EXACT_INPUT\"] = 0] = \"EXACT_INPUT\";\n TradeType[TradeType[\"EXACT_OUTPUT\"] = 1] = \"EXACT_OUTPUT\";\n})(TradeType || (TradeType = {}));\nexport var Rounding;\n(function(Rounding) {\n Rounding[Rounding[\"ROUND_DOWN\"] = 0] = \"ROUND_DOWN\";\n Rounding[Rounding[\"ROUND_HALF_UP\"] = 1] = \"ROUND_HALF_UP\";\n Rounding[Rounding[\"ROUND_UP\"] = 2] = \"ROUND_UP\";\n})(Rounding || (Rounding = {}));\nexport var FACTORY_ADDRESS = \"0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73\";\nvar _obj;\nexport var FACTORY_ADDRESS_MAP = (_obj = {}, _define_property(_obj, ChainId.BSC, FACTORY_ADDRESS), _define_property(_obj, ChainId.BSC_TESTNET, \"0x6725F303b657a9451d8BA641348b6761A6CC7a17\"), _obj);\nexport var INIT_CODE_HASH = \"0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5\";\nvar _obj1;\nexport var INIT_CODE_HASH_MAP = (_obj1 = {}, _define_property(_obj1, ChainId.BSC, INIT_CODE_HASH), _define_property(_obj1, ChainId.BSC_TESTNET, \"0xd0d4c4cd0848c93cb4fd1f498d7013ee6bfb25783ea21593d5834f5d250ece66\"), _obj1);\nexport var MINIMUM_LIQUIDITY = JSBI.BigInt(1000);\n// exports for internal consumption\nexport var ZERO = JSBI.BigInt(0);\nexport var ONE = JSBI.BigInt(1);\nexport var TWO = JSBI.BigInt(2);\nexport var THREE = JSBI.BigInt(3);\nexport var FIVE = JSBI.BigInt(5);\nexport var TEN = JSBI.BigInt(10);\nexport var _100 = JSBI.BigInt(100);\nexport var FEES_NUMERATOR = JSBI.BigInt(9975);\nexport var FEES_DENOMINATOR = JSBI.BigInt(10000);\nexport var SolidityType;\n(function(SolidityType) {\n SolidityType[\"uint8\"] = \"uint8\";\n SolidityType[\"uint256\"] = \"uint256\";\n})(SolidityType || (SolidityType = {}));\nvar _obj2;\nexport var SOLIDITY_TYPE_MAXIMA = (_obj2 = {}, _define_property(_obj2, SolidityType.uint8, JSBI.BigInt(\"0xff\")), _define_property(_obj2, SolidityType.uint256, JSBI.BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\")), _obj2);\n","// see https://stackoverflow.com/a/41102306\nimport _assert_this_initialized from \"@swc/helpers/src/_assert_this_initialized.mjs\";\nimport _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _inherits from \"@swc/helpers/src/_inherits.mjs\";\nimport _instanceof from \"@swc/helpers/src/_instanceof.mjs\";\nimport _wrap_native_super from \"@swc/helpers/src/_wrap_native_super.mjs\";\nimport _create_super from \"@swc/helpers/src/_create_super.mjs\";\nvar CAN_SET_PROTOTYPE = \"setPrototypeOf\" in Object;\n/**\n * Indicates that the pair has insufficient reserves for a desired output amount. I.e. the amount of output cannot be\n * obtained by sending any amount of input.\n */ export var InsufficientReservesError = /*#__PURE__*/ function _target(Error1) {\n \"use strict\";\n _inherits(InsufficientReservesError, Error1);\n var _super = _create_super(InsufficientReservesError);\n function InsufficientReservesError() {\n _class_call_check(this, InsufficientReservesError);\n var _this;\n _this = _super.call(this);\n _this.isInsufficientReservesError = true;\n _this.name = _this.constructor.name;\n if (CAN_SET_PROTOTYPE) Object.setPrototypeOf(_assert_this_initialized(_this), (_instanceof(this, InsufficientReservesError) ? this.constructor : void 0).prototype);\n return _this;\n }\n return InsufficientReservesError;\n}(_wrap_native_super(Error));\n/**\n * Indicates that the input amount is too small to produce any amount of output. I.e. the amount of input sent is less\n * than the price of a single unit of output after fees.\n */ export var InsufficientInputAmountError = /*#__PURE__*/ function _target(Error1) {\n \"use strict\";\n _inherits(InsufficientInputAmountError, Error1);\n var _super = _create_super(InsufficientInputAmountError);\n function InsufficientInputAmountError() {\n _class_call_check(this, InsufficientInputAmountError);\n var _this;\n _this = _super.call(this);\n _this.isInsufficientInputAmountError = true;\n _this.name = _this.constructor.name;\n if (CAN_SET_PROTOTYPE) Object.setPrototypeOf(_assert_this_initialized(_this), (_instanceof(this, InsufficientInputAmountError) ? this.constructor : void 0).prototype);\n return _this;\n }\n return InsufficientInputAmountError;\n}(_wrap_native_super(Error));\n","import _instanceof from \"@swc/helpers/src/_instanceof.mjs\";\nimport invariant from \"tiny-invariant\";\nimport warning from \"tiny-warning\";\nimport JSBI from \"jsbi\";\nimport { getAddress } from \"@ethersproject/address\";\nimport { ZERO, ONE, TWO, THREE, SolidityType, SOLIDITY_TYPE_MAXIMA } from \"./constants\";\nexport function validateSolidityTypeInstance(value, solidityType) {\n invariant(JSBI.greaterThanOrEqual(value, ZERO), \"\".concat(value, \" is not a \").concat(solidityType, \".\"));\n invariant(JSBI.lessThanOrEqual(value, SOLIDITY_TYPE_MAXIMA[solidityType]), \"\".concat(value, \" is not a \").concat(solidityType, \".\"));\n}\n// warns if addresses are not checksummed\nexport function validateAndParseAddress(address) {\n try {\n var checksummedAddress = getAddress(address);\n warning(address === checksummedAddress, \"\".concat(address, \" is not checksummed.\"));\n return checksummedAddress;\n } catch (error) {\n invariant(false, \"\".concat(address, \" is not a valid address.\"));\n }\n}\nexport function parseBigintIsh(bigintIsh) {\n return _instanceof(bigintIsh, JSBI) ? bigintIsh : JSBI.BigInt(bigintIsh);\n}\n// mock the on-chain sqrt function\nexport function sqrt(y) {\n validateSolidityTypeInstance(y, SolidityType.uint256);\n var z = ZERO;\n var x;\n if (JSBI.greaterThan(y, THREE)) {\n z = y;\n x = JSBI.add(JSBI.divide(y, TWO), ONE);\n while(JSBI.lessThan(x, z)){\n z = x;\n x = JSBI.divide(JSBI.add(JSBI.divide(y, x), x), TWO);\n }\n } else if (JSBI.notEqual(y, ZERO)) {\n z = ONE;\n }\n return z;\n}\n// given an array of items sorted by `comparator`, insert an item into its sort index and constrain the size to\n// `maxSize` by removing the last item\nexport function sortedInsert(items, add, maxSize, comparator) {\n invariant(maxSize > 0, \"MAX_SIZE_ZERO\");\n // this is an invariant because the interface cannot return multiple removed items if items.length exceeds maxSize\n invariant(items.length <= maxSize, \"ITEMS_SIZE\");\n // short circuit first item add\n if (items.length === 0) {\n items.push(add);\n return null;\n } else {\n var isFull = items.length === maxSize;\n // short circuit if full and the additional item does not come before the last item\n if (isFull && comparator(items[items.length - 1], add) <= 0) {\n return add;\n }\n var lo = 0, hi = items.length;\n while(lo < hi){\n var mid = lo + hi >>> 1;\n if (comparator(items[mid], add) <= 0) {\n lo = mid + 1;\n } else {\n hi = mid;\n }\n }\n items.splice(lo, 0, add);\n return isFull ? items.pop() : null;\n }\n}\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport JSBI from \"jsbi\";\nimport { SolidityType } from \"../constants\";\nimport { validateSolidityTypeInstance } from \"../utils\";\n/**\n * A currency is any fungible financial instrument on Ethereum, including Ether and all ERC20 tokens.\n *\n * The only instance of the base class `Currency` is Ether.\n */ export var Currency = function Currency(decimals, symbol, name) {\n \"use strict\";\n _class_call_check(this, Currency);\n validateSolidityTypeInstance(JSBI.BigInt(decimals), SolidityType.uint8);\n this.decimals = decimals;\n this.symbol = symbol;\n this.name = name;\n};\n/**\n * The only instance of the base class `Currency`.\n */ Currency.ETHER = new Currency(18, \"BNB\", \"Binance Chain Native Token\");\nvar ETHER = Currency.ETHER;\nexport { ETHER };\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _define_property from \"@swc/helpers/src/_define_property.mjs\";\nimport _inherits from \"@swc/helpers/src/_inherits.mjs\";\nimport _instanceof from \"@swc/helpers/src/_instanceof.mjs\";\nimport _create_super from \"@swc/helpers/src/_create_super.mjs\";\nimport invariant from \"tiny-invariant\";\nimport { ChainId } from \"../constants\";\nimport { validateAndParseAddress } from \"../utils\";\nimport { Currency } from \"./currency\";\n/**\n * Represents an ERC20 token with a unique address and some metadata.\n */ export var Token = /*#__PURE__*/ function(Currency) {\n \"use strict\";\n _inherits(Token, Currency);\n var _super = _create_super(Token);\n function Token(chainId, address, decimals, symbol, name, projectLink) {\n _class_call_check(this, Token);\n var _this;\n _this = _super.call(this, decimals, symbol, name);\n _this.chainId = chainId;\n _this.address = validateAndParseAddress(address);\n _this.projectLink = projectLink;\n return _this;\n }\n var _proto = Token.prototype;\n /**\n * Returns true if the two tokens are equivalent, i.e. have the same chainId and address.\n * @param other other token to compare\n */ _proto.equals = function equals(other) {\n // short circuit on reference equality\n if (this === other) {\n return true;\n }\n return this.chainId === other.chainId && this.address === other.address;\n };\n /**\n * Returns true if the address of this token sorts before the address of the other token\n * @param other other token to compare\n * @throws if the tokens have the same address\n * @throws if the tokens are on different chains\n */ _proto.sortsBefore = function sortsBefore(other) {\n invariant(this.chainId === other.chainId, \"CHAIN_IDS\");\n invariant(this.address !== other.address, \"ADDRESSES\");\n return this.address.toLowerCase() < other.address.toLowerCase();\n };\n return Token;\n}(Currency);\n/**\n * Compares two currencies for equality\n */ export function currencyEquals(currencyA, currencyB) {\n if (_instanceof(currencyA, Token) && _instanceof(currencyB, Token)) {\n return currencyA.equals(currencyB);\n } else if (_instanceof(currencyA, Token)) {\n return false;\n } else if (_instanceof(currencyB, Token)) {\n return false;\n } else {\n return currencyA === currencyB;\n }\n}\nvar _obj;\n// export const WETH9 = {\n// [ChainId.ETHEREUM]: new Token(\n// ChainId.ETHEREUM,\n// '0xc778417E063141139Fce010982780140Aa0cD5Ab',\n// 18,\n// 'WETH',\n// 'Wrapped Ether',\n// 'https://weth.io'\n// ),\n// [ChainId.RINKEBY]: new Token(\n// ChainId.RINKEBY,\n// '0xc778417E063141139Fce010982780140Aa0cD5Ab',\n// 18,\n// 'WETH',\n// 'Wrapped Ether',\n// 'https://weth.io'\n// )\n// }\nexport var WETH = (_obj = {}, _define_property(_obj, ChainId.BSC, new Token(ChainId.BSC, \"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c\", 18, \"WETH\", \"Wrapped ETH\", \"https://stealthswap.trade\")), _define_property(_obj, ChainId.BSC_TESTNET, new Token(ChainId.BSC_TESTNET, \"0xae13d989daC2f0dEbFf460aC112a837C89BAa7cd\", 18, \"WETH\", \"Wrapped ETH\", \"https://stealthswap.trade\")), _obj);\nvar _obj1;\nexport var WNATIVE = (_obj1 = {}, // [ChainId.ETHEREUM]: WETH9[ChainId.ETHEREUM],\n// [ChainId.RINKEBY]: WETH9[ChainId.RINKEBY],\n_define_property(_obj1, ChainId.BSC, WETH[ChainId.BSC]), _define_property(_obj1, ChainId.BSC_TESTNET, WETH[ChainId.BSC_TESTNET]), _obj1);\n","import superPropBase from './_super_prop_base.mjs';\n\nfunction get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n get = Reflect.get;\n } else {\n get = function get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver || target);\n }\n\n return desc.value;\n };\n }\n\n return get(target, property, receiver);\n}\n\nexport default function _get(target, property, receiver) {\n return get(target, property, receiver);\n}\n","import getPrototypeOf from './_get_prototype_of.mjs';\n\nexport default function _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _create_class from \"@swc/helpers/src/_create_class.mjs\";\nimport _define_property from \"@swc/helpers/src/_define_property.mjs\";\nimport _instanceof from \"@swc/helpers/src/_instanceof.mjs\";\nimport invariant from \"tiny-invariant\";\nimport JSBI from \"jsbi\";\nimport _Decimal from \"decimal.js-light\";\nimport _Big from \"big.js\";\nimport toFormat from \"toformat\";\nimport { Rounding } from \"../../constants\";\nimport { ONE } from \"../../constants\";\nimport { parseBigintIsh } from \"../../utils\";\nvar Decimal = toFormat(_Decimal);\nvar Big = toFormat(_Big);\nvar _obj;\nvar toSignificantRounding = (_obj = {}, _define_property(_obj, Rounding.ROUND_DOWN, Decimal.ROUND_DOWN), _define_property(_obj, Rounding.ROUND_HALF_UP, Decimal.ROUND_HALF_UP), _define_property(_obj, Rounding.ROUND_UP, Decimal.ROUND_UP), _obj);\nvar RoundingMode;\n(function(RoundingMode) {\n RoundingMode[RoundingMode[/**\n * Rounds towards zero.\n * I.e. truncate, no rounding.\n */ \"RoundDown\"] = 0] = \"RoundDown\";\n RoundingMode[RoundingMode[/**\n * Rounds towards nearest neighbour.\n * If equidistant, rounds away from zero.\n */ \"RoundHalfUp\"] = 1] = \"RoundHalfUp\";\n RoundingMode[RoundingMode[/**\n * Rounds towards nearest neighbour.\n * If equidistant, rounds towards even neighbour.\n */ \"RoundHalfEven\"] = 2] = \"RoundHalfEven\";\n RoundingMode[RoundingMode[/**\n * Rounds away from zero.\n */ \"RoundUp\"] = 3] = \"RoundUp\";\n})(RoundingMode || (RoundingMode = {}));\nvar _obj1;\nvar toFixedRounding = (_obj1 = {}, _define_property(_obj1, Rounding.ROUND_DOWN, 0), _define_property(_obj1, Rounding.ROUND_HALF_UP, 1), _define_property(_obj1, Rounding.ROUND_UP, 3), _obj1);\nexport var Fraction = /*#__PURE__*/ function() {\n \"use strict\";\n function Fraction(numerator) {\n var denominator = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : ONE;\n _class_call_check(this, Fraction);\n this.numerator = parseBigintIsh(numerator);\n this.denominator = parseBigintIsh(denominator);\n }\n var _proto = Fraction.prototype;\n _proto.invert = function invert() {\n return new Fraction(this.denominator, this.numerator);\n };\n _proto.add = function add(other) {\n var otherParsed = _instanceof(other, Fraction) ? other : new Fraction(parseBigintIsh(other));\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.add(this.numerator, otherParsed.numerator), this.denominator);\n }\n return new Fraction(JSBI.add(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));\n };\n _proto.subtract = function subtract(other) {\n var otherParsed = _instanceof(other, Fraction) ? other : new Fraction(parseBigintIsh(other));\n if (JSBI.equal(this.denominator, otherParsed.denominator)) {\n return new Fraction(JSBI.subtract(this.numerator, otherParsed.numerator), this.denominator);\n }\n return new Fraction(JSBI.subtract(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator)), JSBI.multiply(this.denominator, otherParsed.denominator));\n };\n _proto.lessThan = function lessThan(other) {\n var otherParsed = _instanceof(other, Fraction) ? other : new Fraction(parseBigintIsh(other));\n return JSBI.lessThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));\n };\n _proto.equalTo = function equalTo(other) {\n var otherParsed = _instanceof(other, Fraction) ? other : new Fraction(parseBigintIsh(other));\n return JSBI.equal(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));\n };\n _proto.greaterThan = function greaterThan(other) {\n var otherParsed = _instanceof(other, Fraction) ? other : new Fraction(parseBigintIsh(other));\n return JSBI.greaterThan(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(otherParsed.numerator, this.denominator));\n };\n _proto.multiply = function multiply(other) {\n var otherParsed = _instanceof(other, Fraction) ? other : new Fraction(parseBigintIsh(other));\n return new Fraction(JSBI.multiply(this.numerator, otherParsed.numerator), JSBI.multiply(this.denominator, otherParsed.denominator));\n };\n _proto.divide = function divide(other) {\n var otherParsed = _instanceof(other, Fraction) ? other : new Fraction(parseBigintIsh(other));\n return new Fraction(JSBI.multiply(this.numerator, otherParsed.denominator), JSBI.multiply(this.denominator, otherParsed.numerator));\n };\n _proto.toSignificant = function toSignificant(significantDigits) {\n var format = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {\n groupSeparator: \"\"\n }, rounding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Rounding.ROUND_HALF_UP;\n invariant(Number.isInteger(significantDigits), \"\".concat(significantDigits, \" is not an integer.\"));\n invariant(significantDigits > 0, \"\".concat(significantDigits, \" is not positive.\"));\n Decimal.set({\n precision: significantDigits + 1,\n rounding: toSignificantRounding[rounding]\n });\n var quotient = new Decimal(this.numerator.toString()).div(this.denominator.toString()).toSignificantDigits(significantDigits);\n return quotient.toFormat(quotient.decimalPlaces(), format);\n };\n _proto.toFixed = function toFixed(decimalPlaces) {\n var format = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {\n groupSeparator: \"\"\n }, rounding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Rounding.ROUND_HALF_UP;\n invariant(Number.isInteger(decimalPlaces), \"\".concat(decimalPlaces, \" is not an integer.\"));\n invariant(decimalPlaces >= 0, \"\".concat(decimalPlaces, \" is negative.\"));\n Big.DP = decimalPlaces;\n Big.RM = toFixedRounding[rounding];\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(decimalPlaces, format);\n };\n _create_class(Fraction, [\n {\n key: \"quotient\",\n get: // performs floor division\n function get() {\n return JSBI.divide(this.numerator, this.denominator);\n }\n },\n {\n key: \"remainder\",\n get: // remainder after floor division\n function get() {\n return new Fraction(JSBI.remainder(this.numerator, this.denominator), this.denominator);\n }\n },\n {\n key: \"asFraction\",\n get: /**\n * Helper method for converting any super class back to a fraction\n */ function get() {\n return new Fraction(this.numerator, this.denominator);\n }\n }\n ]);\n return Fraction;\n}();\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _create_class from \"@swc/helpers/src/_create_class.mjs\";\nimport _get from \"@swc/helpers/src/_get.mjs\";\nimport _get_prototype_of from \"@swc/helpers/src/_get_prototype_of.mjs\";\nimport _inherits from \"@swc/helpers/src/_inherits.mjs\";\nimport _create_super from \"@swc/helpers/src/_create_super.mjs\";\nimport { currencyEquals } from \"../token\";\nimport { ETHER } from \"../currency\";\nimport invariant from \"tiny-invariant\";\nimport JSBI from \"jsbi\";\nimport _Big from \"big.js\";\nimport toFormat from \"toformat\";\nimport { Rounding, TEN, SolidityType } from \"../../constants\";\nimport { parseBigintIsh, validateSolidityTypeInstance } from \"../../utils\";\nimport { Fraction } from \"./fraction\";\nvar Big = toFormat(_Big);\nexport var CurrencyAmount = /*#__PURE__*/ function(Fraction) {\n \"use strict\";\n _inherits(CurrencyAmount, Fraction);\n var _super = _create_super(CurrencyAmount);\n function CurrencyAmount(currency, amount) {\n _class_call_check(this, CurrencyAmount);\n var _this;\n var parsedAmount = parseBigintIsh(amount);\n validateSolidityTypeInstance(parsedAmount, SolidityType.uint256);\n _this = _super.call(this, parsedAmount, JSBI.exponentiate(TEN, JSBI.BigInt(currency.decimals)));\n _this.currency = currency;\n return _this;\n }\n var _proto = CurrencyAmount.prototype;\n _proto.add = function add(other) {\n invariant(currencyEquals(this.currency, other.currency), \"TOKEN\");\n return new CurrencyAmount(this.currency, JSBI.add(this.raw, other.raw));\n };\n _proto.subtract = function subtract(other) {\n invariant(currencyEquals(this.currency, other.currency), \"TOKEN\");\n return new CurrencyAmount(this.currency, JSBI.subtract(this.raw, other.raw));\n };\n _proto.toSignificant = function toSignificant() {\n var significantDigits = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 6, format = arguments.length > 1 ? arguments[1] : void 0, rounding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Rounding.ROUND_DOWN;\n return _get(_get_prototype_of(CurrencyAmount.prototype), \"toSignificant\", this).call(this, significantDigits, format, rounding);\n };\n _proto.toFixed = function toFixed() {\n var decimalPlaces = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : this.currency.decimals, format = arguments.length > 1 ? arguments[1] : void 0, rounding = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : Rounding.ROUND_DOWN;\n invariant(decimalPlaces <= this.currency.decimals, \"DECIMALS\");\n return _get(_get_prototype_of(CurrencyAmount.prototype), \"toFixed\", this).call(this, decimalPlaces, format, rounding);\n };\n _proto.toExact = function toExact() {\n var format = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : {\n groupSeparator: \"\"\n };\n Big.DP = this.currency.decimals;\n return new Big(this.numerator.toString()).div(this.denominator.toString()).toFormat(format);\n };\n /**\n * Helper that calls the constructor with the ETHER currency\n * @param amount ether amount in wei\n */ CurrencyAmount.ether = function ether(amount) {\n return new CurrencyAmount(ETHER, amount);\n };\n _create_class(CurrencyAmount, [\n {\n key: \"raw\",\n get: function get() {\n return this.numerator;\n }\n }\n ]);\n return CurrencyAmount;\n}(Fraction);\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _inherits from \"@swc/helpers/src/_inherits.mjs\";\nimport _create_super from \"@swc/helpers/src/_create_super.mjs\";\nimport { CurrencyAmount } from \"./currencyAmount\";\nimport invariant from \"tiny-invariant\";\nimport JSBI from \"jsbi\";\nexport var TokenAmount = /*#__PURE__*/ function(CurrencyAmount) {\n \"use strict\";\n _inherits(TokenAmount, CurrencyAmount);\n var _super = _create_super(TokenAmount);\n function TokenAmount(token, amount) {\n _class_call_check(this, TokenAmount);\n var _this;\n _this = _super.call(this, token, amount);\n _this.token = token;\n return _this;\n }\n var _proto = TokenAmount.prototype;\n _proto.add = function add(other) {\n invariant(this.token.equals(other.token), \"TOKEN\");\n return new TokenAmount(this.token, JSBI.add(this.raw, other.raw));\n };\n _proto.subtract = function subtract(other) {\n invariant(this.token.equals(other.token), \"TOKEN\");\n return new TokenAmount(this.token, JSBI.subtract(this.raw, other.raw));\n };\n return TokenAmount;\n}(CurrencyAmount);\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _create_class from \"@swc/helpers/src/_create_class.mjs\";\nimport _get from \"@swc/helpers/src/_get.mjs\";\nimport _get_prototype_of from \"@swc/helpers/src/_get_prototype_of.mjs\";\nimport _inherits from \"@swc/helpers/src/_inherits.mjs\";\nimport _instanceof from \"@swc/helpers/src/_instanceof.mjs\";\nimport _sliced_to_array from \"@swc/helpers/src/_sliced_to_array.mjs\";\nimport _create_super from \"@swc/helpers/src/_create_super.mjs\";\nimport { Token } from \"../token\";\nimport { TokenAmount } from \"./tokenAmount\";\nimport { currencyEquals } from \"../token\";\nimport invariant from \"tiny-invariant\";\nimport JSBI from \"jsbi\";\nimport { TEN } from \"../../constants\";\nimport { Fraction } from \"./fraction\";\nimport { CurrencyAmount } from \"./currencyAmount\";\nexport var Price = /*#__PURE__*/ function(Fraction1) {\n \"use strict\";\n _inherits(Price, Fraction1);\n var _super = _create_super(Price);\n function Price(baseCurrency, quoteCurrency, denominator, numerator) {\n _class_call_check(this, Price);\n var _this;\n _this = _super.call(this, numerator, denominator);\n _this.baseCurrency = baseCurrency;\n _this.quoteCurrency = quoteCurrency;\n _this.scalar = new Fraction(JSBI.exponentiate(TEN, JSBI.BigInt(baseCurrency.decimals)), JSBI.exponentiate(TEN, JSBI.BigInt(quoteCurrency.decimals)));\n return _this;\n }\n var _proto = Price.prototype;\n _proto.invert = function invert() {\n return new Price(this.quoteCurrency, this.baseCurrency, this.numerator, this.denominator);\n };\n _proto.multiply = function multiply(other) {\n invariant(currencyEquals(this.quoteCurrency, other.baseCurrency), \"TOKEN\");\n var fraction = _get(_get_prototype_of(Price.prototype), \"multiply\", this).call(this, other);\n return new Price(this.baseCurrency, other.quoteCurrency, fraction.denominator, fraction.numerator);\n };\n // performs floor division on overflow\n _proto.quote = function quote(currencyAmount) {\n invariant(currencyEquals(currencyAmount.currency, this.baseCurrency), \"TOKEN\");\n if (_instanceof(this.quoteCurrency, Token)) {\n return new TokenAmount(this.quoteCurrency, _get(_get_prototype_of(Price.prototype), \"multiply\", this).call(this, currencyAmount.raw).quotient);\n }\n return CurrencyAmount.ether(_get(_get_prototype_of(Price.prototype), \"multiply\", this).call(this, currencyAmount.raw).quotient);\n };\n _proto.toSignificant = function toSignificant() {\n var significantDigits = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 6, format = arguments.length > 1 ? arguments[1] : void 0, rounding = arguments.length > 2 ? arguments[2] : void 0;\n return this.adjusted.toSignificant(significantDigits, format, rounding);\n };\n _proto.toFixed = function toFixed() {\n var decimalPlaces = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 4, format = arguments.length > 1 ? arguments[1] : void 0, rounding = arguments.length > 2 ? arguments[2] : void 0;\n return this.adjusted.toFixed(decimalPlaces, format, rounding);\n };\n Price.fromRoute = function fromRoute(route) {\n var prices = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = route.pairs.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var _value = _sliced_to_array(_step.value, 2), i = _value[0], pair = _value[1];\n prices.push(route.path[i].equals(pair.token0) ? new Price(pair.reserve0.currency, pair.reserve1.currency, pair.reserve0.raw, pair.reserve1.raw) : new Price(pair.reserve1.currency, pair.reserve0.currency, pair.reserve1.raw, pair.reserve0.raw));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return prices.slice(1).reduce(function(accumulator, currentValue) {\n return accumulator.multiply(currentValue);\n }, prices[0]);\n };\n _create_class(Price, [\n {\n key: \"raw\",\n get: function get() {\n return new Fraction(this.numerator, this.denominator);\n }\n },\n {\n key: \"adjusted\",\n get: function get() {\n return _get(_get_prototype_of(Price.prototype), \"multiply\", this).call(this, this.scalar);\n }\n }\n ]);\n return Price;\n}(Fraction);\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _create_class from \"@swc/helpers/src/_create_class.mjs\";\nimport _define_property from \"@swc/helpers/src/_define_property.mjs\";\nimport _object_spread from \"@swc/helpers/src/_object_spread.mjs\";\nimport _object_spread_props from \"@swc/helpers/src/_object_spread_props.mjs\";\nimport _sliced_to_array from \"@swc/helpers/src/_sliced_to_array.mjs\";\nimport { Price } from \"./fractions/price\";\nimport { TokenAmount } from \"./fractions/tokenAmount\";\nimport invariant from \"tiny-invariant\";\nimport JSBI from \"jsbi\";\nimport { pack, keccak256 } from \"@ethersproject/solidity\";\nimport { getCreate2Address } from \"@ethersproject/address\";\nimport { FACTORY_ADDRESS_MAP, INIT_CODE_HASH_MAP, MINIMUM_LIQUIDITY, ZERO, ONE, FIVE, FEES_NUMERATOR, FEES_DENOMINATOR } from \"../constants\";\nimport { sqrt, parseBigintIsh } from \"../utils\";\nimport { InsufficientReservesError, InsufficientInputAmountError } from \"../errors\";\nimport { Token } from \"./token\";\nvar PAIR_ADDRESS_CACHE = {};\nvar composeKey = function(token0, token1) {\n return \"\".concat(token0.chainId, \"-\").concat(token0.address, \"-\").concat(token1.address);\n};\nexport var Pair = /*#__PURE__*/ function() {\n \"use strict\";\n function Pair(tokenAmountA, tokenAmountB) {\n _class_call_check(this, Pair);\n var tokenAmounts = tokenAmountA.token.sortsBefore(tokenAmountB.token) // does safety checks\n ? [\n tokenAmountA,\n tokenAmountB\n ] : [\n tokenAmountB,\n tokenAmountA\n ];\n this.liquidityToken = new Token(tokenAmounts[0].token.chainId, Pair.getAddress(tokenAmounts[0].token, tokenAmounts[1].token), 18, \"LP-TOKEN\", \"Liquidity-Pool-Token\");\n this.tokenAmounts = tokenAmounts;\n }\n var _proto = Pair.prototype;\n /**\n * Returns true if the token is either token0 or token1\n * @param token to check\n */ _proto.involvesToken = function involvesToken(token) {\n return token.equals(this.token0) || token.equals(this.token1);\n };\n /**\n * Return the price of the given token in terms of the other token in the pair.\n * @param token token to return price of\n */ _proto.priceOf = function priceOf(token) {\n invariant(this.involvesToken(token), \"TOKEN\");\n return token.equals(this.token0) ? this.token0Price : this.token1Price;\n };\n _proto.reserveOf = function reserveOf(token) {\n invariant(this.involvesToken(token), \"TOKEN\");\n return token.equals(this.token0) ? this.reserve0 : this.reserve1;\n };\n _proto.getOutputAmount = function getOutputAmount(inputAmount) {\n invariant(this.involvesToken(inputAmount.token), \"TOKEN\");\n if (JSBI.equal(this.reserve0.raw, ZERO) || JSBI.equal(this.reserve1.raw, ZERO)) {\n throw new InsufficientReservesError();\n }\n var inputReserve = this.reserveOf(inputAmount.token);\n var outputReserve = this.reserveOf(inputAmount.token.equals(this.token0) ? this.token1 : this.token0);\n var inputAmountWithFee = JSBI.multiply(inputAmount.raw, FEES_NUMERATOR);\n var numerator = JSBI.multiply(inputAmountWithFee, outputReserve.raw);\n var denominator = JSBI.add(JSBI.multiply(inputReserve.raw, FEES_DENOMINATOR), inputAmountWithFee);\n var outputAmount = new TokenAmount(inputAmount.token.equals(this.token0) ? this.token1 : this.token0, JSBI.divide(numerator, denominator));\n if (JSBI.equal(outputAmount.raw, ZERO)) {\n throw new InsufficientInputAmountError();\n }\n return [\n outputAmount,\n new Pair(inputReserve.add(inputAmount), outputReserve.subtract(outputAmount))\n ];\n };\n _proto.getInputAmount = function getInputAmount(outputAmount) {\n invariant(this.involvesToken(outputAmount.token), \"TOKEN\");\n if (JSBI.equal(this.reserve0.raw, ZERO) || JSBI.equal(this.reserve1.raw, ZERO) || JSBI.greaterThanOrEqual(outputAmount.raw, this.reserveOf(outputAmount.token).raw)) {\n throw new InsufficientReservesError();\n }\n var outputReserve = this.reserveOf(outputAmount.token);\n var inputReserve = this.reserveOf(outputAmount.token.equals(this.token0) ? this.token1 : this.token0);\n var numerator = JSBI.multiply(JSBI.multiply(inputReserve.raw, outputAmount.raw), FEES_DENOMINATOR);\n var denominator = JSBI.multiply(JSBI.subtract(outputReserve.raw, outputAmount.raw), FEES_NUMERATOR);\n var inputAmount = new TokenAmount(outputAmount.token.equals(this.token0) ? this.token1 : this.token0, JSBI.add(JSBI.divide(numerator, denominator), ONE));\n return [\n inputAmount,\n new Pair(inputReserve.add(inputAmount), outputReserve.subtract(outputAmount))\n ];\n };\n _proto.getLiquidityMinted = function getLiquidityMinted(totalSupply, tokenAmountA, tokenAmountB) {\n invariant(totalSupply.token.equals(this.liquidityToken), \"LIQUIDITY\");\n var tokenAmounts = tokenAmountA.token.sortsBefore(tokenAmountB.token) // does safety checks\n ? [\n tokenAmountA,\n tokenAmountB\n ] : [\n tokenAmountB,\n tokenAmountA\n ];\n invariant(tokenAmounts[0].token.equals(this.token0) && tokenAmounts[1].token.equals(this.token1), \"TOKEN\");\n var liquidity;\n if (JSBI.equal(totalSupply.raw, ZERO)) {\n liquidity = JSBI.subtract(sqrt(JSBI.multiply(tokenAmounts[0].raw, tokenAmounts[1].raw)), MINIMUM_LIQUIDITY);\n } else {\n var amount0 = JSBI.divide(JSBI.multiply(tokenAmounts[0].raw, totalSupply.raw), this.reserve0.raw);\n var amount1 = JSBI.divide(JSBI.multiply(tokenAmounts[1].raw, totalSupply.raw), this.reserve1.raw);\n liquidity = JSBI.lessThanOrEqual(amount0, amount1) ? amount0 : amount1;\n }\n if (!JSBI.greaterThan(liquidity, ZERO)) {\n throw new InsufficientInputAmountError();\n }\n return new TokenAmount(this.liquidityToken, liquidity);\n };\n _proto.getLiquidityValue = function getLiquidityValue(token, totalSupply, liquidity) {\n var feeOn = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : false, kLast = arguments.length > 4 ? arguments[4] : void 0;\n invariant(this.involvesToken(token), \"TOKEN\");\n invariant(totalSupply.token.equals(this.liquidityToken), \"TOTAL_SUPPLY\");\n invariant(liquidity.token.equals(this.liquidityToken), \"LIQUIDITY\");\n invariant(JSBI.lessThanOrEqual(liquidity.raw, totalSupply.raw), \"LIQUIDITY\");\n var totalSupplyAdjusted;\n if (!feeOn) {\n totalSupplyAdjusted = totalSupply;\n } else {\n invariant(!!kLast, \"K_LAST\");\n var kLastParsed = parseBigintIsh(kLast);\n if (!JSBI.equal(kLastParsed, ZERO)) {\n var rootK = sqrt(JSBI.multiply(this.reserve0.raw, this.reserve1.raw));\n var rootKLast = sqrt(kLastParsed);\n if (JSBI.greaterThan(rootK, rootKLast)) {\n var numerator = JSBI.multiply(totalSupply.raw, JSBI.subtract(rootK, rootKLast));\n var denominator = JSBI.add(JSBI.multiply(rootK, FIVE), rootKLast);\n var feeLiquidity = JSBI.divide(numerator, denominator);\n totalSupplyAdjusted = totalSupply.add(new TokenAmount(this.liquidityToken, feeLiquidity));\n } else {\n totalSupplyAdjusted = totalSupply;\n }\n } else {\n totalSupplyAdjusted = totalSupply;\n }\n }\n return new TokenAmount(token, JSBI.divide(JSBI.multiply(liquidity.raw, this.reserveOf(token).raw), totalSupplyAdjusted.raw));\n };\n Pair.getAddress = function getAddress(tokenA, tokenB) {\n var ref // does safety checks\n = _sliced_to_array(tokenA.sortsBefore(tokenB) ? [\n tokenA,\n tokenB\n ] : [\n tokenB,\n tokenA\n ], 2), token0 = ref[0], token1 = ref[1];\n var key = composeKey(token0, token1);\n if ((PAIR_ADDRESS_CACHE === null || PAIR_ADDRESS_CACHE === void 0 ? void 0 : PAIR_ADDRESS_CACHE[key]) === undefined) {\n PAIR_ADDRESS_CACHE = _object_spread_props(_object_spread({}, PAIR_ADDRESS_CACHE), _define_property({}, key, getCreate2Address(FACTORY_ADDRESS_MAP[token0.chainId], keccak256([\n \"bytes\"\n ], [\n pack([\n \"address\",\n \"address\"\n ], [\n token0.address,\n token1.address\n ])\n ]), INIT_CODE_HASH_MAP[token0.chainId])));\n }\n return PAIR_ADDRESS_CACHE[key];\n };\n _create_class(Pair, [\n {\n key: \"token0Price\",\n get: /**\n * Returns the current mid price of the pair in terms of token0, i.e. the ratio of reserve1 to reserve0\n */ function get() {\n return new Price(this.token0, this.token1, this.tokenAmounts[0].raw, this.tokenAmounts[1].raw);\n }\n },\n {\n key: \"token1Price\",\n get: /**\n * Returns the current mid price of the pair in terms of token1, i.e. the ratio of reserve0 to reserve1\n */ function get() {\n return new Price(this.token1, this.token0, this.tokenAmounts[1].raw, this.tokenAmounts[0].raw);\n }\n },\n {\n key: \"chainId\",\n get: /**\n * Returns the chain ID of the tokens in the pair.\n */ function get() {\n return this.token0.chainId;\n }\n },\n {\n key: \"token0\",\n get: function get() {\n return this.tokenAmounts[0].token;\n }\n },\n {\n key: \"token1\",\n get: function get() {\n return this.tokenAmounts[1].token;\n }\n },\n {\n key: \"reserve0\",\n get: function get() {\n return this.tokenAmounts[0];\n }\n },\n {\n key: \"reserve1\",\n get: function get() {\n return this.tokenAmounts[1];\n }\n }\n ]);\n return Pair;\n}();\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _create_class from \"@swc/helpers/src/_create_class.mjs\";\nimport _instanceof from \"@swc/helpers/src/_instanceof.mjs\";\nimport _sliced_to_array from \"@swc/helpers/src/_sliced_to_array.mjs\";\nimport invariant from \"tiny-invariant\";\nimport { ETHER } from \"./currency\";\nimport { Token, WNATIVE } from \"./token\";\nimport { Price } from \"./fractions/price\";\nexport var Route = /*#__PURE__*/ function() {\n \"use strict\";\n function Route(pairs, input, output) {\n _class_call_check(this, Route);\n invariant(pairs.length > 0, \"PAIRS\");\n invariant(pairs.every(function(pair) {\n return pair.chainId === pairs[0].chainId;\n }), \"CHAIN_IDS\");\n invariant(_instanceof(input, Token) && pairs[0].involvesToken(input) || input === ETHER && pairs[0].involvesToken(WNATIVE[pairs[0].chainId]), \"INPUT\");\n invariant(typeof output === \"undefined\" || _instanceof(output, Token) && pairs[pairs.length - 1].involvesToken(output) || output === ETHER && pairs[pairs.length - 1].involvesToken(WNATIVE[pairs[0].chainId]), \"OUTPUT\");\n var path = [\n _instanceof(input, Token) ? input : WNATIVE[pairs[0].chainId]\n ];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;\n try {\n for(var _iterator = pairs.entries()[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){\n var _value = _sliced_to_array(_step.value, 2), i = _value[0], pair = _value[1];\n var currentInput = path[i];\n invariant(currentInput.equals(pair.token0) || currentInput.equals(pair.token1), \"PATH\");\n var _$output = currentInput.equals(pair.token0) ? pair.token1 : pair.token0;\n path.push(_$output);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally{\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally{\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n this.pairs = pairs;\n this.path = path;\n this.midPrice = Price.fromRoute(this);\n this.input = input;\n this.output = output !== null && output !== void 0 ? output : path[path.length - 1];\n }\n _create_class(Route, [\n {\n key: \"chainId\",\n get: function get() {\n return this.pairs[0].chainId;\n }\n }\n ]);\n return Route;\n}();\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _inherits from \"@swc/helpers/src/_inherits.mjs\";\nimport _create_super from \"@swc/helpers/src/_create_super.mjs\";\nimport { _100 } from \"../../constants\";\nimport { Fraction } from \"./fraction\";\nvar _100_PERCENT = new Fraction(_100);\nexport var Percent = /*#__PURE__*/ function(Fraction) {\n \"use strict\";\n _inherits(Percent, Fraction);\n var _super = _create_super(Percent);\n function Percent() {\n _class_call_check(this, Percent);\n return _super.apply(this, arguments);\n }\n var _proto = Percent.prototype;\n _proto.toSignificant = function toSignificant() {\n var significantDigits = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 5, format = arguments.length > 1 ? arguments[1] : void 0, rounding = arguments.length > 2 ? arguments[2] : void 0;\n return this.multiply(_100_PERCENT).toSignificant(significantDigits, format, rounding);\n };\n _proto.toFixed = function toFixed() {\n var decimalPlaces = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : 2, format = arguments.length > 1 ? arguments[1] : void 0, rounding = arguments.length > 2 ? arguments[2] : void 0;\n return this.multiply(_100_PERCENT).toFixed(decimalPlaces, format, rounding);\n };\n return Percent;\n}(Fraction);\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _instanceof from \"@swc/helpers/src/_instanceof.mjs\";\nimport _sliced_to_array from \"@swc/helpers/src/_sliced_to_array.mjs\";\nimport _to_consumable_array from \"@swc/helpers/src/_to_consumable_array.mjs\";\nimport invariant from \"tiny-invariant\";\nimport { ONE, TradeType, ZERO } from \"../constants\";\nimport { sortedInsert } from \"../utils\";\nimport { ETHER } from \"./currency\";\nimport { CurrencyAmount } from \"./fractions/currencyAmount\";\nimport { Fraction } from \"./fractions/fraction\";\nimport { Percent } from \"./fractions/percent\";\nimport { Price } from \"./fractions/price\";\nimport { TokenAmount } from \"./fractions/tokenAmount\";\nimport { Route } from \"./route\";\nimport { currencyEquals, Token, WNATIVE } from \"./token\";\n/**\n * Returns the percent difference between the mid price and the execution price, i.e. price impact.\n * @param midPrice mid price before the trade\n * @param inputAmount the input amount of the trade\n * @param outputAmount the output amount of the trade\n */ function computePriceImpact(midPrice, inputAmount, outputAmount) {\n var exactQuote = midPrice.raw.multiply(inputAmount.raw);\n // calculate slippage := (exactQuote - outputAmount) / exactQuote\n var slippage = exactQuote.subtract(outputAmount.raw).divide(exactQuote);\n return new Percent(slippage.numerator, slippage.denominator);\n}\n// comparator function that allows sorting trades by their output amounts, in decreasing order, and then input amounts\n// in increasing order. i.e. the best trades have the most outputs for the least inputs and are sorted first\nexport function inputOutputComparator(a, b) {\n // must have same input and output token for comparison\n invariant(currencyEquals(a.inputAmount.currency, b.inputAmount.currency), \"INPUT_CURRENCY\");\n invariant(currencyEquals(a.outputAmount.currency, b.outputAmount.currency), \"OUTPUT_CURRENCY\");\n if (a.outputAmount.equalTo(b.outputAmount)) {\n if (a.inputAmount.equalTo(b.inputAmount)) {\n return 0;\n }\n // trade A requires less input than trade B, so A should come first\n if (a.inputAmount.lessThan(b.inputAmount)) {\n return -1;\n } else {\n return 1;\n }\n } else {\n // tradeA has less output than trade B, so should come second\n if (a.outputAmount.lessThan(b.outputAmount)) {\n return 1;\n } else {\n return -1;\n }\n }\n}\n// extension of the input output comparator that also considers other dimensions of the trade in ranking them\nexport function tradeComparator(a, b) {\n var ioComp = inputOutputComparator(a, b);\n if (ioComp !== 0) {\n return ioComp;\n }\n // consider lowest slippage next, since these are less likely to fail\n if (a.priceImpact.lessThan(b.priceImpact)) {\n return -1;\n } else if (a.priceImpact.greaterThan(b.priceImpact)) {\n return 1;\n }\n // finally consider the number of hops since each hop costs gas\n return a.route.path.length - b.route.path.length;\n}\n/**\n * Given a currency amount and a chain ID, returns the equivalent representation as the token amount.\n * In other words, if the currency is ETHER, returns the WETH token amount for the given chain. Otherwise, returns\n * the input currency amount.\n */ function wrappedAmount(currencyAmount, chainId) {\n if (_instanceof(currencyAmount, TokenAmount)) return currencyAmount;\n if (currencyAmount.currency === ETHER) return new TokenAmount(WNATIVE[chainId], currencyAmount.raw);\n invariant(false, \"CURRENCY\");\n}\nfunction wrappedCurrency(currency, chainId) {\n if (_instanceof(currency, Token)) return currency;\n if (currency === ETHER) return WNATIVE[chainId];\n invariant(false, \"CURRENCY\");\n}\n/**\n * Represents a trade executed against a list of pairs.\n * Does not account for slippage, i.e. trades that front run this trade and move the price.\n */ export var Trade = /*#__PURE__*/ function() {\n \"use strict\";\n function Trade(route, amount, tradeType) {\n _class_call_check(this, Trade);\n var amounts = new Array(route.path.length);\n var nextPairs = new Array(route.pairs.length);\n if (tradeType === TradeType.EXACT_INPUT) {\n invariant(currencyEquals(amount.currency, route.input), \"INPUT\");\n amounts[0] = wrappedAmount(amount, route.chainId);\n for(var i = 0; i < route.path.length - 1; i++){\n var pair = route.pairs[i];\n var ref = _sliced_to_array(pair.getOutputAmount(amounts[i]), 2), outputAmount = ref[0], nextPair = ref[1];\n amounts[i + 1] = outputAmount;\n nextPairs[i] = nextPair;\n }\n } else {\n invariant(currencyEquals(amount.currency, route.output), \"OUTPUT\");\n amounts[amounts.length - 1] = wrappedAmount(amount, route.chainId);\n for(var i1 = route.path.length - 1; i1 > 0; i1--){\n var pair1 = route.pairs[i1 - 1];\n var ref1 = _sliced_to_array(pair1.getInputAmount(amounts[i1]), 2), inputAmount = ref1[0], nextPair1 = ref1[1];\n amounts[i1 - 1] = inputAmount;\n nextPairs[i1 - 1] = nextPair1;\n }\n }\n this.route = route;\n this.tradeType = tradeType;\n this.inputAmount = tradeType === TradeType.EXACT_INPUT ? amount : route.input === ETHER ? CurrencyAmount.ether(amounts[0].raw) : amounts[0];\n this.outputAmount = tradeType === TradeType.EXACT_OUTPUT ? amount : route.output === ETHER ? CurrencyAmount.ether(amounts[amounts.length - 1].raw) : amounts[amounts.length - 1];\n this.executionPrice = new Price(this.inputAmount.currency, this.outputAmount.currency, this.inputAmount.raw, this.outputAmount.raw);\n this.nextMidPrice = Price.fromRoute(new Route(nextPairs, route.input));\n this.priceImpact = computePriceImpact(route.midPrice, this.inputAmount, this.outputAmount);\n }\n var _proto = Trade.prototype;\n /**\n * Get the minimum amount that must be received from this trade for the given slippage tolerance\n * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade\n */ _proto.minimumAmountOut = function minimumAmountOut(slippageTolerance) {\n invariant(!slippageTolerance.lessThan(ZERO), \"SLIPPAGE_TOLERANCE\");\n if (this.tradeType === TradeType.EXACT_OUTPUT) {\n return this.outputAmount;\n } else {\n var slippageAdjustedAmountOut = new Fraction(ONE).add(slippageTolerance).invert().multiply(this.outputAmount.raw).quotient;\n return _instanceof(this.outputAmount, TokenAmount) ? new TokenAmount(this.outputAmount.token, slippageAdjustedAmountOut) : CurrencyAmount.ether(slippageAdjustedAmountOut);\n }\n };\n /**\n * Get the maximum amount in that can be spent via this trade for the given slippage tolerance\n * @param slippageTolerance tolerance of unfavorable slippage from the execution price of this trade\n */ _proto.maximumAmountIn = function maximumAmountIn(slippageTolerance) {\n invariant(!slippageTolerance.lessThan(ZERO), \"SLIPPAGE_TOLERANCE\");\n if (this.tradeType === TradeType.EXACT_INPUT) {\n return this.inputAmount;\n } else {\n var slippageAdjustedAmountIn = new Fraction(ONE).add(slippageTolerance).multiply(this.inputAmount.raw).quotient;\n return _instanceof(this.inputAmount, TokenAmount) ? new TokenAmount(this.inputAmount.token, slippageAdjustedAmountIn) : CurrencyAmount.ether(slippageAdjustedAmountIn);\n }\n };\n /**\n * Constructs an exact in trade with the given amount in and route\n * @param route route of the exact in trade\n * @param amountIn the amount being passed in\n */ Trade.exactIn = function exactIn(route, amountIn) {\n return new Trade(route, amountIn, TradeType.EXACT_INPUT);\n };\n /**\n * Constructs an exact out trade with the given amount out and route\n * @param route route of the exact out trade\n * @param amountOut the amount returned by the trade\n */ Trade.exactOut = function exactOut(route, amountOut) {\n return new Trade(route, amountOut, TradeType.EXACT_OUTPUT);\n };\n /**\n * Given a list of pairs, and a fixed amount in, returns the top `maxNumResults` trades that go from an input token\n * amount to an output token, making at most `maxHops` hops.\n * Note this does not consider aggregation, as routes are linear. It's possible a better route exists by splitting\n * the amount in among multiple routes.\n * @param pairs the pairs to consider in finding the best trade\n * @param currencyAmountIn exact amount of input currency to spend\n * @param currencyOut the desired currency out\n * @param maxNumResults maximum number of results to return\n * @param maxHops maximum number of hops a returned trade can make, e.g. 1 hop goes through a single pair\n * @param currentPairs used in recursion; the current list of pairs\n * @param originalAmountIn used in recursion; the original value of the currencyAmountIn parameter\n * @param bestTrades used in recursion; the current list of best trades\n */ Trade.bestTradeExactIn = function bestTradeExactIn(pairs, currencyAmountIn, currencyOut) {\n var ref = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}, _maxNumResults = ref.maxNumResults, maxNumResults = _maxNumResults === void 0 ? 3 : _maxNumResults, _maxHops = ref.maxHops, maxHops = _maxHops === void 0 ? 3 : _maxHops, // used in recursion.\n currentPairs = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : [], originalAmountIn = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : currencyAmountIn, bestTrades = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : [];\n invariant(pairs.length > 0, \"PAIRS\");\n invariant(maxHops > 0, \"MAX_HOPS\");\n invariant(originalAmountIn === currencyAmountIn || currentPairs.length > 0, \"INVALID_RECURSION\");\n var chainId = _instanceof(currencyAmountIn, TokenAmount) ? currencyAmountIn.token.chainId : _instanceof(currencyOut, Token) ? currencyOut.chainId : undefined;\n invariant(chainId !== undefined, \"CHAIN_ID\");\n var amountIn = wrappedAmount(currencyAmountIn, chainId);\n var tokenOut = wrappedCurrency(currencyOut, chainId);\n for(var i = 0; i < pairs.length; i++){\n var pair = pairs[i];\n // pair irrelevant\n if (!pair.token0.equals(amountIn.token) && !pair.token1.equals(amountIn.token)) continue;\n if (pair.reserve0.equalTo(ZERO) || pair.reserve1.equalTo(ZERO)) continue;\n var amountOut = void 0;\n try {\n var ref1;\n ref1 = _sliced_to_array(pair.getOutputAmount(amountIn), 1), amountOut = ref1[0], ref1;\n } catch (error) {\n // input too low\n if (error.isInsufficientInputAmountError) {\n continue;\n }\n throw error;\n }\n // we have arrived at the output token, so this is the final trade of one of the paths\n if (amountOut.token.equals(tokenOut)) {\n sortedInsert(bestTrades, new Trade(new Route(_to_consumable_array(currentPairs).concat([\n pair\n ]), originalAmountIn.currency, currencyOut), originalAmountIn, TradeType.EXACT_INPUT), maxNumResults, tradeComparator);\n } else if (maxHops > 1 && pairs.length > 1) {\n var pairsExcludingThisPair = pairs.slice(0, i).concat(pairs.slice(i + 1, pairs.length));\n // otherwise, consider all the other paths that lead from this token as long as we have not exceeded maxHops\n Trade.bestTradeExactIn(pairsExcludingThisPair, amountOut, currencyOut, {\n maxNumResults: maxNumResults,\n maxHops: maxHops - 1\n }, _to_consumable_array(currentPairs).concat([\n pair\n ]), originalAmountIn, bestTrades);\n }\n }\n return bestTrades;\n };\n /**\n * similar to the above method but instead targets a fixed output amount\n * given a list of pairs, and a fixed amount out, returns the top `maxNumResults` trades that go from an input token\n * to an output token amount, making at most `maxHops` hops\n * note this does not consider aggregation, as routes are linear. it's possible a better route exists by splitting\n * the amount in among multiple routes.\n * @param pairs the pairs to consider in finding the best trade\n * @param currencyIn the currency to spend\n * @param currencyAmountOut the exact amount of currency out\n * @param maxNumResults maximum number of results to return\n * @param maxHops maximum number of hops a returned trade can make, e.g. 1 hop goes through a single pair\n * @param currentPairs used in recursion; the current list of pairs\n * @param originalAmountOut used in recursion; the original value of the currencyAmountOut parameter\n * @param bestTrades used in recursion; the current list of best trades\n */ Trade.bestTradeExactOut = function bestTradeExactOut(pairs, currencyIn, currencyAmountOut) {\n var ref = arguments.length > 3 && arguments[3] !== void 0 ? arguments[3] : {}, _maxNumResults = ref.maxNumResults, maxNumResults = _maxNumResults === void 0 ? 3 : _maxNumResults, _maxHops = ref.maxHops, maxHops = _maxHops === void 0 ? 3 : _maxHops, // used in recursion.\n currentPairs = arguments.length > 4 && arguments[4] !== void 0 ? arguments[4] : [], originalAmountOut = arguments.length > 5 && arguments[5] !== void 0 ? arguments[5] : currencyAmountOut, bestTrades = arguments.length > 6 && arguments[6] !== void 0 ? arguments[6] : [];\n invariant(pairs.length > 0, \"PAIRS\");\n invariant(maxHops > 0, \"MAX_HOPS\");\n invariant(originalAmountOut === currencyAmountOut || currentPairs.length > 0, \"INVALID_RECURSION\");\n var chainId = _instanceof(currencyAmountOut, TokenAmount) ? currencyAmountOut.token.chainId : _instanceof(currencyIn, Token) ? currencyIn.chainId : undefined;\n invariant(chainId !== undefined, \"CHAIN_ID\");\n var amountOut = wrappedAmount(currencyAmountOut, chainId);\n var tokenIn = wrappedCurrency(currencyIn, chainId);\n for(var i = 0; i < pairs.length; i++){\n var pair = pairs[i];\n // pair irrelevant\n if (!pair.token0.equals(amountOut.token) && !pair.token1.equals(amountOut.token)) continue;\n if (pair.reserve0.equalTo(ZERO) || pair.reserve1.equalTo(ZERO)) continue;\n var amountIn = void 0;\n try {\n var ref1;\n ref1 = _sliced_to_array(pair.getInputAmount(amountOut), 1), amountIn = ref1[0], ref1;\n } catch (error) {\n // not enough liquidity in this pair\n if (error.isInsufficientReservesError) {\n continue;\n }\n throw error;\n }\n // we have arrived at the input token, so this is the first trade of one of the paths\n if (amountIn.token.equals(tokenIn)) {\n sortedInsert(bestTrades, new Trade(new Route([\n pair\n ].concat(_to_consumable_array(currentPairs)), currencyIn, originalAmountOut.currency), originalAmountOut, TradeType.EXACT_OUTPUT), maxNumResults, tradeComparator);\n } else if (maxHops > 1 && pairs.length > 1) {\n var pairsExcludingThisPair = pairs.slice(0, i).concat(pairs.slice(i + 1, pairs.length));\n // otherwise, consider all the other paths that arrive at this token as long as we have not exceeded maxHops\n Trade.bestTradeExactOut(pairsExcludingThisPair, currencyIn, amountIn, {\n maxNumResults: maxNumResults,\n maxHops: maxHops - 1\n }, [\n pair\n ].concat(_to_consumable_array(currentPairs)), originalAmountOut, bestTrades);\n }\n }\n return bestTrades;\n };\n return Trade;\n}();\n","import _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport { TradeType } from \"./constants\";\nimport invariant from \"tiny-invariant\";\nimport { validateAndParseAddress } from \"./utils\";\nimport { ETHER } from \"./entities\";\nfunction toHex(currencyAmount) {\n return \"0x\".concat(currencyAmount.raw.toString(16));\n}\nvar ZERO_HEX = \"0x0\";\n/**\n * Represents the Pancake Router, and has static methods for helping execute trades.\n */ export var Router = /*#__PURE__*/ function() {\n \"use strict\";\n function Router() {\n _class_call_check(this, Router);\n }\n /**\n * Produces the on-chain method name to call and the hex encoded parameters to pass as arguments for a given trade.\n * @param trade to produce call parameters for\n * @param options options for the call parameters\n */ Router.swapCallParameters = function swapCallParameters(trade, options) {\n var etherIn = trade.inputAmount.currency === ETHER;\n var etherOut = trade.outputAmount.currency === ETHER;\n // the router does not support both ether in and out\n invariant(!(etherIn && etherOut), \"ETHER_IN_OUT\");\n invariant(!(\"ttl\" in options) || options.ttl > 0, \"TTL\");\n var to = validateAndParseAddress(options.recipient);\n var amountIn = toHex(trade.maximumAmountIn(options.allowedSlippage));\n var amountOut = toHex(trade.minimumAmountOut(options.allowedSlippage));\n var path = trade.route.path.map(function(token) {\n return token.address;\n });\n var deadline = \"ttl\" in options ? \"0x\".concat((Math.floor(new Date().getTime() / 1000) + options.ttl).toString(16)) : \"0x\".concat(options.deadline.toString(16));\n var useFeeOnTransfer = Boolean(options.feeOnTransfer);\n var methodName;\n var args;\n var value;\n switch(trade.tradeType){\n case TradeType.EXACT_INPUT:\n if (etherIn) {\n methodName = useFeeOnTransfer ? \"swapExactETHForTokensSupportingFeeOnTransferTokens\" : \"swapExactETHForTokens\";\n // (uint amountOutMin, address[] calldata path, address to, uint deadline)\n args = [\n amountOut,\n path,\n to,\n deadline\n ];\n value = amountIn;\n } else if (etherOut) {\n methodName = useFeeOnTransfer ? \"swapExactTokensForETHSupportingFeeOnTransferTokens\" : \"swapExactTokensForETH\";\n // (uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\n args = [\n amountIn,\n amountOut,\n path,\n to,\n deadline\n ];\n value = ZERO_HEX;\n } else {\n methodName = useFeeOnTransfer ? \"swapExactTokensForTokensSupportingFeeOnTransferTokens\" : \"swapExactTokensForTokens\";\n // (uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\n args = [\n amountIn,\n amountOut,\n path,\n to,\n deadline\n ];\n value = ZERO_HEX;\n }\n break;\n case TradeType.EXACT_OUTPUT:\n invariant(!useFeeOnTransfer, \"EXACT_OUT_FOT\");\n if (etherIn) {\n methodName = \"swapBSTForExactTokens\";\n // (uint amountOut, address[] calldata path, address to, uint deadline)\n args = [\n amountOut,\n path,\n to,\n deadline\n ];\n value = amountIn;\n } else if (etherOut) {\n methodName = \"swapTokensForExactETH\";\n // (uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\n args = [\n amountOut,\n amountIn,\n path,\n to,\n deadline\n ];\n value = ZERO_HEX;\n } else {\n methodName = \"swapTokensForExactTokens\";\n // (uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\n args = [\n amountOut,\n amountIn,\n path,\n to,\n deadline\n ];\n value = ZERO_HEX;\n }\n break;\n }\n return {\n methodName: methodName,\n args: args,\n value: value\n };\n };\n return Router;\n}();\n","import _async_to_generator from \"@swc/helpers/src/_async_to_generator.mjs\";\nimport _class_call_check from \"@swc/helpers/src/_class_call_check.mjs\";\nimport _define_property from \"@swc/helpers/src/_define_property.mjs\";\nimport _object_spread from \"@swc/helpers/src/_object_spread.mjs\";\nimport _object_spread_props from \"@swc/helpers/src/_object_spread_props.mjs\";\nimport _sliced_to_array from \"@swc/helpers/src/_sliced_to_array.mjs\";\nimport _ts_generator from \"@swc/helpers/src/_ts_generator.mjs\";\nimport { Contract } from \"@ethersproject/contracts\";\nimport { getNetwork } from \"@ethersproject/networks\";\nimport { getDefaultProvider } from \"@ethersproject/providers\";\nimport { TokenAmount } from \"./entities/fractions/tokenAmount\";\nimport { Pair } from \"./entities/pair\";\nimport IPancakePair from \"./abis/IPancakePair.json\";\nimport invariant from \"tiny-invariant\";\nimport ERC20 from \"./abis/ERC20.json\";\nimport { ChainId } from \"./constants\";\nimport { Token } from \"./entities/token\";\nvar TOKEN_DECIMALS_CACHE = _define_property({}, ChainId.BSC, {\n \"0xE0B7927c4aF23765Cb51314A0E0521A9645F0E2A\": 9\n});\n/**\n * Contains methods for constructing instances of pairs and tokens from on-chain data.\n */ export var Fetcher = /*#__PURE__*/ function() {\n \"use strict\";\n function Fetcher() {\n _class_call_check(this, Fetcher);\n }\n /**\n * Fetch information for a given token on the given chain, using the given ethers provider.\n * @param chainId chain of the token\n * @param address address of the token on the chain\n * @param provider provider used to fetch the token\n * @param symbol optional symbol of the token\n * @param name optional name of the token\n */ Fetcher.fetchTokenData = function fetchTokenData(chainId, address) {\n var provider = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : getDefaultProvider(getNetwork(chainId)), symbol = arguments.length > 3 ? arguments[3] : void 0, name = arguments.length > 4 ? arguments[4] : void 0;\n return _async_to_generator(function() {\n var ref, parsedDecimals, _tmp;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n if (!(typeof (TOKEN_DECIMALS_CACHE === null || TOKEN_DECIMALS_CACHE === void 0 ? void 0 : (ref = TOKEN_DECIMALS_CACHE[chainId]) === null || ref === void 0 ? void 0 : ref[address]) === \"number\")) return [\n 3,\n 1\n ];\n _tmp = TOKEN_DECIMALS_CACHE[chainId][address];\n return [\n 3,\n 3\n ];\n case 1:\n return [\n 4,\n new Contract(address, ERC20, provider).decimals().then(function(decimals) {\n TOKEN_DECIMALS_CACHE = _object_spread_props(_object_spread({}, TOKEN_DECIMALS_CACHE), _define_property({}, chainId, _object_spread_props(_object_spread({}, TOKEN_DECIMALS_CACHE === null || TOKEN_DECIMALS_CACHE === void 0 ? void 0 : TOKEN_DECIMALS_CACHE[chainId]), _define_property({}, address, decimals))));\n return decimals;\n })\n ];\n case 2:\n _tmp = _state.sent();\n _state.label = 3;\n case 3:\n parsedDecimals = _tmp;\n return [\n 2,\n new Token(chainId, address, parsedDecimals, symbol, name)\n ];\n }\n });\n })();\n };\n /**\n * Fetches information about a pair and constructs a pair from the given two tokens.\n * @param tokenA first token\n * @param tokenB second token\n * @param provider the provider to use to fetch the data\n */ Fetcher.fetchPairData = function fetchPairData(tokenA, tokenB) {\n var provider = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : getDefaultProvider(getNetwork(tokenA.chainId));\n return _async_to_generator(function() {\n var address, ref, reserves0, reserves1, balances;\n return _ts_generator(this, function(_state) {\n switch(_state.label){\n case 0:\n invariant(tokenA.chainId === tokenB.chainId, \"CHAIN_ID\");\n address = Pair.getAddress(tokenA, tokenB);\n return [\n 4,\n new Contract(address, IPancakePair, provider).getReserves()\n ];\n case 1:\n ref = _sliced_to_array.apply(void 0, [\n _state.sent(),\n 2\n ]), reserves0 = ref[0], reserves1 = ref[1];\n balances = tokenA.sortsBefore(tokenB) ? [\n reserves0,\n reserves1\n ] : [\n reserves1,\n reserves0\n ];\n return [\n 2,\n new Pair(new TokenAmount(tokenA, balances[0]), new TokenAmount(tokenB, balances[1]))\n ];\n }\n });\n })();\n };\n return Fetcher;\n}();\n","import _tagged_template_literal from \"@swc/helpers/src/_tagged_template_literal.mjs\";\nfunction _templateObject() {\n var data = _tagged_template_literal([\n \"\\n /* prettier-ignore */\\n html, body, div, span, applet, object, iframe,\\n h1, h2, h3, h4, h5, h6, p, blockquote, pre,\\n a, abbr, acronym, address, big, cite, code,\\n del, dfn, em, img, ins, kbd, q, s, samp,\\n small, strike, strong, sub, sup, tt, var,\\n b, u, i, center,\\n dl, dt, dd, ol, ul, li,\\n fieldset, form, label, legend,\\n table, caption, tbody, tfoot, thead, tr, th, td,\\n article, aside, canvas, details, embed, \\n figure, figcaption, footer, header, hgroup, \\n menu, nav, output, ruby, section, summary,\\n time, mark, audio, video {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-size: 100%;\\n vertical-align: baseline;\\n }\\n /* HTML5 display-role reset for older browsers */\\n /* prettier-ignore */\\n article, aside, details, figcaption, figure, \\n footer, header, hgroup, menu, nav, section {\\n display: block;\\n }\\n body {\\n line-height: 1;\\n font-size: 16px;\\n }\\n ol,\\n ul {\\n list-style: disc;\\n list-style-position: inside;\\n }\\n blockquote,\\n q {\\n quotes: none;\\n }\\n blockquote:before,\\n blockquote:after,\\n q:before,\\n q:after {\\n content: none;\\n }\\n table {\\n border-collapse: collapse;\\n border-spacing: 0;\\n }\\n a {\\n color: inherit;\\n text-decoration: none;\\n }\\n [role=\\\"button\\\"] {\\n cursor: pointer;\\n }\\n *,\\n *::before,\\n *::after {\\n box-sizing: border-box;\\n }\\n * {\\n font-family: 'Kanit', sans-serif;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n }\\n\\n /* Number */\\n input::-webkit-outer-spin-button,\\n input::-webkit-inner-spin-button {\\n -webkit-appearance: none;\\n margin: 0;\\n }\\n input[type=number] {\\n -moz-appearance: textfield;\\n }\\n\\n /* Scrollbar */\\n ::-webkit-scrollbar {\\n width: 8px;\\n }\\n ::-webkit-scrollbar-thumb {\\n background: \",\n \"; \\n border-radius: 8px;\\n }\\n ::-webkit-scrollbar-track {\\n box-shadow: inset 0 0 5px \",\n \"; \\n border-radius: 10px;\\n }\\n\\n /* Slider */ \\n input[type=range] {\\n -webkit-appearance: none; /* Hides the slider so that custom slider can be made */\\n width: 100%; /* Specific width is required for Firefox. */\\n background: transparent; /* Otherwise white in Chrome */\\n }\\n input[type=range]::-webkit-slider-thumb {\\n -webkit-appearance: none;\\n }\\n input[type=range]:focus {\\n outline: none; /* Removes the blue border. You should probably do some kind of focus styling for accessibility reasons though. */\\n }\\n input[type=range]::-ms-track {\\n width: 100%;\\n cursor: pointer;\\n /* Hides the slider so custom styles can be added */\\n background: transparent; \\n border-color: transparent;\\n color: transparent;\\n } \\n\"\n ]);\n _templateObject = function _templateObject() {\n return data;\n };\n return data;\n}\nimport { createGlobalStyle } from \"styled-components\";\nvar ResetCSS = createGlobalStyle(_templateObject(), function(param) {\n var theme = param.theme;\n return theme.colors.textSubtle;\n}, function(param) {\n var theme = param.theme;\n return theme.colors.input;\n});\nexport default ResetCSS;\n","import _tagged_template_literal from \"@swc/helpers/src/_tagged_template_literal.mjs\";\nfunction _templateObject() {\n var data = _tagged_template_literal([\n \"\\n background-color: \",\n \";\\n border-radius: 16px 0 0 16px;\\n color: \",\n \";\\n padding: 12px;\\n\"\n ]);\n _templateObject = function _templateObject() {\n return data;\n };\n return data;\n}\nfunction _templateObject1() {\n var data = _tagged_template_literal([\n \"\\n flex: 1;\\n padding-bottom: 12px;\\n padding-left: 12px;\\n padding-right: \",\n \";\\n padding-top: 12px;\\n\"\n ]);\n _templateObject1 = function _templateObject1() {\n return data;\n };\n return data;\n}\nfunction _templateObject2() {\n var data = _tagged_template_literal([\n \"\\n border-radius: 0 16px 16px 0;\\n right: 8px;\\n position: absolute;\\n top: 8px;\\n\"\n ]);\n _templateObject2 = function _templateObject2() {\n return data;\n };\n return data;\n}\nfunction _templateObject3() {\n var data = _tagged_template_literal([\n \"\\n position: relative;\\n background-color: \",\n \";\\n border-radius: 16px;\\n box-shadow: 0px 20px 36px -8px rgba(14, 14, 44, 0.1), 0px 1px 1px rgba(0, 0, 0, 0.05);\\n\"\n ]);\n _templateObject3 = function _templateObject3() {\n return data;\n };\n return data;\n}\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React from \"react\";\nimport styled from \"styled-components\";\nimport CheckmarkCircleIcon from \"../Svg/Icons/CheckmarkCircle\";\nimport ErrorIcon from \"../Svg/Icons/Error\";\nimport BlockIcon from \"../Svg/Icons/Block\";\nimport InfoIcon from \"../Svg/Icons/Info\";\nimport { Text } from \"../Text\";\nimport { IconButton } from \"../Button\";\nimport { CloseIcon } from \"../Svg\";\nimport Flex from \"../Box/Flex\";\nimport { variants } from \"./types\";\nvar getThemeColor = function(param) {\n var theme = param.theme, _variant = param.variant, variant = _variant === void 0 ? variants.INFO : _variant;\n switch(variant){\n case variants.DANGER:\n return theme.colors.failure;\n case variants.WARNING:\n return theme.colors.warning;\n case variants.SUCCESS:\n return theme.colors.success;\n case variants.INFO:\n default:\n return theme.colors.secondary;\n }\n};\nvar getIcon = function() {\n var variant = arguments.length > 0 && arguments[0] !== void 0 ? arguments[0] : variants.INFO;\n switch(variant){\n case variants.DANGER:\n return BlockIcon;\n case variants.WARNING:\n return ErrorIcon;\n case variants.SUCCESS:\n return CheckmarkCircleIcon;\n case variants.INFO:\n default:\n return InfoIcon;\n }\n};\nvar IconLabel = styled.div.withConfig({\n componentId: \"sc-7fafca6f-0\"\n})(_templateObject(), getThemeColor, function(param) {\n var theme = param.theme;\n return theme.alert.background;\n});\nvar withHandlerSpacing = 32 + 12 + 8; // button size + inner spacing + handler position\nvar Details = styled.div.withConfig({\n componentId: \"sc-7fafca6f-1\"\n})(_templateObject1(), function(param) {\n var hasHandler = param.hasHandler;\n return hasHandler ? \"\".concat(withHandlerSpacing, \"px\") : \"12px\";\n});\nvar CloseHandler = styled.div.withConfig({\n componentId: \"sc-7fafca6f-2\"\n})(_templateObject2());\nvar StyledAlert = styled(Flex).withConfig({\n componentId: \"sc-7fafca6f-3\"\n})(_templateObject3(), function(param) {\n var theme = param.theme;\n return theme.alert.background;\n});\nvar Alert = function(param) {\n var title = param.title, children = param.children, variant = param.variant, onClick = param.onClick;\n var Icon = getIcon(variant);\n return /*#__PURE__*/ _jsxs(StyledAlert, {\n children: [\n /*#__PURE__*/ _jsx(IconLabel, {\n variant: variant,\n hasDescription: !!children,\n children: /*#__PURE__*/ _jsx(Icon, {\n color: \"currentColor\",\n width: \"24px\"\n })\n }),\n /*#__PURE__*/ _jsxs(Details, {\n hasHandler: !!onClick,\n children: [\n /*#__PURE__*/ _jsx(Text, {\n bold: true,\n children: title\n }),\n typeof children === \"string\" ? /*#__PURE__*/ _jsx(Text, {\n as: \"p\",\n children: children\n }) : children\n ]\n }),\n onClick && /*#__PURE__*/ _jsx(CloseHandler, {\n children: /*#__PURE__*/ _jsx(IconButton, {\n scale: \"sm\",\n variant: \"text\",\n onClick: onClick,\n children: /*#__PURE__*/ _jsx(CloseIcon, {\n width: \"24px\",\n color: \"currentColor\"\n })\n })\n })\n ]\n });\n};\nexport default Alert;\n","import { darkColors, lightColors } from \"../../theme/colors\";\nexport var light = {\n background: lightColors.backgroundAlt\n};\nexport var dark = {\n background: darkColors.backgroundAlt\n};\n","export var variants = {\n INFO: \"info\",\n DANGER: \"danger\",\n SUCCESS: \"success\",\n WARNING: \"warning\"\n};\n","/* eslint-disable import/prefer-default-export */ import _tagged_template_literal from \"@swc/helpers/src/_tagged_template_literal.mjs\";\nfunction _templateObject() {\n var data = _tagged_template_literal([\n \"\\n 0% {\\n transform: translateY(20%);\\n }\\n 100% {\\n transform: translateY(0%);\\n }\\n \"\n ]);\n _templateObject = function _templateObject() {\n return data;\n };\n return data;\n}\nfunction _templateObject1() {\n var data = _tagged_template_literal([\n \"\\n 0% {\\n transform: translateY(0%);\\n }\\n 100% {\\n transform: translateY(20%);\\n }\\n \"\n ]);\n _templateObject1 = function _templateObject1() {\n return data;\n };\n return data;\n}\nfunction _templateObject2() {\n var data = _tagged_template_literal([\n \"\\n animation: \",\n \" 350ms ease forwards;\\n \"\n ]);\n _templateObject2 = function _templateObject2() {\n return data;\n };\n return data;\n}\nfunction _templateObject3() {\n var data = _tagged_template_literal([\n \"\\n width: 100%;\\n height: 80vh;\\n bottom: 0;\\n background-color: \",\n \";\\n border-top-left-radius: 32px;\\n border-top-right-radius: 32px;\\n position: fixed;\\n animation: \",\n ' 350ms ease forwards;\\n padding-bottom: env(safe-area-inset-bottom);\\n html[data-useragent*=\"TokenPocket_iOS\"] & {\\n padding-bottom: 45px;\\n }\\n will-change: transform;\\n z-index: 21;\\n ',\n \"\\n\"\n ]);\n _templateObject3 = function _templateObject3() {\n return data;\n };\n return data;\n}\nimport styled, { keyframes, css } from \"styled-components\";\nexport var mountAnimation = keyframes(_templateObject());\nexport var unmountAnimation = keyframes(_templateObject1());\nexport var DrawerContainer = styled.div.withConfig({\n componentId: \"sc-a4321cba-0\"\n})(_templateObject3(), function(param) {\n var theme = param.theme;\n return theme.colors.backgroundAlt;\n}, mountAnimation, function(param) {\n var isUnmounting = param.isUnmounting;\n return isUnmounting && css(_templateObject2(), unmountAnimation);\n});\n","const isPoint = (point) => point.hasOwnProperty('x') && point.hasOwnProperty('y');\n\nexport { isPoint };\n","import { isPoint } from './is-point.mjs';\n\nconst isPoint3D = (point) => isPoint(point) && point.hasOwnProperty('z');\n\nexport { isPoint3D };\n","import { isPoint } from './is-point.mjs';\nimport { isPoint3D } from './is-point-3d.mjs';\nimport { isNum } from './inc.mjs';\n\nconst distance1D = (a, b) => Math.abs(a - b);\nfunction distance(a, b) {\n if (isNum(a) && isNum(b)) {\n return distance1D(a, b);\n }\n else if (isPoint(a) && isPoint(b)) {\n const xDelta = distance1D(a.x, b.x);\n const yDelta = distance1D(a.y, b.y);\n const zDelta = isPoint3D(a) && isPoint3D(b) ? distance1D(a.z, b.z) : 0;\n return Math.sqrt(Math.pow(xDelta, 2) + Math.pow(yDelta, 2) + Math.pow(zDelta, 2));\n }\n}\n\nexport { distance };\n","import { __assign } from 'tslib';\nimport { isMouseEvent, isTouchEvent } from './utils/event-type.mjs';\nimport { extractEventInfo } from '../events/event-info.mjs';\nimport sync, { getFrameData, cancelSync } from 'framesync';\nimport { secondsToMilliseconds } from '../utils/time-conversion.mjs';\nimport { addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { distance, pipe } from 'popmotion';\n\n/**\n * @internal\n */\nvar PanSession = /** @class */ (function () {\n function PanSession(event, handlers, _a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, transformPagePoint = _b.transformPagePoint;\n /**\n * @internal\n */\n this.startEvent = null;\n /**\n * @internal\n */\n this.lastMoveEvent = null;\n /**\n * @internal\n */\n this.lastMoveEventInfo = null;\n /**\n * @internal\n */\n this.handlers = {};\n this.updatePoint = function () {\n if (!(_this.lastMoveEvent && _this.lastMoveEventInfo))\n return;\n var info = getPanInfo(_this.lastMoveEventInfo, _this.history);\n var isPanStarted = _this.startEvent !== null;\n // Only start panning if the offset is larger than 3 pixels. If we make it\n // any larger than this we'll want to reset the pointer history\n // on the first update to avoid visual snapping to the cursoe.\n var isDistancePastThreshold = distance(info.offset, { x: 0, y: 0 }) >= 3;\n if (!isPanStarted && !isDistancePastThreshold)\n return;\n var point = info.point;\n var timestamp = getFrameData().timestamp;\n _this.history.push(__assign(__assign({}, point), { timestamp: timestamp }));\n var _a = _this.handlers, onStart = _a.onStart, onMove = _a.onMove;\n if (!isPanStarted) {\n onStart && onStart(_this.lastMoveEvent, info);\n _this.startEvent = _this.lastMoveEvent;\n }\n onMove && onMove(_this.lastMoveEvent, info);\n };\n this.handlePointerMove = function (event, info) {\n _this.lastMoveEvent = event;\n _this.lastMoveEventInfo = transformPoint(info, _this.transformPagePoint);\n // Because Safari doesn't trigger mouseup events when it's above a `\n \n\n \n \n Cancel\n \n\n \n Save\n \n \n \n `;\n }\n onEmailInputChange(event) {\n this.email = event.detail;\n }\n async onSubmitEmail(event) {\n try {\n if (this.loading) {\n return;\n }\n this.loading = true;\n event.preventDefault();\n const emailConnector = ConnectorController.getEmailConnector();\n if (!emailConnector) {\n throw new Error('w3m-update-email-wallet: Email connector not found');\n }\n await emailConnector.provider.updateEmail({ email: this.email });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_EDIT' });\n RouterController.replace('UpdateEmailWalletWaiting', { email: this.email });\n }\n catch (error) {\n SnackController.showError(error);\n this.loading = false;\n }\n }\n};\nW3mUpdateEmailWalletView.styles = styles;\n__decorate([\n state()\n], W3mUpdateEmailWalletView.prototype, \"email\", void 0);\n__decorate([\n state()\n], W3mUpdateEmailWalletView.prototype, \"loading\", void 0);\nW3mUpdateEmailWalletView = __decorate([\n customElement('w3m-update-email-wallet-view')\n], W3mUpdateEmailWalletView);\nexport { W3mUpdateEmailWalletView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-icon-box {\n height: var(--wui-icon-box-size-xl);\n width: var(--wui-icon-box-size-xl);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { RouterController, ConnectorController, SnackController } from '@web3modal/core';\nimport { state } from 'lit/decorators.js';\nlet W3mUpdateEmailWalletWaitingView = class W3mUpdateEmailWalletWaitingView extends LitElement {\n constructor() {\n super();\n this.email = RouterController.state.data?.email;\n this.emailConnector = ConnectorController.getEmailConnector();\n this.loading = false;\n this.listenForEmailUpdateApproval();\n }\n render() {\n if (!this.email) {\n throw new Error('w3m-update-email-wallet-waiting-view: No email provided');\n }\n if (!this.emailConnector) {\n throw new Error('w3m-update-email-wallet-waiting-view: No email connector provided');\n }\n return html `\n \n \n\n \n \n \n Approve verification link we sent to\n \n ${this.email}\n \n\n \n You will receive an approval request on your former mail to confirm the new one\n \n\n \n \n Didn't receive it?\n \n \n Resend email\n \n \n \n \n `;\n }\n async listenForEmailUpdateApproval() {\n if (this.emailConnector) {\n await this.emailConnector.provider.awaitUpdateEmail();\n RouterController.replace('Account');\n SnackController.showSuccess('Email updated');\n }\n }\n async onResendCode() {\n try {\n if (!this.loading) {\n if (!this.emailConnector || !this.email) {\n throw new Error('w3m-update-email-wallet-waiting-view: Unable to resend email');\n }\n this.loading = true;\n await this.emailConnector.provider.updateEmail({ email: this.email });\n this.listenForEmailUpdateApproval();\n SnackController.showSuccess('Code email resent');\n }\n }\n catch (error) {\n SnackController.showError(error);\n }\n finally {\n this.loading = false;\n }\n }\n};\nW3mUpdateEmailWalletWaitingView.styles = styles;\n__decorate([\n state()\n], W3mUpdateEmailWalletWaitingView.prototype, \"loading\", void 0);\nW3mUpdateEmailWalletWaitingView = __decorate([\n customElement('w3m-update-email-wallet-waiting-view')\n], W3mUpdateEmailWalletWaitingView);\nexport { W3mUpdateEmailWalletWaitingView };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-grid {\n max-height: clamp(360px, 400px, 80vh);\n overflow: scroll;\n scrollbar-width: none;\n grid-auto-rows: min-content;\n grid-template-columns: repeat(auto-fill, 76px);\n }\n\n @media (max-width: 435px) {\n wui-grid {\n grid-template-columns: repeat(auto-fill, 77px);\n }\n }\n\n wui-grid[data-scroll='false'] {\n overflow: hidden;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-spinner {\n padding-top: var(--wui-spacing-l);\n padding-bottom: var(--wui-spacing-l);\n justify-content: center;\n grid-column: 1 / span 4;\n }\n`;\n//# sourceMappingURL=styles.js.map","import { ConnectorController } from '@web3modal/core';\nexport function markWalletsAsInstalled(wallets) {\n const { connectors } = ConnectorController.state;\n const installedConnectors = connectors\n .filter(c => c.type === 'ANNOUNCED')\n .reduce((acum, val) => {\n if (!val.info?.rdns) {\n return acum;\n }\n acum[val.info.rdns] = true;\n return acum;\n }, {});\n const walletsWithInstalled = wallets.map(wallet => ({\n ...wallet,\n installed: Boolean(wallet.rdns) && Boolean(installedConnectors[wallet.rdns ?? ''])\n }));\n const sortedWallets = walletsWithInstalled.sort((a, b) => Number(b.installed) - Number(a.installed));\n return sortedWallets;\n}\n//# sourceMappingURL=markWalletsAsInstalled.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ApiController, AssetUtil, ConnectorController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { markWalletsAsInstalled } from '../../utils/markWalletsAsInstalled.js';\nconst PAGINATOR_ID = 'local-paginator';\nlet W3mAllWalletsList = class W3mAllWalletsList extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.paginationObserver = undefined;\n this.initial = !ApiController.state.wallets.length;\n this.wallets = ApiController.state.wallets;\n this.recommended = ApiController.state.recommended;\n this.featured = ApiController.state.featured;\n this.unsubscribe.push(...[\n ApiController.subscribeKey('wallets', val => (this.wallets = val)),\n ApiController.subscribeKey('recommended', val => (this.recommended = val)),\n ApiController.subscribeKey('featured', val => (this.featured = val))\n ]);\n }\n firstUpdated() {\n this.initialFetch();\n this.createPaginationObserver();\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n this.paginationObserver?.disconnect();\n }\n render() {\n return html `\n \n ${this.initial ? this.shimmerTemplate(16) : this.walletsTemplate()}\n ${this.paginationLoaderTemplate()}\n \n `;\n }\n async initialFetch() {\n const gridEl = this.shadowRoot?.querySelector('wui-grid');\n if (this.initial && gridEl) {\n await ApiController.fetchWallets({ page: 1 });\n await gridEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.initial = false;\n gridEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n shimmerTemplate(items, id) {\n return [...Array(items)].map(() => html `\n \n `);\n }\n walletsTemplate() {\n const wallets = [...this.featured, ...this.recommended, ...this.wallets];\n const walletsWithInstalled = markWalletsAsInstalled(wallets);\n return walletsWithInstalled.map(wallet => html `\n this.onConnectWallet(wallet)}\n .installed=${wallet.installed}\n >\n `);\n }\n paginationLoaderTemplate() {\n const { wallets, recommended, featured, count } = ApiController.state;\n const columns = window.innerWidth < 352 ? 3 : 4;\n const currentWallets = wallets.length + recommended.length;\n const minimumRows = Math.ceil(currentWallets / columns);\n let shimmerCount = minimumRows * columns - currentWallets + columns;\n shimmerCount -= wallets.length ? featured.length % columns : 0;\n if (count === 0 && featured.length > 0) {\n return null;\n }\n if (count === 0 || [...featured, ...wallets, ...recommended].length < count) {\n return this.shimmerTemplate(shimmerCount, PAGINATOR_ID);\n }\n return null;\n }\n createPaginationObserver() {\n const loaderEl = this.shadowRoot?.querySelector(`#${PAGINATOR_ID}`);\n if (loaderEl) {\n this.paginationObserver = new IntersectionObserver(([element]) => {\n if (element?.isIntersecting && !this.initial) {\n const { page, count, wallets } = ApiController.state;\n if (wallets.length < count) {\n ApiController.fetchWallets({ page: page + 1 });\n }\n }\n });\n this.paginationObserver.observe(loaderEl);\n }\n }\n onConnectWallet(wallet) {\n const { connectors } = ConnectorController.state;\n const connector = connectors.find(({ explorerId }) => explorerId === wallet.id);\n if (connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n else {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n }\n};\nW3mAllWalletsList.styles = styles;\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"initial\", void 0);\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"wallets\", void 0);\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"recommended\", void 0);\n__decorate([\n state()\n], W3mAllWalletsList.prototype, \"featured\", void 0);\nW3mAllWalletsList = __decorate([\n customElement('w3m-all-wallets-list')\n], W3mAllWalletsList);\nexport { W3mAllWalletsList };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-grid,\n wui-loading-spinner,\n wui-flex {\n height: 360px;\n }\n\n wui-grid {\n overflow: scroll;\n scrollbar-width: none;\n grid-auto-rows: min-content;\n }\n\n wui-grid[data-scroll='false'] {\n overflow: hidden;\n }\n\n wui-grid::-webkit-scrollbar {\n display: none;\n }\n\n wui-loading-spinner {\n justify-content: center;\n align-items: center;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ApiController, AssetUtil, ConnectorController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './styles.js';\nimport { markWalletsAsInstalled } from '../../utils/markWalletsAsInstalled.js';\nlet W3mAllWalletsSearch = class W3mAllWalletsSearch extends LitElement {\n constructor() {\n super(...arguments);\n this.prevQuery = '';\n this.loading = true;\n this.query = '';\n }\n render() {\n this.onSearch();\n return this.loading\n ? html ``\n : this.walletsTemplate();\n }\n async onSearch() {\n if (this.query !== this.prevQuery) {\n this.prevQuery = this.query;\n this.loading = true;\n await ApiController.searchWallet({ search: this.query });\n this.loading = false;\n }\n }\n walletsTemplate() {\n const { search } = ApiController.state;\n const wallets = markWalletsAsInstalled(search);\n if (!search.length) {\n return html `\n \n \n No Wallet found\n \n `;\n }\n return html `\n \n ${wallets.map(wallet => html `\n this.onConnectWallet(wallet)}\n .installed=${wallet.installed}\n >\n `)}\n \n `;\n }\n onConnectWallet(wallet) {\n const { connectors } = ConnectorController.state;\n const connector = connectors.find(({ explorerId }) => explorerId === wallet.id);\n if (connector) {\n RouterController.push('ConnectingExternal', { connector });\n }\n else {\n RouterController.push('ConnectingWalletConnect', { wallet });\n }\n }\n};\nW3mAllWalletsSearch.styles = styles;\n__decorate([\n state()\n], W3mAllWalletsSearch.prototype, \"loading\", void 0);\n__decorate([\n property()\n], W3mAllWalletsSearch.prototype, \"query\", void 0);\nW3mAllWalletsSearch = __decorate([\n customElement('w3m-all-wallets-search')\n], W3mAllWalletsSearch);\nexport { W3mAllWalletsSearch };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ConnectionController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nlet W3mConnectingHeader = class W3mConnectingHeader extends LitElement {\n constructor() {\n super();\n this.platformTabs = [];\n this.unsubscribe = [];\n this.platforms = [];\n this.onSelectPlatfrom = undefined;\n this.buffering = false;\n this.unsubscribe.push(ConnectionController.subscribeKey('buffering', val => (this.buffering = val)));\n }\n disconnectCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const tabs = this.generateTabs();\n return html `\n \n \n \n `;\n }\n generateTabs() {\n const tabs = this.platforms.map(platform => {\n if (platform === 'browser') {\n return { label: 'Browser', icon: 'extension', platform: 'browser' };\n }\n else if (platform === 'mobile') {\n return { label: 'Mobile', icon: 'mobile', platform: 'mobile' };\n }\n else if (platform === 'qrcode') {\n return { label: 'Mobile', icon: 'mobile', platform: 'qrcode' };\n }\n else if (platform === 'web') {\n return { label: 'Webapp', icon: 'browser', platform: 'web' };\n }\n else if (platform === 'desktop') {\n return { label: 'Desktop', icon: 'desktop', platform: 'desktop' };\n }\n return { label: 'Browser', icon: 'extension', platform: 'unsupported' };\n });\n this.platformTabs = tabs.map(({ platform }) => platform);\n return tabs;\n }\n onTabChange(index) {\n const tab = this.platformTabs[index];\n if (tab) {\n this.onSelectPlatfrom?.(tab);\n }\n }\n};\n__decorate([\n property({ type: Array })\n], W3mConnectingHeader.prototype, \"platforms\", void 0);\n__decorate([\n property()\n], W3mConnectingHeader.prototype, \"onSelectPlatfrom\", void 0);\n__decorate([\n state()\n], W3mConnectingHeader.prototype, \"buffering\", void 0);\nW3mConnectingHeader = __decorate([\n customElement('w3m-connecting-header')\n], W3mConnectingHeader);\nexport { W3mConnectingHeader };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ConnectionController, ConnectorController, EventsController, ModalController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcBrowser = class W3mConnectingWcBrowser extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-browser: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onAutoConnect = this.onConnectProxy.bind(this);\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'browser' }\n });\n }\n async onConnectProxy() {\n try {\n this.error = false;\n const { connectors } = ConnectorController.state;\n const announcedConnector = connectors.find(c => c.type === 'ANNOUNCED' && c.info?.rdns === this.wallet?.rdns);\n const injectedConnector = connectors.find(c => c.type === 'INJECTED');\n if (announcedConnector) {\n await ConnectionController.connectExternal(announcedConnector);\n }\n else if (injectedConnector) {\n await ConnectionController.connectExternal(injectedConnector);\n }\n ModalController.close();\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_SUCCESS',\n properties: { method: 'browser' }\n });\n }\n catch (error) {\n EventsController.sendEvent({\n type: 'track',\n event: 'CONNECT_ERROR',\n properties: { message: error?.message ?? 'Unknown' }\n });\n this.error = true;\n }\n }\n};\nW3mConnectingWcBrowser = __decorate([\n customElement('w3m-connecting-wc-browser')\n], W3mConnectingWcBrowser);\nexport { W3mConnectingWcBrowser };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ConnectionController, CoreHelperUtil, EventsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcDesktop = class W3mConnectingWcDesktop extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-desktop: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onRender = this.onRenderProxy.bind(this);\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'desktop' }\n });\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.ready = true;\n this.timeout = setTimeout(() => {\n this.onConnect?.();\n }, 200);\n }\n }\n onConnectProxy() {\n if (this.wallet?.desktop_link && this.uri) {\n try {\n this.error = false;\n const { desktop_link, name } = this.wallet;\n const { redirect, href } = CoreHelperUtil.formatNativeUrl(desktop_link, this.uri);\n ConnectionController.setWcLinking({ name, href });\n ConnectionController.setRecentWallet(this.wallet);\n CoreHelperUtil.openHref(redirect, '_blank');\n }\n catch {\n this.error = true;\n }\n }\n }\n};\nW3mConnectingWcDesktop = __decorate([\n customElement('w3m-connecting-wc-desktop')\n], W3mConnectingWcDesktop);\nexport { W3mConnectingWcDesktop };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ConnectionController, CoreHelperUtil, EventsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcMobile = class W3mConnectingWcMobile extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-mobile: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.onRender = this.onRenderProxy.bind(this);\n document.addEventListener('visibilitychange', this.onBuffering.bind(this));\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'mobile' }\n });\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('visibilitychange', this.onBuffering.bind(this));\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.ready = true;\n this.onConnect?.();\n }\n }\n onConnectProxy() {\n if (this.wallet?.mobile_link && this.uri) {\n try {\n this.error = false;\n const { mobile_link, name } = this.wallet;\n const { redirect, href } = CoreHelperUtil.formatNativeUrl(mobile_link, this.uri);\n ConnectionController.setWcLinking({ name, href });\n ConnectionController.setRecentWallet(this.wallet);\n CoreHelperUtil.openHref(redirect, '_self');\n }\n catch {\n this.error = true;\n }\n }\n }\n onBuffering() {\n const isIos = CoreHelperUtil.isIos();\n if (document?.visibilityState === 'visible' && !this.error && isIos) {\n ConnectionController.setBuffering(true);\n setTimeout(() => {\n ConnectionController.setBuffering(false);\n }, 5000);\n }\n }\n};\nW3mConnectingWcMobile = __decorate([\n customElement('w3m-connecting-wc-mobile')\n], W3mConnectingWcMobile);\nexport { W3mConnectingWcMobile };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n @keyframes fadein {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n }\n\n wui-shimmer {\n width: 100%;\n aspect-ratio: 1 / 1;\n border-radius: clamp(0px, var(--wui-border-radius-l), 40px) !important;\n }\n\n wui-qr-code {\n opacity: 0;\n animation-duration: 200ms;\n animation-timing-function: ease;\n animation-name: fadein;\n animation-fill-mode: forwards;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { AssetUtil, ConnectionController, EventsController, ThemeController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nimport styles from './styles.js';\nlet W3mConnectingWcQrcode = class W3mConnectingWcQrcode extends W3mConnectingWidget {\n constructor() {\n super();\n this.forceUpdate = () => {\n this.requestUpdate();\n };\n window.addEventListener('resize', this.forceUpdate);\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet?.name ?? 'WalletConnect', platform: 'qrcode' }\n });\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('resize', this.forceUpdate);\n }\n render() {\n this.onRenderProxy();\n return html `\n \n ${this.qrCodeTemplate()} \n\n \n Scan this QR Code with your phone\n \n ${this.copyTemplate()}\n \n\n \n `;\n }\n onRenderProxy() {\n if (!this.ready && this.uri) {\n this.timeout = setTimeout(() => {\n this.ready = true;\n }, 200);\n }\n }\n qrCodeTemplate() {\n if (!this.uri || !this.ready) {\n return null;\n }\n const size = this.getBoundingClientRect().width - 40;\n const alt = this.wallet ? this.wallet.name : undefined;\n ConnectionController.setWcLinking(undefined);\n ConnectionController.setRecentWallet(this.wallet);\n return html ` `;\n }\n copyTemplate() {\n const inactive = !this.uri || !this.ready;\n return html `\n \n Copy link\n `;\n }\n};\nW3mConnectingWcQrcode.styles = styles;\nW3mConnectingWcQrcode = __decorate([\n customElement('w3m-connecting-wc-qrcode')\n], W3mConnectingWcQrcode);\nexport { W3mConnectingWcQrcode };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: flex;\n justify-content: center;\n gap: var(--wui-spacing-2xl);\n }\n\n wui-visual-thumbnail:nth-child(1) {\n z-index: 1;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nimport { OptionsController, StorageUtil } from '@web3modal/core';\nlet W3mConnectingSiwe = class W3mConnectingSiwe extends LitElement {\n constructor() {\n super(...arguments);\n this.dappImageUrl = OptionsController.state.metadata?.icons;\n this.walletImageUrl = StorageUtil.getConnectedWalletImageUrl();\n }\n firstUpdated() {\n const visuals = this.shadowRoot?.querySelectorAll('wui-visual-thumbnail');\n if (visuals?.[0]) {\n this.createAnimation(visuals[0], 'translate(18px)');\n }\n if (visuals?.[1]) {\n this.createAnimation(visuals[1], 'translate(-18px)');\n }\n }\n render() {\n return html `\n \n \n `;\n }\n createAnimation(element, translation) {\n element.animate([{ transform: 'translateX(0px)' }, { transform: translation }], {\n duration: 1600,\n easing: 'cubic-bezier(0.56, 0, 0.48, 1)',\n direction: 'alternate',\n iterations: Infinity\n });\n }\n};\nW3mConnectingSiwe.styles = styles;\nW3mConnectingSiwe = __decorate([\n customElement('w3m-connecting-siwe')\n], W3mConnectingSiwe);\nexport { W3mConnectingSiwe };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { AssetUtil, EventsController, RouterController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nlet W3mConnectingWcUnsupported = class W3mConnectingWcUnsupported extends LitElement {\n constructor() {\n super();\n this.wallet = RouterController.state.data?.wallet;\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-unsupported: No wallet provided');\n }\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'browser' }\n });\n }\n render() {\n return html `\n \n \n\n Not Detected\n \n\n \n `;\n }\n};\nW3mConnectingWcUnsupported = __decorate([\n customElement('w3m-connecting-wc-unsupported')\n], W3mConnectingWcUnsupported);\nexport { W3mConnectingWcUnsupported };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ConnectionController, CoreHelperUtil, EventsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { W3mConnectingWidget } from '../../utils/w3m-connecting-widget/index.js';\nlet W3mConnectingWcWeb = class W3mConnectingWcWeb extends W3mConnectingWidget {\n constructor() {\n super();\n if (!this.wallet) {\n throw new Error('w3m-connecting-wc-web: No wallet provided');\n }\n this.onConnect = this.onConnectProxy.bind(this);\n this.secondaryBtnLabel = 'Open';\n this.secondaryLabel = 'Open and continue in a new browser tab';\n this.secondaryBtnIcon = 'externalLink';\n EventsController.sendEvent({\n type: 'track',\n event: 'SELECT_WALLET',\n properties: { name: this.wallet.name, platform: 'web' }\n });\n }\n onConnectProxy() {\n if (this.wallet?.webapp_link && this.uri) {\n try {\n this.error = false;\n const { webapp_link, name } = this.wallet;\n const { redirect, href } = CoreHelperUtil.formatUniversalUrl(webapp_link, this.uri);\n ConnectionController.setWcLinking({ name, href });\n ConnectionController.setRecentWallet(this.wallet);\n CoreHelperUtil.openHref(redirect, '_blank');\n }\n catch {\n this.error = true;\n }\n }\n }\n};\nW3mConnectingWcWeb = __decorate([\n customElement('w3m-connecting-wc-web')\n], W3mConnectingWcWeb);\nexport { W3mConnectingWcWeb };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-icon-link[data-hidden='true'] {\n opacity: 0 !important;\n pointer-events: none;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ConnectionController, ConnectorController, EventsController, ModalController, RouterController, SIWEController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nfunction headings() {\n const connectorName = RouterController.state.data?.connector?.name;\n const walletName = RouterController.state.data?.wallet?.name;\n const networkName = RouterController.state.data?.network?.name;\n const name = walletName ?? connectorName;\n const connectors = ConnectorController.getConnectors();\n const isEmail = connectors.length === 1 && connectors[0]?.id === 'w3m-email';\n return {\n Connect: `Connect ${isEmail ? 'Email' : ''} Wallet`,\n Account: undefined,\n ConnectingExternal: name ?? 'Connect Wallet',\n ConnectingWalletConnect: name ?? 'WalletConnect',\n ConnectingSiwe: 'Sign In',\n Networks: 'Choose Network',\n SwitchNetwork: networkName ?? 'Switch Network',\n AllWallets: 'All Wallets',\n WhatIsANetwork: 'What is a network?',\n WhatIsAWallet: 'What is a wallet?',\n GetWallet: 'Get a wallet',\n Downloads: name ? `Get ${name}` : 'Downloads',\n EmailVerifyOtp: 'Confirm Email',\n EmailVerifyDevice: 'Register Device',\n ApproveTransaction: 'Approve Transaction',\n Transactions: 'Activity',\n UpgradeEmailWallet: 'Upgrade your Wallet',\n UpdateEmailWallet: 'Edit Email',\n UpdateEmailWalletWaiting: 'Approve Email'\n };\n}\nlet W3mHeader = class W3mHeader extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.heading = headings()[RouterController.state.view];\n this.buffering = false;\n this.showBack = false;\n this.unsubscribe.push(RouterController.subscribeKey('view', val => {\n this.onViewChange(val);\n this.onHistoryChange();\n }), ConnectionController.subscribeKey('buffering', val => (this.buffering = val)));\n }\n disconnectCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n return html `\n \n ${this.dynamicButtonTemplate()} ${this.titleTemplate()}\n \n \n ${this.separatorTemplate()}\n `;\n }\n onWalletHelp() {\n EventsController.sendEvent({ type: 'track', event: 'CLICK_WALLET_HELP' });\n RouterController.push('WhatIsAWallet');\n }\n async onClose() {\n if (SIWEController.state.isSiweEnabled && SIWEController.state.status !== 'success') {\n await ConnectionController.disconnect();\n }\n ModalController.close();\n }\n titleTemplate() {\n return html `${this.heading}`;\n }\n dynamicButtonTemplate() {\n const { view } = RouterController.state;\n const isConnectHelp = view === 'Connect';\n const isApproveTransaction = view === 'ApproveTransaction';\n if (this.showBack && !isApproveTransaction) {\n return html ``;\n }\n return html ``;\n }\n separatorTemplate() {\n if (!this.heading) {\n return null;\n }\n return html ``;\n }\n getPadding() {\n if (this.heading) {\n return ['l', '2l', 'l', '2l'];\n }\n return ['l', '2l', '0', '2l'];\n }\n async onViewChange(view) {\n const headingEl = this.shadowRoot?.querySelector('wui-text');\n if (headingEl) {\n const preset = headings()[view];\n await headingEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.heading = preset;\n headingEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n async onHistoryChange() {\n const { history } = RouterController.state;\n const buttonEl = this.shadowRoot?.querySelector('#dynamic');\n if (history.length > 1 && !this.showBack && buttonEl) {\n await buttonEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.showBack = true;\n buttonEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n else if (history.length <= 1 && this.showBack && buttonEl) {\n await buttonEl.animate([{ opacity: 1 }, { opacity: 0 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n }).finished;\n this.showBack = false;\n buttonEl.animate([{ opacity: 0 }, { opacity: 1 }], {\n duration: 200,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n onGoBack() {\n if (RouterController.state.view === 'ConnectingSiwe') {\n RouterController.push('Connect');\n }\n else {\n RouterController.goBack();\n }\n }\n};\nW3mHeader.styles = [styles];\n__decorate([\n state()\n], W3mHeader.prototype, \"heading\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"buffering\", void 0);\n__decorate([\n state()\n], W3mHeader.prototype, \"showBack\", void 0);\nW3mHeader = __decorate([\n customElement('w3m-header')\n], W3mHeader);\nexport { W3mHeader };\n//# sourceMappingURL=index.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nlet W3mHelpWidget = class W3mHelpWidget extends LitElement {\n constructor() {\n super(...arguments);\n this.data = [];\n }\n render() {\n return html `\n \n ${this.data.map(item => html `\n \n \n ${item.images.map(image => html ``)}\n \n \n \n \n ${item.title}\n \n ${item.text}\n \n `)}\n \n `;\n }\n};\n__decorate([\n property({ type: Array })\n], W3mHelpWidget.prototype, \"data\", void 0);\nW3mHelpWidget = __decorate([\n customElement('w3m-help-widget')\n], W3mHelpWidget);\nexport { W3mHelpWidget };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-flex {\n background-color: var(--wui-gray-glass-005);\n }\n\n a {\n text-decoration: none;\n color: var(--wui-color-fg-175);\n font-weight: 500;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { OptionsController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport styles from './styles.js';\nlet W3mLegalFooter = class W3mLegalFooter extends LitElement {\n render() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n if (!termsConditionsUrl && !privacyPolicyUrl) {\n return null;\n }\n return html `\n \n \n By connecting your wallet, you agree to our
\n ${this.termsTemplate()} ${this.andTemplate()} ${this.privacyTemplate()}\n
\n
\n `;\n }\n andTemplate() {\n const { termsConditionsUrl, privacyPolicyUrl } = OptionsController.state;\n return termsConditionsUrl && privacyPolicyUrl ? 'and' : '';\n }\n termsTemplate() {\n const { termsConditionsUrl } = OptionsController.state;\n if (!termsConditionsUrl) {\n return null;\n }\n return html `
Terms of Service`;\n }\n privacyTemplate() {\n const { privacyPolicyUrl } = OptionsController.state;\n if (!privacyPolicyUrl) {\n return null;\n }\n return html `Privacy Policy`;\n }\n};\nW3mLegalFooter.styles = [styles];\nW3mLegalFooter = __decorate([\n customElement('w3m-legal-footer')\n], W3mLegalFooter);\nexport { W3mLegalFooter };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n padding: 0 var(--wui-spacing-xl) var(--wui-spacing-xl);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { CoreHelperUtil, RouterController } from '@web3modal/core';\nimport { UiHelperUtil, customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport styles from './styles.js';\nlet W3mMobileDownloadLinks = class W3mMobileDownloadLinks extends LitElement {\n constructor() {\n super(...arguments);\n this.wallet = undefined;\n }\n render() {\n if (!this.wallet) {\n this.style.display = 'none';\n return null;\n }\n const { name, app_store, play_store, chrome_store, homepage } = this.wallet;\n const isMobile = CoreHelperUtil.isMobile();\n const isIos = CoreHelperUtil.isIos();\n const isAndroid = CoreHelperUtil.isAndroid();\n const isMultiple = [app_store, play_store, homepage, chrome_store].filter(Boolean).length > 1;\n const shortName = UiHelperUtil.getTruncateString({\n string: name,\n charsStart: 12,\n charsEnd: 0,\n truncate: 'end'\n });\n if (isMultiple && !isMobile) {\n return html `\n RouterController.push('Downloads', { wallet: this.wallet })}\n >\n `;\n }\n if (!isMultiple && homepage) {\n return html `\n \n `;\n }\n if (app_store && isIos) {\n return html `\n \n `;\n }\n if (play_store && isAndroid) {\n return html `\n \n `;\n }\n this.style.display = 'none';\n return null;\n }\n onAppStore() {\n if (this.wallet?.app_store) {\n CoreHelperUtil.openHref(this.wallet.app_store, '_blank');\n }\n }\n onPlayStore() {\n if (this.wallet?.play_store) {\n CoreHelperUtil.openHref(this.wallet.play_store, '_blank');\n }\n }\n onHomePage() {\n if (this.wallet?.homepage) {\n CoreHelperUtil.openHref(this.wallet.homepage, '_blank');\n }\n }\n};\nW3mMobileDownloadLinks.styles = [styles];\n__decorate([\n property({ type: Object })\n], W3mMobileDownloadLinks.prototype, \"wallet\", void 0);\nW3mMobileDownloadLinks = __decorate([\n customElement('w3m-mobile-download-links')\n], W3mMobileDownloadLinks);\nexport { W3mMobileDownloadLinks };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n :host {\n display: block;\n position: absolute;\n opacity: 0;\n pointer-events: none;\n top: 11px;\n left: 50%;\n width: max-content;\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { SnackController } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport styles from './styles.js';\nconst presets = {\n success: {\n backgroundColor: 'success-100',\n iconColor: 'success-100',\n icon: 'checkmark'\n },\n error: {\n backgroundColor: 'error-100',\n iconColor: 'error-100',\n icon: 'close'\n }\n};\nlet W3mSnackBar = class W3mSnackBar extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.timeout = undefined;\n this.open = SnackController.state.open;\n this.unsubscribe.push(SnackController.subscribeKey('open', val => {\n this.open = val;\n this.onOpen();\n }));\n }\n disconnectedCallback() {\n clearTimeout(this.timeout);\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n render() {\n const { message, variant } = SnackController.state;\n const preset = presets[variant];\n return html `\n \n `;\n }\n onOpen() {\n clearTimeout(this.timeout);\n if (this.open) {\n this.animate([\n { opacity: 0, transform: 'translateX(-50%) scale(0.85)' },\n { opacity: 1, transform: 'translateX(-50%) scale(1)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n this.timeout = setTimeout(() => SnackController.hide(), 2500);\n }\n else {\n this.animate([\n { opacity: 1, transform: 'translateX(-50%) scale(1)' },\n { opacity: 0, transform: 'translateX(-50%) scale(0.85)' }\n ], {\n duration: 150,\n fill: 'forwards',\n easing: 'ease'\n });\n }\n }\n};\nW3mSnackBar.styles = styles;\n__decorate([\n state()\n], W3mSnackBar.prototype, \"open\", void 0);\nW3mSnackBar = __decorate([\n customElement('w3m-snackbar')\n], W3mSnackBar);\nexport { W3mSnackBar };\n//# sourceMappingURL=index.js.map","import { css } from 'lit';\nexport default css `\n wui-separator {\n margin: var(--wui-spacing-s) calc(var(--wui-spacing-s) * -1);\n width: calc(100% + var(--wui-spacing-s) * 2);\n }\n\n wui-email-input {\n width: 100%;\n }\n\n form {\n width: 100%;\n display: block;\n position: relative;\n }\n\n wui-icon-link,\n wui-loading-spinner {\n position: absolute;\n top: 21px;\n transform: translateY(-50%);\n }\n\n wui-icon-link {\n right: var(--wui-spacing-xs);\n }\n\n wui-loading-spinner {\n right: var(--wui-spacing-m);\n }\n\n .alphaBanner {\n padding: 10px 12px 10px 10px;\n border-radius: var(--wui-border-radius-s);\n background: var(--wui-accent-glass-010);\n margin-bottom: var(--wui-spacing-s);\n }\n`;\n//# sourceMappingURL=styles.js.map","var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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};\nimport { ConnectorController, CoreHelperUtil } from '@web3modal/core';\nimport { customElement } from '@web3modal/ui';\nimport { LitElement, html } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { ref, createRef } from 'lit/directives/ref.js';\nimport styles from './styles.js';\nimport { SnackController, RouterController, EventsController } from '@web3modal/core';\nlet W3mEmailLoginWidget = class W3mEmailLoginWidget extends LitElement {\n constructor() {\n super();\n this.unsubscribe = [];\n this.formRef = createRef();\n this.connectors = ConnectorController.state.connectors;\n this.email = '';\n this.loading = false;\n this.error = '';\n this.unsubscribe.push(ConnectorController.subscribeKey('connectors', val => (this.connectors = val)));\n }\n disconnectedCallback() {\n this.unsubscribe.forEach(unsubscribe => unsubscribe());\n }\n firstUpdated() {\n this.formRef.value?.addEventListener('keydown', event => {\n if (event.key === 'Enter') {\n this.onSubmitEmail(event);\n }\n });\n }\n render() {\n const multipleConnectors = this.connectors.length > 1;\n const connector = this.connectors.find(c => c.type === 'EMAIL');\n if (!connector) {\n return null;\n }\n return html `\n ${this.alphaWarningTemplate()}\n
\n \n \n\n ${this.submitButtonTemplate()}${this.loadingTemplate()}\n \n \n\n ${multipleConnectors ? html `` : null}\n `;\n }\n alphaWarningTemplate() {\n const showAlphaWarning = true;\n return showAlphaWarning\n ? html `\n \n \n \n This is an alpha version to test before launch\n \n \n `\n : null;\n }\n submitButtonTemplate() {\n const showSubmit = !this.loading && this.email.length > 3;\n return showSubmit\n ? html `\n \n \n `\n : null;\n }\n loadingTemplate() {\n return this.loading\n ? html ``\n : null;\n }\n onEmailInputChange(event) {\n this.email = event.detail;\n this.error = '';\n }\n async onSubmitEmail(event) {\n try {\n if (this.loading) {\n return;\n }\n this.loading = true;\n event.preventDefault();\n const emailConnector = ConnectorController.getEmailConnector();\n if (!emailConnector) {\n throw new Error('w3m-email-login-widget: Email connector not found');\n }\n const { action } = await emailConnector.provider.connectEmail({ email: this.email });\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_SUBMITTED' });\n if (action === 'VERIFY_OTP') {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_VERIFICATION_CODE_SENT' });\n RouterController.push('EmailVerifyOtp', { email: this.email });\n }\n else if (action === 'VERIFY_DEVICE') {\n RouterController.push('EmailVerifyDevice', { email: this.email });\n }\n }\n catch (error) {\n const parsedError = CoreHelperUtil.parseError(error);\n if (parsedError?.includes('Invalid email')) {\n this.error = 'Invalid email. Try again.';\n }\n else {\n SnackController.showError(error);\n }\n }\n finally {\n this.loading = false;\n }\n }\n onFocusEvent() {\n EventsController.sendEvent({ type: 'track', event: 'EMAIL_LOGIN_SELECTED' });\n }\n};\nW3mEmailLoginWidget.styles = styles;\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"connectors\", void 0);\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"email\", void 0);\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"loading\", void 0);\n__decorate([\n state()\n], W3mEmailLoginWidget.prototype, \"error\", void 0);\nW3mEmailLoginWidget = __decorate([\n customElement('w3m-email-login-widget')\n], W3mEmailLoginWidget);\nexport { W3mEmailLoginWidget };\n//# sourceMappingURL=index.js.map","import { AccountController, BlockchainApiController, ConnectionController, ConnectorController, CoreHelperUtil, EventsController, ModalController, NetworkController, OptionsController, PublicStateController, ThemeController, SIWEController } from '@web3modal/core';\nimport { setColorTheme, setThemeVariables } from '@web3modal/ui';\nlet isInitialized = false;\nexport class Web3ModalScaffold {\n constructor(options) {\n this.initPromise = undefined;\n this.setIsConnected = isConnected => {\n AccountController.setIsConnected(isConnected);\n };\n this.setCaipAddress = caipAddress => {\n AccountController.setCaipAddress(caipAddress);\n };\n this.setBalance = (balance, balanceSymbol) => {\n AccountController.setBalance(balance, balanceSymbol);\n };\n this.setProfileName = profileName => {\n AccountController.setProfileName(profileName);\n };\n this.setProfileImage = profileImage => {\n AccountController.setProfileImage(profileImage);\n };\n this.resetAccount = () => {\n AccountController.resetAccount();\n };\n this.setCaipNetwork = caipNetwork => {\n NetworkController.setCaipNetwork(caipNetwork);\n };\n this.getCaipNetwork = () => NetworkController.state.caipNetwork;\n this.setRequestedCaipNetworks = requestedCaipNetworks => {\n NetworkController.setRequestedCaipNetworks(requestedCaipNetworks);\n };\n this.getApprovedCaipNetworksData = () => NetworkController.getApprovedCaipNetworksData();\n this.resetNetwork = () => {\n NetworkController.resetNetwork();\n };\n this.setConnectors = connectors => {\n ConnectorController.setConnectors(connectors);\n };\n this.addConnector = connector => {\n ConnectorController.addConnector(connector);\n };\n this.getConnectors = () => ConnectorController.getConnectors();\n this.resetWcConnection = () => {\n ConnectionController.resetWcConnection();\n };\n this.fetchIdentity = request => BlockchainApiController.fetchIdentity(request);\n this.setAddressExplorerUrl = addressExplorerUrl => {\n AccountController.setAddressExplorerUrl(addressExplorerUrl);\n };\n this.setSIWENonce = nonce => {\n SIWEController.setNonce(nonce);\n };\n this.setSIWESession = session => {\n SIWEController.setSession(session);\n };\n this.setSIWEStatus = status => {\n SIWEController.setStatus(status);\n };\n this.setSIWEMessage = message => {\n SIWEController.setMessage(message);\n };\n this.initControllers(options);\n this.initOrContinue();\n }\n async open(options) {\n await this.initOrContinue();\n ModalController.open(options);\n }\n async close() {\n await this.initOrContinue();\n ModalController.close();\n }\n setLoading(loading) {\n ModalController.setLoading(loading);\n }\n getThemeMode() {\n return ThemeController.state.themeMode;\n }\n getThemeVariables() {\n return ThemeController.state.themeVariables;\n }\n setThemeMode(themeMode) {\n ThemeController.setThemeMode(themeMode);\n setColorTheme(ThemeController.state.themeMode);\n try {\n const emailConnector = ConnectorController.getEmailConnector();\n if (emailConnector) {\n emailConnector.provider.syncTheme({\n themeMode: ThemeController.getSnapshot().themeMode\n });\n }\n }\n catch {\n console.info('Unable to sync theme to email connector');\n }\n }\n setThemeVariables(themeVariables) {\n ThemeController.setThemeVariables(themeVariables);\n setThemeVariables(ThemeController.state.themeVariables);\n try {\n const emailConnector = ConnectorController.getEmailConnector();\n if (emailConnector) {\n emailConnector.provider.syncTheme({\n themeVariables: ThemeController.getSnapshot().themeVariables\n });\n }\n }\n catch {\n console.info('Unable to sync theme to email connector');\n }\n }\n subscribeTheme(callback) {\n return ThemeController.subscribe(callback);\n }\n getState() {\n return { ...PublicStateController.state };\n }\n subscribeState(callback) {\n return PublicStateController.subscribe(callback);\n }\n getEvent() {\n return { ...EventsController.state };\n }\n subscribeEvents(callback) {\n return EventsController.subscribe(callback);\n }\n subscribeSIWEState(callback) {\n return SIWEController.subscribe(callback);\n }\n initControllers(options) {\n NetworkController.setClient(options.networkControllerClient);\n NetworkController.setDefaultCaipNetwork(options.defaultChain);\n OptionsController.setProjectId(options.projectId);\n OptionsController.setIncludeWalletIds(options.includeWalletIds);\n OptionsController.setExcludeWalletIds(options.excludeWalletIds);\n OptionsController.setFeaturedWalletIds(options.featuredWalletIds);\n OptionsController.setTokens(options.tokens);\n OptionsController.setTermsConditionsUrl(options.termsConditionsUrl);\n OptionsController.setPrivacyPolicyUrl(options.privacyPolicyUrl);\n OptionsController.setCustomWallets(options.customWallets);\n OptionsController.setEnableAnalytics(options.enableAnalytics);\n OptionsController.setSdkVersion(options._sdkVersion);\n ConnectionController.setClient(options.connectionControllerClient);\n if (options.siweControllerClient) {\n const siweClient = options.siweControllerClient;\n SIWEController.setSIWEClient(siweClient);\n }\n if (options.metadata) {\n OptionsController.setMetadata(options.metadata);\n }\n if (options.themeMode) {\n ThemeController.setThemeMode(options.themeMode);\n }\n if (options.themeVariables) {\n ThemeController.setThemeVariables(options.themeVariables);\n }\n }\n async initOrContinue() {\n if (!this.initPromise && !isInitialized && CoreHelperUtil.isClient()) {\n isInitialized = true;\n this.initPromise = new Promise(async (resolve) => {\n await Promise.all([import('@web3modal/ui'), import('./modal/w3m-modal/index.js')]);\n const modal = document.createElement('w3m-modal');\n document.body.insertAdjacentElement('beforeend', modal);\n resolve();\n });\n }\n return this.initPromise;\n }\n}\n//# sourceMappingURL=client.js.map","export const ConstantsUtil = {\n WALLET_CONNECT_CONNECTOR_ID: 'walletConnect',\n INJECTED_CONNECTOR_ID: 'injected',\n COINBASE_CONNECTOR_ID: 'coinbaseWallet',\n SAFE_CONNECTOR_ID: 'safe',\n LEDGER_CONNECTOR_ID: 'ledger',\n EIP6963_CONNECTOR_ID: 'eip6963',\n EMAIL_CONNECTOR_ID: 'w3mEmail',\n EIP155: 'eip155',\n ADD_CHAIN_METHOD: 'wallet_addEthereumChain',\n EIP6963_ANNOUNCE_EVENT: 'eip6963:announceProvider',\n EIP6963_REQUEST_EVENT: 'eip6963:requestProvider',\n VERSION: '3.5.7'\n};\n//# sourceMappingURL=ConstantsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const PresetsUtil = {\n ConnectorExplorerIds: {\n [ConstantsUtil.COINBASE_CONNECTOR_ID]: 'fd20dc426fb37566d803205b19bbc1d4096b248ac04548e3cfb6b3a38bd033aa',\n [ConstantsUtil.SAFE_CONNECTOR_ID]: '225affb176778569276e484e1b92637ad061b01e13a048b35a9d280c3b58970f',\n [ConstantsUtil.LEDGER_CONNECTOR_ID]: '19177a98252e07ddfc9af2083ba8e07ef627cb6103467ffebb3f8f4205fd7927'\n },\n EIP155NetworkImageIds: {\n 1: '692ed6ba-e569-459a-556a-776476829e00',\n 42161: '600a9a04-c1b9-42ca-6785-9b4b6ff85200',\n 43114: '30c46e53-e989-45fb-4549-be3bd4eb3b00',\n 56: '93564157-2e8e-4ce7-81df-b264dbee9b00',\n 250: '06b26297-fe0c-4733-5d6b-ffa5498aac00',\n 10: 'ab9c186a-c52f-464b-2906-ca59d760a400',\n 137: '41d04d42-da3b-4453-8506-668cc0727900',\n 100: '02b53f6a-e3d4-479e-1cb4-21178987d100',\n 9001: 'f926ff41-260d-4028-635e-91913fc28e00',\n 324: 'b310f07f-4ef7-49f3-7073-2a0a39685800',\n 314: '5a73b3dd-af74-424e-cae0-0de859ee9400',\n 4689: '34e68754-e536-40da-c153-6ef2e7188a00',\n 1088: '3897a66d-40b9-4833-162f-a2c90531c900',\n 1284: '161038da-44ae-4ec7-1208-0ea569454b00',\n 1285: 'f1d73bb6-5450-4e18-38f7-fb6484264a00',\n 7777777: '845c60df-d429-4991-e687-91ae45791600',\n 42220: 'ab781bbc-ccc6-418d-d32d-789b15da1f00',\n 8453: '7289c336-3981-4081-c5f4-efc26ac64a00',\n 1313161554: '3ff73439-a619-4894-9262-4470c773a100'\n },\n ConnectorImageIds: {\n [ConstantsUtil.COINBASE_CONNECTOR_ID]: '0c2840c3-5b04-4c44-9661-fbd4b49e1800',\n [ConstantsUtil.SAFE_CONNECTOR_ID]: '461db637-8616-43ce-035a-d89b8a1d5800',\n [ConstantsUtil.LEDGER_CONNECTOR_ID]: '54a1aa77-d202-4f8d-0fb2-5d2bb6db0300',\n [ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID]: 'ef1a1fcf-7fe8-4d69-bd6d-fda1345b4400',\n [ConstantsUtil.INJECTED_CONNECTOR_ID]: '07ba87ed-43aa-4adf-4540-9e6a2b9cae00'\n },\n ConnectorNamesMap: {\n [ConstantsUtil.INJECTED_CONNECTOR_ID]: 'Browser Wallet',\n [ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID]: 'WalletConnect',\n [ConstantsUtil.COINBASE_CONNECTOR_ID]: 'Coinbase',\n [ConstantsUtil.LEDGER_CONNECTOR_ID]: 'Ledger',\n [ConstantsUtil.SAFE_CONNECTOR_ID]: 'Safe'\n },\n ConnectorTypesMap: {\n [ConstantsUtil.INJECTED_CONNECTOR_ID]: 'INJECTED',\n [ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID]: 'WALLET_CONNECT',\n [ConstantsUtil.EIP6963_CONNECTOR_ID]: 'ANNOUNCED',\n [ConstantsUtil.EMAIL_CONNECTOR_ID]: 'EMAIL'\n },\n WalletConnectRpcChainIds: [\n 1,\n 5,\n 11155111,\n 10,\n 420,\n 42161,\n 421613,\n 137,\n 80001,\n 42220,\n 1313161554,\n 1313161555,\n 56,\n 97,\n 43114,\n 43113,\n 100,\n 8453,\n 84531,\n 7777777,\n 999,\n 324,\n 280\n ]\n};\n//# sourceMappingURL=PresetsUtil.js.map","import { ConstantsUtil } from './ConstantsUtil.js';\nexport const HelpersUtil = {\n caipNetworkIdToNumber(caipnetworkId) {\n return caipnetworkId ? Number(caipnetworkId.split(':')[1]) : undefined;\n },\n getCaipTokens(tokens) {\n if (!tokens) {\n return undefined;\n }\n const caipTokens = {};\n Object.entries(tokens).forEach(([id, token]) => {\n caipTokens[`${ConstantsUtil.EIP155}:${id}`] = token;\n });\n return caipTokens;\n }\n};\n//# sourceMappingURL=HelpersUtil.js.map","import { ConstantsUtil, PresetsUtil } from '@web3modal/scaffold-utils';\nexport function getCaipDefaultChain(chain) {\n if (!chain) {\n return undefined;\n }\n return {\n id: `${ConstantsUtil.EIP155}:${chain.id}`,\n name: chain.name,\n imageId: PresetsUtil.EIP155NetworkImageIds[chain.id]\n };\n}\n//# sourceMappingURL=helpers.js.map","import { connect, disconnect, signMessage, fetchBalance, fetchEnsAvatar, fetchEnsName, getAccount, getNetwork, switchNetwork, watchAccount, watchNetwork, mainnet } from '@wagmi/core';\nimport { Web3ModalScaffold } from '@web3modal/scaffold';\nimport { ConstantsUtil, PresetsUtil, HelpersUtil } from '@web3modal/scaffold-utils';\nimport { getCaipDefaultChain } from './utils/helpers.js';\nimport { WALLET_CHOICE_KEY } from './utils/constants.js';\nexport class Web3Modal extends Web3ModalScaffold {\n constructor(options) {\n const { wagmiConfig, siweConfig, chains, defaultChain, tokens, _sdkVersion, ...w3mOptions } = options;\n if (!wagmiConfig) {\n throw new Error('web3modal:constructor - wagmiConfig is undefined');\n }\n if (!w3mOptions.projectId) {\n throw new Error('web3modal:constructor - projectId is undefined');\n }\n const networkControllerClient = {\n switchCaipNetwork: async (caipNetwork) => {\n const chainId = HelpersUtil.caipNetworkIdToNumber(caipNetwork?.id);\n if (chainId) {\n await switchNetwork({ chainId });\n }\n },\n async getApprovedCaipNetworksData() {\n const walletChoice = localStorage.getItem(WALLET_CHOICE_KEY);\n if (walletChoice?.includes(ConstantsUtil.EMAIL_CONNECTOR_ID)) {\n return {\n supportsAllNetworks: false,\n approvedCaipNetworkIds: PresetsUtil.WalletConnectRpcChainIds.map(id => `${ConstantsUtil.EIP155}:${id}`)\n };\n }\n else if (walletChoice?.includes(ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID)) {\n const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);\n if (!connector) {\n throw new Error('networkControllerClient:getApprovedCaipNetworks - connector is undefined');\n }\n const provider = await connector.getProvider();\n const ns = provider.signer?.session?.namespaces;\n const nsMethods = ns?.[ConstantsUtil.EIP155]?.methods;\n const nsChains = ns?.[ConstantsUtil.EIP155]?.chains;\n return {\n supportsAllNetworks: nsMethods?.includes(ConstantsUtil.ADD_CHAIN_METHOD),\n approvedCaipNetworkIds: nsChains\n };\n }\n return { approvedCaipNetworkIds: undefined, supportsAllNetworks: true };\n }\n };\n const connectionControllerClient = {\n connectWalletConnect: async (onUri) => {\n const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.WALLET_CONNECT_CONNECTOR_ID);\n if (!connector) {\n throw new Error('connectionControllerClient:getWalletConnectUri - connector is undefined');\n }\n connector.on('message', event => {\n if (event.type === 'display_uri') {\n onUri(event.data);\n connector.removeAllListeners();\n }\n });\n const chainId = HelpersUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n await connect({ connector, chainId });\n },\n connectExternal: async ({ id, provider, info }) => {\n const connector = wagmiConfig.connectors.find(c => c.id === id);\n if (!connector) {\n throw new Error('connectionControllerClient:connectExternal - connector is undefined');\n }\n if (provider && info && connector.id === ConstantsUtil.EIP6963_CONNECTOR_ID) {\n connector.setEip6963Wallet?.({ provider, info });\n }\n const chainId = HelpersUtil.caipNetworkIdToNumber(this.getCaipNetwork()?.id);\n await connect({ connector, chainId });\n },\n checkInstalled: ids => {\n const eip6963Connectors = this.getConnectors().filter(c => c.type === 'ANNOUNCED');\n const injectedConnector = this.getConnectors().find(c => c.type === 'INJECTED');\n if (!ids) {\n return Boolean(window.ethereum);\n }\n if (eip6963Connectors.length) {\n const installed = ids.some(id => eip6963Connectors.some(c => c.info?.rdns === id));\n if (installed) {\n return true;\n }\n }\n if (injectedConnector) {\n if (!window?.ethereum) {\n return false;\n }\n return ids.some(id => Boolean(window.ethereum?.[String(id)]));\n }\n return false;\n },\n disconnect: async () => {\n await disconnect();\n if (siweConfig?.options?.signOutOnDisconnect) {\n await siweConfig.signOut();\n }\n },\n signMessage: async (message) => signMessage({ message })\n };\n super({\n networkControllerClient,\n connectionControllerClient,\n siweControllerClient: siweConfig,\n defaultChain: getCaipDefaultChain(defaultChain),\n tokens: HelpersUtil.getCaipTokens(tokens),\n _sdkVersion: _sdkVersion ?? `html-wagmi-${ConstantsUtil.VERSION}`,\n ...w3mOptions\n });\n this.hasSyncedConnectedAccount = false;\n this.options = undefined;\n this.options = options;\n this.syncRequestedNetworks(chains);\n this.syncConnectors(wagmiConfig);\n this.syncEmailConnector(wagmiConfig);\n this.listenEIP6963Connector(wagmiConfig);\n this.listenEmailConnector(wagmiConfig);\n watchAccount(() => this.syncAccount());\n watchNetwork(() => this.syncNetwork());\n }\n getState() {\n const state = super.getState();\n return {\n ...state,\n selectedNetworkId: HelpersUtil.caipNetworkIdToNumber(state.selectedNetworkId)\n };\n }\n subscribeState(callback) {\n return super.subscribeState(state => callback({\n ...state,\n selectedNetworkId: HelpersUtil.caipNetworkIdToNumber(state.selectedNetworkId)\n }));\n }\n syncRequestedNetworks(chains) {\n const requestedCaipNetworks = chains?.map(chain => ({\n id: `${ConstantsUtil.EIP155}:${chain.id}`,\n name: chain.name,\n imageId: PresetsUtil.EIP155NetworkImageIds[chain.id],\n imageUrl: this.options?.chainImages?.[chain.id]\n }));\n this.setRequestedCaipNetworks(requestedCaipNetworks ?? []);\n }\n async syncAccount() {\n const { address, isConnected } = getAccount();\n const { chain } = getNetwork();\n this.resetAccount();\n if (isConnected && address && chain) {\n const caipAddress = `${ConstantsUtil.EIP155}:${chain.id}:${address}`;\n this.setIsConnected(isConnected);\n this.setCaipAddress(caipAddress);\n await Promise.all([\n this.syncProfile(address, chain),\n this.syncBalance(address, chain),\n this.getApprovedCaipNetworksData()\n ]);\n this.hasSyncedConnectedAccount = true;\n }\n else if (!isConnected && this.hasSyncedConnectedAccount) {\n this.resetWcConnection();\n this.resetNetwork();\n }\n }\n async syncNetwork() {\n const { address, isConnected } = getAccount();\n const { chain } = getNetwork();\n if (chain) {\n const chainId = String(chain.id);\n const caipChainId = `${ConstantsUtil.EIP155}:${chainId}`;\n this.setCaipNetwork({\n id: caipChainId,\n name: chain.name,\n imageId: PresetsUtil.EIP155NetworkImageIds[chain.id],\n imageUrl: this.options?.chainImages?.[chain.id]\n });\n if (isConnected && address) {\n const caipAddress = `${ConstantsUtil.EIP155}:${chain.id}:${address}`;\n this.setCaipAddress(caipAddress);\n if (chain.blockExplorers?.default?.url) {\n const url = `${chain.blockExplorers.default.url}/address/${address}`;\n this.setAddressExplorerUrl(url);\n }\n else {\n this.setAddressExplorerUrl(undefined);\n }\n if (this.hasSyncedConnectedAccount) {\n await this.syncProfile(address, chain);\n await this.syncBalance(address, chain);\n }\n }\n }\n }\n async syncProfile(address, chain) {\n if (chain.id !== mainnet.id) {\n this.setProfileName(null);\n this.setProfileImage(null);\n return;\n }\n try {\n const { name, avatar } = await this.fetchIdentity({\n caipChainId: `${ConstantsUtil.EIP155}:${chain.id}`,\n address\n });\n this.setProfileName(name);\n this.setProfileImage(avatar);\n }\n catch {\n const profileName = await fetchEnsName({ address, chainId: chain.id });\n if (profileName) {\n this.setProfileName(profileName);\n const profileImage = await fetchEnsAvatar({ name: profileName, chainId: chain.id });\n if (profileImage) {\n this.setProfileImage(profileImage);\n }\n }\n }\n }\n async syncBalance(address, chain) {\n const balance = await fetchBalance({\n address,\n chainId: chain.id,\n token: this.options?.tokens?.[chain.id]?.address\n });\n this.setBalance(balance.formatted, balance.symbol);\n }\n syncConnectors(wagmiConfig) {\n const w3mConnectors = [];\n wagmiConfig.connectors.forEach(({ id, name }) => {\n if (![ConstantsUtil.EIP6963_CONNECTOR_ID, ConstantsUtil.EMAIL_CONNECTOR_ID].includes(id)) {\n w3mConnectors.push({\n id,\n explorerId: PresetsUtil.ConnectorExplorerIds[id],\n imageId: PresetsUtil.ConnectorImageIds[id],\n imageUrl: this.options?.connectorImages?.[id],\n name: PresetsUtil.ConnectorNamesMap[id] ?? name,\n type: PresetsUtil.ConnectorTypesMap[id] ?? 'EXTERNAL'\n });\n }\n });\n this.setConnectors(w3mConnectors);\n }\n async syncEmailConnector(wagmiConfig) {\n const emailConnector = wagmiConfig.connectors.find(({ id }) => id === 'w3mEmail');\n if (emailConnector) {\n const provider = await emailConnector.getProvider();\n this.addConnector({\n id: ConstantsUtil.EMAIL_CONNECTOR_ID,\n type: 'EMAIL',\n name: 'Email',\n provider\n });\n }\n }\n eip6963EventHandler(connector, event) {\n if (event.detail) {\n const { info, provider } = event.detail;\n const connectors = this.getConnectors();\n const existingConnector = connectors.find(c => c.name === info.name);\n if (!existingConnector) {\n this.addConnector({\n id: ConstantsUtil.EIP6963_CONNECTOR_ID,\n type: 'ANNOUNCED',\n imageUrl: info.icon ?? this.options?.connectorImages?.[ConstantsUtil.EIP6963_CONNECTOR_ID],\n name: info.name,\n provider,\n info\n });\n connector.isAuthorized({ info, provider });\n }\n }\n }\n listenEIP6963Connector(wagmiConfig) {\n const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.EIP6963_CONNECTOR_ID);\n if (typeof window !== 'undefined' && connector) {\n const handler = this.eip6963EventHandler.bind(this, connector);\n window.addEventListener(ConstantsUtil.EIP6963_ANNOUNCE_EVENT, handler);\n window.dispatchEvent(new Event(ConstantsUtil.EIP6963_REQUEST_EVENT));\n }\n }\n async listenEmailConnector(wagmiConfig) {\n const connector = wagmiConfig.connectors.find(c => c.id === ConstantsUtil.EMAIL_CONNECTOR_ID);\n if (typeof window !== 'undefined' && connector) {\n super.setLoading(true);\n const provider = await connector.getProvider();\n const isLoginEmailUsed = provider.getLoginEmailUsed();\n super.setLoading(isLoginEmailUsed);\n provider.onRpcRequest(() => {\n super.open({ view: 'ApproveTransaction' });\n });\n provider.onRpcResponse(() => {\n super.close();\n });\n provider.onIsConnected(() => {\n super.setLoading(false);\n });\n }\n }\n}\n//# sourceMappingURL=client.js.map","export const WALLET_CHOICE_KEY = 'wagmi.wallet';\n//# sourceMappingURL=constants.js.map","var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (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};\nvar __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (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};\nvar _EIP6963Connector_defaultProvider, _EIP6963Connector_eip6963Wallet;\nimport { InjectedConnector } from '@wagmi/core/connectors/injected';\nimport { getAddress } from 'viem';\nconst connectedRdnsKey = 'connectedRdns';\nexport class EIP6963Connector extends InjectedConnector {\n constructor(config) {\n super({ chains: config.chains, options: { shimDisconnect: true } });\n this.id = 'eip6963';\n this.name = 'EIP6963';\n _EIP6963Connector_defaultProvider.set(this, undefined);\n _EIP6963Connector_eip6963Wallet.set(this, undefined);\n this.onAccountsChanged = (accounts) => {\n if (accounts.length === 0) {\n this.storage?.removeItem(connectedRdnsKey);\n this.emit('disconnect');\n }\n else if (accounts[0]) {\n this.emit('change', {\n account: getAddress(accounts[0])\n });\n }\n };\n __classPrivateFieldSet(this, _EIP6963Connector_defaultProvider, this.options.getProvider(), \"f\");\n }\n async connect(options) {\n const data = await super.connect(options);\n if (__classPrivateFieldGet(this, _EIP6963Connector_eip6963Wallet, \"f\")) {\n this.storage?.setItem(connectedRdnsKey, __classPrivateFieldGet(this, _EIP6963Connector_eip6963Wallet, \"f\").info.rdns);\n }\n return data;\n }\n async disconnect() {\n await super.disconnect();\n this.storage?.removeItem(connectedRdnsKey);\n __classPrivateFieldSet(this, _EIP6963Connector_eip6963Wallet, undefined, \"f\");\n }\n async isAuthorized(eip6963Wallet) {\n const connectedEIP6963Rdns = this.storage?.getItem(connectedRdnsKey);\n if (connectedEIP6963Rdns) {\n if (__classPrivateFieldGet(this, _EIP6963Connector_eip6963Wallet, \"f\") && connectedEIP6963Rdns === __classPrivateFieldGet(this, _EIP6963Connector_eip6963Wallet, \"f\").info.rdns) {\n const provider = __classPrivateFieldGet(this, _EIP6963Connector_eip6963Wallet, \"f\").provider;\n const accounts = await provider.request({ method: 'eth_accounts' });\n if (accounts.length) {\n return true;\n }\n }\n if (eip6963Wallet) {\n __classPrivateFieldSet(this, _EIP6963Connector_eip6963Wallet, eip6963Wallet, \"f\");\n }\n }\n return super.isAuthorized();\n }\n async getProvider() {\n return Promise.resolve(__classPrivateFieldGet(this, _EIP6963Connector_eip6963Wallet, \"f\")?.provider ?? __classPrivateFieldGet(this, _EIP6963Connector_defaultProvider, \"f\"));\n }\n setEip6963Wallet(eip6963Wallet) {\n __classPrivateFieldSet(this, _EIP6963Connector_eip6963Wallet, eip6963Wallet, \"f\");\n }\n}\n_EIP6963Connector_defaultProvider = new WeakMap(), _EIP6963Connector_eip6963Wallet = new WeakMap();\n//# sourceMappingURL=EIP6963Connector.js.map","import { Buffer } from 'buffer';\nif (typeof window !== 'undefined') {\n if (!window.Buffer) {\n window.Buffer = Buffer;\n }\n if (!window.global) {\n window.global = window;\n }\n if (!window.process) {\n window.process = {};\n }\n if (!window.process?.env) {\n window.process = { env: {} };\n }\n}\n//# sourceMappingURL=index.js.map","import {\n ChainNotConfiguredForConnectorError\n} from \"./chunk-ZCAPXGBX.js\";\nimport {\n normalizeChainId\n} from \"./chunk-OQILYQDO.js\";\nimport {\n Connector,\n __privateAdd,\n __privateGet,\n __privateSet,\n __publicField\n} from \"./chunk-QYMCVNHT.js\";\n\n// src/coinbaseWallet.ts\nimport {\n SwitchChainError,\n UserRejectedRequestError,\n createWalletClient,\n custom,\n getAddress,\n numberToHex\n} from \"viem\";\nvar _client, _provider;\nvar CoinbaseWalletConnector = class extends Connector {\n constructor({ chains, options }) {\n super({\n chains,\n options: {\n reloadOnDisconnect: false,\n ...options\n }\n });\n __publicField(this, \"id\", \"coinbaseWallet\");\n __publicField(this, \"name\", \"Coinbase Wallet\");\n __publicField(this, \"ready\", true);\n __privateAdd(this, _client, void 0);\n __privateAdd(this, _provider, void 0);\n __publicField(this, \"onAccountsChanged\", (accounts) => {\n if (accounts.length === 0)\n this.emit(\"disconnect\");\n else\n this.emit(\"change\", { account: getAddress(accounts[0]) });\n });\n __publicField(this, \"onChainChanged\", (chainId) => {\n const id = normalizeChainId(chainId);\n const unsupported = this.isChainUnsupported(id);\n this.emit(\"change\", { chain: { id, unsupported } });\n });\n __publicField(this, \"onDisconnect\", () => {\n this.emit(\"disconnect\");\n });\n }\n async connect({ chainId } = {}) {\n try {\n const provider = await this.getProvider();\n provider.on(\"accountsChanged\", this.onAccountsChanged);\n provider.on(\"chainChanged\", this.onChainChanged);\n provider.on(\"disconnect\", this.onDisconnect);\n this.emit(\"message\", { type: \"connecting\" });\n const accounts = await provider.enable();\n const account = getAddress(accounts[0]);\n let id = await this.getChainId();\n let unsupported = this.isChainUnsupported(id);\n if (chainId && id !== chainId) {\n const chain = await this.switchChain(chainId);\n id = chain.id;\n unsupported = this.isChainUnsupported(id);\n }\n return {\n account,\n chain: { id, unsupported }\n };\n } catch (error) {\n if (/(user closed modal|accounts received is empty)/i.test(\n error.message\n ))\n throw new UserRejectedRequestError(error);\n throw error;\n }\n }\n async disconnect() {\n if (!__privateGet(this, _provider))\n return;\n const provider = await this.getProvider();\n provider.removeListener(\"accountsChanged\", this.onAccountsChanged);\n provider.removeListener(\"chainChanged\", this.onChainChanged);\n provider.removeListener(\"disconnect\", this.onDisconnect);\n provider.disconnect();\n provider.close();\n }\n async getAccount() {\n const provider = await this.getProvider();\n const accounts = await provider.request({\n method: \"eth_accounts\"\n });\n return getAddress(accounts[0]);\n }\n async getChainId() {\n const provider = await this.getProvider();\n const chainId = normalizeChainId(provider.chainId);\n return chainId;\n }\n async getProvider() {\n if (!__privateGet(this, _provider)) {\n let CoinbaseWalletSDK = (await import(\"@coinbase/wallet-sdk\")).default;\n if (typeof CoinbaseWalletSDK !== \"function\" && typeof CoinbaseWalletSDK.default === \"function\")\n CoinbaseWalletSDK = CoinbaseWalletSDK.default;\n __privateSet(this, _client, new CoinbaseWalletSDK(this.options));\n class WalletProvider {\n }\n class Client {\n }\n const walletExtensionChainId = __privateGet(this, _client).walletExtension?.getChainId();\n const chain = this.chains.find(\n (chain2) => this.options.chainId ? chain2.id === this.options.chainId : chain2.id === walletExtensionChainId\n ) || this.chains[0];\n const chainId = this.options.chainId || chain?.id;\n const jsonRpcUrl = this.options.jsonRpcUrl || chain?.rpcUrls.default.http[0];\n __privateSet(this, _provider, __privateGet(this, _client).makeWeb3Provider(jsonRpcUrl, chainId));\n }\n return __privateGet(this, _provider);\n }\n async getWalletClient({\n chainId\n } = {}) {\n const [provider, account] = await Promise.all([\n this.getProvider(),\n this.getAccount()\n ]);\n const chain = this.chains.find((x) => x.id === chainId);\n if (!provider)\n throw new Error(\"provider is required.\");\n return createWalletClient({\n account,\n chain,\n transport: custom(provider)\n });\n }\n async isAuthorized() {\n try {\n const account = await this.getAccount();\n return !!account;\n } catch {\n return false;\n }\n }\n async switchChain(chainId) {\n const provider = await this.getProvider();\n const id = numberToHex(chainId);\n try {\n await provider.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: id }]\n });\n return this.chains.find((x) => x.id === chainId) ?? {\n id: chainId,\n name: `Chain ${id}`,\n network: `${id}`,\n nativeCurrency: { name: \"Ether\", decimals: 18, symbol: \"ETH\" },\n rpcUrls: { default: { http: [\"\"] }, public: { http: [\"\"] } }\n };\n } catch (error) {\n const chain = this.chains.find((x) => x.id === chainId);\n if (!chain)\n throw new ChainNotConfiguredForConnectorError({\n chainId,\n connectorId: this.id\n });\n if (error.code === 4902) {\n try {\n await provider.request({\n method: \"wallet_addEthereumChain\",\n params: [\n {\n chainId: id,\n chainName: chain.name,\n nativeCurrency: chain.nativeCurrency,\n rpcUrls: [chain.rpcUrls.public?.http[0] ?? \"\"],\n blockExplorerUrls: this.getBlockExplorerUrls(chain)\n }\n ]\n });\n return chain;\n } catch (error2) {\n throw new UserRejectedRequestError(error2);\n }\n }\n throw new SwitchChainError(error);\n }\n }\n async watchAsset({\n address,\n decimals = 18,\n image,\n symbol\n }) {\n const provider = await this.getProvider();\n return provider.request({\n method: \"wallet_watchAsset\",\n params: {\n type: \"ERC20\",\n options: {\n address,\n decimals,\n image,\n symbol\n }\n }\n });\n }\n};\n_client = new WeakMap();\n_provider = new WeakMap();\nexport {\n CoinbaseWalletConnector\n};\n","import{ChaCha20Poly1305 as ie}from\"@stablelib/chacha20poly1305\";import{HKDF as pn}from\"@stablelib/hkdf\";import{randomBytes as ce}from\"@stablelib/random\";import{SHA256 as mn,hash as ae}from\"@stablelib/sha256\";import*as ue from\"@stablelib/x25519\";import{toString as h,fromString as E,concat as le}from\"uint8arrays\";import{detect as yn}from\"detect-browser\";import{toMiliseconds as z,FIVE_MINUTES as de,fromMiliseconds as hn}from\"@walletconnect/time\";import{getDocument as En,getNavigator as fe,getLocation as pe}from\"@walletconnect/window-getters\";import{getWindowMetadata as vn}from\"@walletconnect/window-metadata\";import*as V from\"query-string\";import{RELAY_JSONRPC as gn}from\"@walletconnect/relay-api\";const M=\":\";function me(e){const[n,t]=e.split(M);return{namespace:n,reference:t}}function ye(e){const{namespace:n,reference:t}=e;return[n,t].join(M)}function G(e){const[n,t,r]=e.split(M);return{namespace:n,reference:t,address:r}}function he(e){const{namespace:n,reference:t,address:r}=e;return[n,t,r].join(M)}function W(e,n){const t=[];return e.forEach(r=>{const o=n(r);t.includes(o)||t.push(o)}),t}function Ee(e){const{address:n}=G(e);return n}function ve(e){const{namespace:n,reference:t}=G(e);return ye({namespace:n,reference:t})}function Nn(e,n){const{namespace:t,reference:r}=me(n);return he({namespace:t,reference:r,address:e})}function bn(e){return W(e,Ee)}function ge(e){return W(e,ve)}function On(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...o.accounts)}),t}function Sn(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...ge(o.accounts))}),t}function In(e,n=[]){const t=[];return Object.keys(e).forEach(r=>{if(n.length&&!n.includes(r))return;const o=e[r];t.push(...k(r,o))}),t}function k(e,n){return e.includes(\":\")?[e]:n.chains||[]}const K=e=>e?.split(\":\"),Ne=e=>{const n=e&&K(e);if(n)return n[3]},Pn=e=>{const n=e&&K(e);if(n)return n[2]+\":\"+n[3]},be=e=>{const n=e&&K(e);if(n)return n.pop()},Tn=(e,n)=>{const t=`${e.domain} wants you to sign in with your Ethereum account:`,r=be(n),o=e.statement,s=`URI: ${e.aud}`,i=`Version: ${e.version}`,l=`Chain ID: ${Ne(n)}`,d=`Nonce: ${e.nonce}`,c=`Issued At: ${e.iat}`,u=e.resources&&e.resources.length>0?`Resources:\n${e.resources.map(a=>`- ${a}`).join(`\n`)}`:void 0;return[t,r,\"\",o,\"\",s,i,l,d,c,u].filter(a=>a!=null).join(`\n`)},B=\"base10\",f=\"base16\",L=\"base64pad\",x=\"utf8\",Y=0,U=1,Rn=0,Oe=1,J=12,Q=32;function wn(){const e=ue.generateKeyPair();return{privateKey:h(e.secretKey,f),publicKey:h(e.publicKey,f)}}function An(){const e=ce(Q);return h(e,f)}function Un(e,n){const t=ue.sharedKey(E(e,f),E(n,f)),r=new pn(mn,t).expand(Q);return h(r,f)}function _n(e){const n=ae(E(e,f));return h(n,f)}function $n(e){const n=ae(E(e,x));return h(n,f)}function Se(e){return E(`${e}`,B)}function $(e){return Number(h(e,B))}function jn(e){const n=Se(typeof e.type<\"u\"?e.type:Y);if($(n)===U&&typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");const t=typeof e.senderPublicKey<\"u\"?E(e.senderPublicKey,f):void 0,r=typeof e.iv<\"u\"?E(e.iv,f):ce(J),o=new ie(E(e.symKey,f)).seal(r,E(e.message,x));return Ie({type:n,sealed:o,iv:r,senderPublicKey:t})}function Cn(e){const n=new ie(E(e.symKey,f)),{sealed:t,iv:r}=Z(e.encoded),o=n.open(r,t);if(o===null)throw new Error(\"Failed to decrypt\");return h(o,x)}function Ie(e){if($(e.type)===U){if(typeof e.senderPublicKey>\"u\")throw new Error(\"Missing sender public key for type 1 envelope\");return h(le([e.type,e.senderPublicKey,e.iv,e.sealed]),L)}return h(le([e.type,e.iv,e.sealed]),L)}function Z(e){const n=E(e,L),t=n.slice(Rn,Oe),r=Oe;if($(t)===U){const l=r+Q,d=l+J,c=n.slice(r,l),u=n.slice(l,d),a=n.slice(d);return{type:t,sealed:a,iv:u,senderPublicKey:c}}const o=r+J,s=n.slice(r,o),i=n.slice(o);return{type:t,sealed:i,iv:s}}function Dn(e,n){const t=Z(e);return Pe({type:$(t.type),senderPublicKey:typeof t.senderPublicKey<\"u\"?h(t.senderPublicKey,f):void 0,receiverPublicKey:n?.receiverPublicKey})}function Pe(e){const n=e?.type||Y;if(n===U){if(typeof e?.senderPublicKey>\"u\")throw new Error(\"missing sender public key\");if(typeof e?.receiverPublicKey>\"u\")throw new Error(\"missing receiver public key\")}return{type:n,senderPublicKey:e?.senderPublicKey,receiverPublicKey:e?.receiverPublicKey}}function Vn(e){return e.type===U&&typeof e.senderPublicKey==\"string\"&&typeof e.receiverPublicKey==\"string\"}var Mn=Object.defineProperty,Te=Object.getOwnPropertySymbols,kn=Object.prototype.hasOwnProperty,Kn=Object.prototype.propertyIsEnumerable,Re=(e,n,t)=>n in e?Mn(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,we=(e,n)=>{for(var t in n||(n={}))kn.call(n,t)&&Re(e,t,n[t]);if(Te)for(var t of Te(n))Kn.call(n,t)&&Re(e,t,n[t]);return e};const Ae=\"ReactNative\",N={reactNative:\"react-native\",node:\"node\",browser:\"browser\",unknown:\"unknown\"},F=\" \",Ln=\":\",Ue=\"/\",X=2,xn=1e3,_e=\"js\";function ee(){return typeof process<\"u\"&&typeof process.versions<\"u\"&&typeof process.versions.node<\"u\"}function $e(){return!En()&&!!fe()&&navigator.product===Ae}function je(){return!ee()&&!!fe()}function j(){return $e()?N.reactNative:ee()?N.node:je()?N.browser:N.unknown}function Ce(e,n){let t=V.parse(e);return t=we(we({},t),n),e=V.stringify(t),e}function Fn(){return vn()||{name:\"\",description:\"\",url:\"\",icons:[\"\"]}}function Hn(e,n){var t;const r=j(),o={protocol:e,version:n,env:r};return r===\"browser\"&&(o.host=((t=pe())==null?void 0:t.host)||\"unknown\"),o}function De(){if(j()===N.reactNative&&typeof global<\"u\"&&typeof(global==null?void 0:global.Platform)<\"u\"){const{OS:t,Version:r}=global.Platform;return[t,r].join(\"-\")}const e=yn();if(e===null)return\"unknown\";const n=e.os?e.os.replace(\" \",\"\").toLowerCase():\"unknown\";return e.type===\"browser\"?[n,e.name,e.version].join(\"-\"):[n,e.version].join(\"-\")}function Ve(){var e;const n=j();return n===N.browser?[n,((e=pe())==null?void 0:e.host)||\"unknown\"].join(\":\"):n}function Me(e,n,t){const r=De(),o=Ve();return[[e,n].join(\"-\"),[_e,t].join(\"-\"),r,o].join(\"/\")}function qn({protocol:e,version:n,relayUrl:t,sdkVersion:r,auth:o,projectId:s,useOnCloseEvent:i}){const l=t.split(\"?\"),d=Me(e,n,r),c={auth:o,ua:d,projectId:s,useOnCloseEvent:i||void 0},u=Ce(l[1]||\"\",c);return l[0]+\"?\"+u}function zn(e){let n=(e.match(/^[^:]+(?=:\\/\\/)/gi)||[])[0];const t=typeof n<\"u\"?e.split(\"://\")[1]:e;return n=n===\"wss\"?\"https\":\"http\",[n,t].join(\"://\")}function Gn(e,n,t){if(!e[n]||typeof e[n]!==t)throw new Error(`Missing or invalid \"${n}\" param`)}function ke(e,n=X){return Ke(e.split(Ue),n)}function Wn(e){return ke(e).join(F)}function O(e,n){return e.filter(t=>n.includes(t)).length===e.length}function Ke(e,n=X){return e.slice(Math.max(e.length-n,0))}function Bn(e){return Object.fromEntries(e.entries())}function Yn(e){return new Map(Object.entries(e))}function Jn(e,n){const t={};return Object.keys(e).forEach(r=>{t[r]=n(e[r])}),t}const Qn=e=>e;function Le(e){return e.trim().replace(/^\\w/,n=>n.toUpperCase())}function Zn(e){return e.split(F).map(n=>Le(n)).join(F)}function Xn(e=de,n){const t=z(e||de);let r,o,s;return{resolve:i=>{s&&r&&(clearTimeout(s),r(i))},reject:i=>{s&&o&&(clearTimeout(s),o(i))},done:()=>new Promise((i,l)=>{s=setTimeout(()=>{l(new Error(n))},t),r=i,o=l})}}function et(e,n,t){return new Promise(async(r,o)=>{const s=setTimeout(()=>o(new Error(t)),n);try{const i=await e;r(i)}catch(i){o(i)}clearTimeout(s)})}function ne(e,n){if(typeof n==\"string\"&&n.startsWith(`${e}:`))return n;if(e.toLowerCase()===\"topic\"){if(typeof n!=\"string\")throw new Error('Value must be \"string\" for expirer target type: topic');return`topic:${n}`}else if(e.toLowerCase()===\"id\"){if(typeof n!=\"number\")throw new Error('Value must be \"number\" for expirer target type: id');return`id:${n}`}throw new Error(`Unknown expirer target type: ${e}`)}function nt(e){return ne(\"topic\",e)}function tt(e){return ne(\"id\",e)}function rt(e){const[n,t]=e.split(\":\"),r={id:void 0,topic:void 0};if(n===\"topic\"&&typeof t==\"string\")r.topic=t;else if(n===\"id\"&&Number.isInteger(Number(t)))r.id=Number(t);else throw new Error(`Invalid target, expected id:number or topic:string, got ${n}:${t}`);return r}function ot(e,n){return hn((n||Date.now())+z(e))}function st(e){return Date.now()>=z(e)}function it(e,n){return`${e}${n?`:${n}`:\"\"}`}function S(e=[],n=[]){return[...new Set([...e,...n])]}async function ct({id:e,topic:n,wcDeepLink:t}){try{if(!t)return;const r=typeof t==\"string\"?JSON.parse(t):t;let o=r?.href;if(typeof o!=\"string\")return;o.endsWith(\"/\")&&(o=o.slice(0,-1));const s=`${o}/wc?requestId=${e}&sessionTopic=${n}`,i=j();i===N.browser?s.startsWith(\"https://\")?window.open(s,\"_blank\",\"noreferrer noopener\"):window.open(s,\"_self\",\"noreferrer noopener\"):i===N.reactNative&&typeof(global==null?void 0:global.Linking)<\"u\"&&await global.Linking.openURL(s)}catch(r){console.error(r)}}const xe=\"irn\";function at(e){return e?.relay||{protocol:xe}}function ut(e){const n=gn[e];if(typeof n>\"u\")throw new Error(`Relay Protocol not supported: ${e}`);return n}var lt=Object.defineProperty,Fe=Object.getOwnPropertySymbols,dt=Object.prototype.hasOwnProperty,ft=Object.prototype.propertyIsEnumerable,He=(e,n,t)=>n in e?lt(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,pt=(e,n)=>{for(var t in n||(n={}))dt.call(n,t)&&He(e,t,n[t]);if(Fe)for(var t of Fe(n))ft.call(n,t)&&He(e,t,n[t]);return e};function qe(e,n=\"-\"){const t={},r=\"relay\"+n;return Object.keys(e).forEach(o=>{if(o.startsWith(r)){const s=o.replace(r,\"\"),i=e[o];t[s]=i}}),t}function mt(e){const n=e.indexOf(\":\"),t=e.indexOf(\"?\")!==-1?e.indexOf(\"?\"):void 0,r=e.substring(0,n),o=e.substring(n+1,t).split(\"@\"),s=typeof t<\"u\"?e.substring(t):\"\",i=V.parse(s);return{protocol:r,topic:ze(o[0]),version:parseInt(o[1],10),symKey:i.symKey,relay:qe(i)}}function ze(e){return e.startsWith(\"//\")?e.substring(2):e}function Ge(e,n=\"-\"){const t=\"relay\",r={};return Object.keys(e).forEach(o=>{const s=t+n+o;e[o]&&(r[s]=e[o])}),r}function yt(e){return`${e.protocol}:${e.topic}@${e.version}?`+V.stringify(pt({symKey:e.symKey},Ge(e.relay)))}var ht=Object.defineProperty,Et=Object.defineProperties,vt=Object.getOwnPropertyDescriptors,We=Object.getOwnPropertySymbols,gt=Object.prototype.hasOwnProperty,Nt=Object.prototype.propertyIsEnumerable,Be=(e,n,t)=>n in e?ht(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,bt=(e,n)=>{for(var t in n||(n={}))gt.call(n,t)&&Be(e,t,n[t]);if(We)for(var t of We(n))Nt.call(n,t)&&Be(e,t,n[t]);return e},Ot=(e,n)=>Et(e,vt(n));function R(e){const n=[];return e.forEach(t=>{const[r,o]=t.split(\":\");n.push(`${r}:${o}`)}),n}function Ye(e){const n=[];return Object.values(e).forEach(t=>{n.push(...R(t.accounts))}),n}function Je(e,n){const t=[];return Object.values(e).forEach(r=>{R(r.accounts).includes(n)&&t.push(...r.methods)}),t}function Qe(e,n){const t=[];return Object.values(e).forEach(r=>{R(r.accounts).includes(n)&&t.push(...r.events)}),t}function St(e,n){const t=sn(e,n);if(t)throw new Error(t.message);const r={};for(const[o,s]of Object.entries(e))r[o]={methods:s.methods,events:s.events,chains:s.accounts.map(i=>`${i.split(\":\")[0]}:${i.split(\":\")[1]}`)};return r}function It(e){const{proposal:{requiredNamespaces:n,optionalNamespaces:t={}},supportedNamespaces:r}=e,o=re(n),s=re(t),i={};Object.keys(r).forEach(c=>{const u=r[c].chains,a=r[c].methods,g=r[c].events,A=r[c].accounts;i[c]={chains:u,methods:a,events:g,accounts:A}});const l=an(n,i,\"approve()\");if(l)throw new Error(l.message);const d={};return Object.keys(o).forEach(c=>{const u=r[c].chains.filter(v=>{var p,y;return(y=(p=o[c])==null?void 0:p.chains)==null?void 0:y.includes(v)}),a=r[c].methods.filter(v=>{var p,y;return(y=(p=o[c])==null?void 0:p.methods)==null?void 0:y.includes(v)}),g=r[c].events.filter(v=>{var p,y;return(y=(p=o[c])==null?void 0:p.events)==null?void 0:y.includes(v)}),A=u.map(v=>r[c].accounts.filter(p=>p.includes(`${v}:`))).flat();d[c]={chains:u,methods:a,events:g,accounts:A}}),Object.keys(s).forEach(c=>{var u,a,g,A,v,p;if(!r[c])return;const y=(a=(u=s[c])==null?void 0:u.chains)==null?void 0:a.filter(P=>r[c].chains.includes(P)),ln=r[c].methods.filter(P=>{var T,_;return(_=(T=s[c])==null?void 0:T.methods)==null?void 0:_.includes(P)}),dn=r[c].events.filter(P=>{var T,_;return(_=(T=s[c])==null?void 0:T.events)==null?void 0:_.includes(P)}),fn=y?.map(P=>r[c].accounts.filter(T=>T.includes(P))).flat();d[c]={chains:S((g=d[c])==null?void 0:g.chains,y),methods:S((A=d[c])==null?void 0:A.methods,ln),events:S((v=d[c])==null?void 0:v.events,dn),accounts:S((p=d[c])==null?void 0:p.accounts,fn)}}),d}function te(e){return e.includes(\":\")}function Ze(e){return te(e)?e.split(\":\")[0]:e}function re(e){var n,t,r;const o={};if(!H(e))return o;for(const[s,i]of Object.entries(e)){const l=te(s)?[s]:i.chains,d=i.methods||[],c=i.events||[],u=Ze(s);o[u]=Ot(bt({},o[u]),{chains:S(l,(n=o[u])==null?void 0:n.chains),methods:S(d,(t=o[u])==null?void 0:t.methods),events:S(c,(r=o[u])==null?void 0:r.events)})}return o}const Pt={INVALID_METHOD:{message:\"Invalid method.\",code:1001},INVALID_EVENT:{message:\"Invalid event.\",code:1002},INVALID_UPDATE_REQUEST:{message:\"Invalid update request.\",code:1003},INVALID_EXTEND_REQUEST:{message:\"Invalid extend request.\",code:1004},INVALID_SESSION_SETTLE_REQUEST:{message:\"Invalid session settle request.\",code:1005},UNAUTHORIZED_METHOD:{message:\"Unauthorized method.\",code:3001},UNAUTHORIZED_EVENT:{message:\"Unauthorized event.\",code:3002},UNAUTHORIZED_UPDATE_REQUEST:{message:\"Unauthorized update request.\",code:3003},UNAUTHORIZED_EXTEND_REQUEST:{message:\"Unauthorized extend request.\",code:3004},USER_REJECTED:{message:\"User rejected.\",code:5e3},USER_REJECTED_CHAINS:{message:\"User rejected chains.\",code:5001},USER_REJECTED_METHODS:{message:\"User rejected methods.\",code:5002},USER_REJECTED_EVENTS:{message:\"User rejected events.\",code:5003},UNSUPPORTED_CHAINS:{message:\"Unsupported chains.\",code:5100},UNSUPPORTED_METHODS:{message:\"Unsupported methods.\",code:5101},UNSUPPORTED_EVENTS:{message:\"Unsupported events.\",code:5102},UNSUPPORTED_ACCOUNTS:{message:\"Unsupported accounts.\",code:5103},UNSUPPORTED_NAMESPACE_KEY:{message:\"Unsupported namespace key.\",code:5104},USER_DISCONNECTED:{message:\"User disconnected.\",code:6e3},SESSION_SETTLEMENT_FAILED:{message:\"Session settlement failed.\",code:7e3},WC_METHOD_UNSUPPORTED:{message:\"Unsupported wc_ method.\",code:10001}},Tt={NOT_INITIALIZED:{message:\"Not initialized.\",code:1},NO_MATCHING_KEY:{message:\"No matching key.\",code:2},RESTORE_WILL_OVERRIDE:{message:\"Restore will override.\",code:3},RESUBSCRIBED:{message:\"Resubscribed.\",code:4},MISSING_OR_INVALID:{message:\"Missing or invalid.\",code:5},EXPIRED:{message:\"Expired.\",code:6},UNKNOWN_TYPE:{message:\"Unknown type.\",code:7},MISMATCHED_TOPIC:{message:\"Mismatched topic.\",code:8},NON_CONFORMING_NAMESPACES:{message:\"Non conforming namespaces.\",code:9}};function b(e,n){const{message:t,code:r}=Tt[e];return{message:n?`${t} ${n}`:t,code:r}}function w(e,n){const{message:t,code:r}=Pt[e];return{message:n?`${t} ${n}`:t,code:r}}function C(e,n){return Array.isArray(e)?typeof n<\"u\"&&e.length?e.every(n):!0:!1}function H(e){return Object.getPrototypeOf(e)===Object.prototype&&Object.keys(e).length}function I(e){return typeof e>\"u\"}function m(e,n){return n&&I(e)?!0:typeof e==\"string\"&&!!e.trim().length}function q(e,n){return n&&I(e)?!0:typeof e==\"number\"&&!isNaN(e)}function Rt(e,n){const{requiredNamespaces:t}=n,r=Object.keys(e.namespaces),o=Object.keys(t);let s=!0;return O(o,r)?(r.forEach(i=>{const{accounts:l,methods:d,events:c}=e.namespaces[i],u=R(l),a=t[i];(!O(k(i,a),u)||!O(a.methods,d)||!O(a.events,c))&&(s=!1)}),s):!1}function D(e){return m(e,!1)&&e.includes(\":\")?e.split(\":\").length===2:!1}function Xe(e){if(m(e,!1)&&e.includes(\":\")){const n=e.split(\":\");if(n.length===3){const t=n[0]+\":\"+n[1];return!!n[2]&&D(t)}}return!1}function wt(e){if(m(e,!1))try{return typeof new URL(e)<\"u\"}catch{return!1}return!1}function At(e){var n;return(n=e?.proposer)==null?void 0:n.publicKey}function Ut(e){return e?.topic}function _t(e,n){let t=null;return m(e?.publicKey,!1)||(t=b(\"MISSING_OR_INVALID\",`${n} controller public key should be a string`)),t}function oe(e){let n=!0;return C(e)?e.length&&(n=e.every(t=>m(t,!1))):n=!1,n}function en(e,n,t){let r=null;return C(n)&&n.length?n.forEach(o=>{r||D(o)||(r=w(\"UNSUPPORTED_CHAINS\",`${t}, chain ${o} should be a string and conform to \"namespace:chainId\" format`))}):D(e)||(r=w(\"UNSUPPORTED_CHAINS\",`${t}, chains must be defined as \"namespace:chainId\" e.g. \"eip155:1\": {...} in the namespace key OR as an array of CAIP-2 chainIds e.g. eip155: { chains: [\"eip155:1\", \"eip155:5\"] }`)),r}function nn(e,n,t){let r=null;return Object.entries(e).forEach(([o,s])=>{if(r)return;const i=en(o,k(o,s),`${n} ${t}`);i&&(r=i)}),r}function tn(e,n){let t=null;return C(e)?e.forEach(r=>{t||Xe(r)||(t=w(\"UNSUPPORTED_ACCOUNTS\",`${n}, account ${r} should be a string and conform to \"namespace:chainId:address\" format`))}):t=w(\"UNSUPPORTED_ACCOUNTS\",`${n}, accounts should be an array of strings conforming to \"namespace:chainId:address\" format`),t}function rn(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=tn(r?.accounts,`${n} namespace`);o&&(t=o)}),t}function on(e,n){let t=null;return oe(e?.methods)?oe(e?.events)||(t=w(\"UNSUPPORTED_EVENTS\",`${n}, events should be an array of strings or empty array for no events`)):t=w(\"UNSUPPORTED_METHODS\",`${n}, methods should be an array of strings or empty array for no methods`),t}function se(e,n){let t=null;return Object.values(e).forEach(r=>{if(t)return;const o=on(r,`${n}, namespace`);o&&(t=o)}),t}function $t(e,n,t){let r=null;if(e&&H(e)){const o=se(e,n);o&&(r=o);const s=nn(e,n,t);s&&(r=s)}else r=b(\"MISSING_OR_INVALID\",`${n}, ${t} should be an object with data`);return r}function sn(e,n){let t=null;if(e&&H(e)){const r=se(e,n);r&&(t=r);const o=rn(e,n);o&&(t=o)}else t=b(\"MISSING_OR_INVALID\",`${n}, namespaces should be an object with data`);return t}function cn(e){return m(e.protocol,!0)}function jt(e,n){let t=!1;return n&&!e?t=!0:e&&C(e)&&e.length&&e.forEach(r=>{t=cn(r)}),t}function Ct(e){return typeof e==\"number\"}function Dt(e){return typeof e<\"u\"&&typeof e!==null}function Vt(e){return!(!e||typeof e!=\"object\"||!e.code||!q(e.code,!1)||!e.message||!m(e.message,!1))}function Mt(e){return!(I(e)||!m(e.method,!1))}function kt(e){return!(I(e)||I(e.result)&&I(e.error)||!q(e.id,!1)||!m(e.jsonrpc,!1))}function Kt(e){return!(I(e)||!m(e.name,!1))}function Lt(e,n){return!(!D(n)||!Ye(e).includes(n))}function xt(e,n,t){return m(t,!1)?Je(e,n).includes(t):!1}function Ft(e,n,t){return m(t,!1)?Qe(e,n).includes(t):!1}function an(e,n,t){let r=null;const o=Ht(e),s=qt(n),i=Object.keys(o),l=Object.keys(s),d=un(Object.keys(e)),c=un(Object.keys(n)),u=d.filter(a=>!c.includes(a));return u.length&&(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces keys don't satisfy requiredNamespaces.\n Required: ${u.toString()}\n Received: ${Object.keys(n).toString()}`)),O(i,l)||(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces chains don't satisfy required namespaces.\n Required: ${i.toString()}\n Approved: ${l.toString()}`)),Object.keys(n).forEach(a=>{if(!a.includes(\":\")||r)return;const g=R(n[a].accounts);g.includes(a)||(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces accounts don't satisfy namespace accounts for ${a}\n Required: ${a}\n Approved: ${g.toString()}`))}),i.forEach(a=>{r||(O(o[a].methods,s[a].methods)?O(o[a].events,s[a].events)||(r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces events don't satisfy namespace events for ${a}`)):r=b(\"NON_CONFORMING_NAMESPACES\",`${t} namespaces methods don't satisfy namespace methods for ${a}`))}),r}function Ht(e){const n={};return Object.keys(e).forEach(t=>{var r;t.includes(\":\")?n[t]=e[t]:(r=e[t].chains)==null||r.forEach(o=>{n[o]={methods:e[t].methods,events:e[t].events}})}),n}function un(e){return[...new Set(e.map(n=>n.includes(\":\")?n.split(\":\")[0]:n))]}function qt(e){const n={};return Object.keys(e).forEach(t=>{if(t.includes(\":\"))n[t]=e[t];else{const r=R(e[t].accounts);r?.forEach(o=>{n[o]={accounts:e[t].accounts.filter(s=>s.includes(`${o}:`)),methods:e[t].methods,events:e[t].events}})}}),n}function zt(e,n){return q(e,!1)&&e<=n.max&&e>=n.min}export{B as BASE10,f as BASE16,L as BASE64,Ln as COLON,X as DEFAULT_DEPTH,F as EMPTY_SPACE,N as ENV_MAP,xn as ONE_THOUSAND,Ae as REACT_NATIVE_PRODUCT,xe as RELAYER_DEFAULT_PROTOCOL,_e as SDK_TYPE,Ue as SLASH,Y as TYPE_0,U as TYPE_1,x as UTF8,Ce as appendToQueryString,Gn as assertType,It as buildApprovedNamespaces,ot as calcExpiry,Zn as capitalize,Le as capitalizeWord,Xn as createDelayedPromise,et as createExpiringPromise,$ as decodeTypeByte,Cn as decrypt,Un as deriveSymKey,Z as deserialize,Se as encodeTypeByte,jn as encrypt,it as engineEvent,Qn as enumify,he as formatAccountId,Nn as formatAccountWithChain,ye as formatChainId,ne as formatExpirerTarget,tt as formatIdTarget,Tn as formatMessage,Wn as formatMessageContext,Ge as formatRelayParams,qn as formatRelayRpcUrl,nt as formatTopicTarget,Me as formatUA,yt as formatUri,wn as generateKeyPair,An as generateRandomBytes32,R as getAccountsChains,On as getAccountsFromNamespaces,Ee as getAddressFromAccount,bn as getAddressesFromAccounts,Fn as getAppMetadata,ve as getChainFromAccount,ge as getChainsFromAccounts,k as getChainsFromNamespace,Sn as getChainsFromNamespaces,In as getChainsFromRequiredNamespaces,be as getDidAddress,K as getDidAddressSegments,Ne as getDidChainId,j as getEnvironment,zn as getHttpUrl,b as getInternalError,Ve as getJavascriptID,De as getJavascriptOS,Ke as getLastItems,Pn as getNamespacedDidChainId,Ye as getNamespacesChains,Qe as getNamespacesEventsForChainId,Je as getNamespacesMethodsForChainId,Hn as getRelayClientMetadata,ut as getRelayProtocolApi,at as getRelayProtocolName,St as getRequiredNamespacesFromNamespaces,w as getSdkError,W as getUniqueValues,ct as handleDeeplinkRedirect,O as hasOverlap,_n as hashKey,$n as hashMessage,je as isBrowser,te as isCaipNamespace,an as isConformingNamespaces,st as isExpired,ee as isNode,At as isProposalStruct,$e as isReactNative,Rt as isSessionCompatible,Ut as isSessionStruct,Vn as isTypeOneEnvelope,I as isUndefined,Xe as isValidAccountId,tn as isValidAccounts,on as isValidActions,C as isValidArray,D as isValidChainId,en as isValidChains,_t as isValidController,Vt as isValidErrorReason,Kt as isValidEvent,Ct as isValidId,rn as isValidNamespaceAccounts,se as isValidNamespaceActions,nn as isValidNamespaceChains,oe as isValidNamespaceMethodsOrEvents,sn as isValidNamespaces,Lt as isValidNamespacesChainId,Ft as isValidNamespacesEvent,xt as isValidNamespacesRequest,q as isValidNumber,H as isValidObject,Dt as isValidParams,cn as isValidRelay,jt as isValidRelays,Mt as isValidRequest,zt as isValidRequestExpiry,$t as isValidRequiredNamespaces,kt as isValidResponse,m as isValidString,wt as isValidUrl,Jn as mapEntries,Bn as mapToObj,S as mergeArrays,re as normalizeNamespaces,Yn as objToMap,G as parseAccountId,me as parseChainId,ke as parseContextNames,rt as parseExpirerTarget,Ze as parseNamespaceKey,qe as parseRelayParams,ze as parseTopic,mt as parseUri,Ie as serialize,Dn as validateDecoding,Pe as validateEncoding};\n//# sourceMappingURL=index.es.js.map\n","import {\n Connector,\n __privateAdd,\n __privateGet,\n __privateMethod,\n __privateSet,\n __publicField\n} from \"./chunk-QYMCVNHT.js\";\n\n// src/walletConnect.ts\nimport { normalizeNamespaces } from \"@walletconnect/utils\";\nimport {\n SwitchChainError,\n UserRejectedRequestError,\n createWalletClient,\n custom,\n getAddress,\n numberToHex\n} from \"viem\";\nvar NAMESPACE = \"eip155\";\nvar STORE_KEY = \"store\";\nvar REQUESTED_CHAINS_KEY = \"requestedChains\";\nvar ADD_ETH_CHAIN_METHOD = \"wallet_addEthereumChain\";\nvar _provider, _initProviderPromise, _createProvider, createProvider_fn, _initProvider, initProvider_fn, _isChainsStale, isChainsStale_fn, _setupListeners, setupListeners_fn, _removeListeners, removeListeners_fn, _setRequestedChainsIds, setRequestedChainsIds_fn, _getRequestedChainsIds, getRequestedChainsIds_fn, _getNamespaceChainsIds, getNamespaceChainsIds_fn, _getNamespaceMethods, getNamespaceMethods_fn;\nvar WalletConnectConnector = class extends Connector {\n constructor(config) {\n super({\n ...config,\n options: { isNewChainsStale: true, ...config.options }\n });\n __privateAdd(this, _createProvider);\n __privateAdd(this, _initProvider);\n __privateAdd(this, _isChainsStale);\n __privateAdd(this, _setupListeners);\n __privateAdd(this, _removeListeners);\n __privateAdd(this, _setRequestedChainsIds);\n __privateAdd(this, _getRequestedChainsIds);\n __privateAdd(this, _getNamespaceChainsIds);\n __privateAdd(this, _getNamespaceMethods);\n __publicField(this, \"id\", \"walletConnect\");\n __publicField(this, \"name\", \"WalletConnect\");\n __publicField(this, \"ready\", true);\n __privateAdd(this, _provider, void 0);\n __privateAdd(this, _initProviderPromise, void 0);\n __publicField(this, \"onAccountsChanged\", (accounts) => {\n if (accounts.length === 0)\n this.emit(\"disconnect\");\n else\n this.emit(\"change\", { account: getAddress(accounts[0]) });\n });\n __publicField(this, \"onChainChanged\", (chainId) => {\n const id = Number(chainId);\n const unsupported = this.isChainUnsupported(id);\n this.emit(\"change\", { chain: { id, unsupported } });\n });\n __publicField(this, \"onDisconnect\", () => {\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, []);\n this.emit(\"disconnect\");\n });\n __publicField(this, \"onDisplayUri\", (uri) => {\n this.emit(\"message\", { type: \"display_uri\", data: uri });\n });\n __publicField(this, \"onConnect\", () => {\n this.emit(\"connect\", {});\n });\n __privateMethod(this, _createProvider, createProvider_fn).call(this);\n }\n async connect({ chainId, pairingTopic } = {}) {\n try {\n let targetChainId = chainId;\n if (!targetChainId) {\n const store = this.storage?.getItem(STORE_KEY);\n const lastUsedChainId = store?.state?.data?.chain?.id;\n if (lastUsedChainId && !this.isChainUnsupported(lastUsedChainId))\n targetChainId = lastUsedChainId;\n else\n targetChainId = this.chains[0]?.id;\n }\n if (!targetChainId)\n throw new Error(\"No chains found on connector.\");\n const provider = await this.getProvider();\n __privateMethod(this, _setupListeners, setupListeners_fn).call(this);\n const isChainsStale = __privateMethod(this, _isChainsStale, isChainsStale_fn).call(this);\n if (provider.session && isChainsStale)\n await provider.disconnect();\n if (!provider.session || isChainsStale) {\n const optionalChains = this.chains.filter((chain) => chain.id !== targetChainId).map((optionalChain) => optionalChain.id);\n this.emit(\"message\", { type: \"connecting\" });\n await provider.connect({\n pairingTopic,\n chains: [targetChainId],\n optionalChains: optionalChains.length ? optionalChains : void 0\n });\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, this.chains.map(({ id: id2 }) => id2));\n }\n const accounts = await provider.enable();\n const account = getAddress(accounts[0]);\n const id = await this.getChainId();\n const unsupported = this.isChainUnsupported(id);\n return {\n account,\n chain: { id, unsupported }\n };\n } catch (error) {\n if (/user rejected/i.test(error?.message)) {\n throw new UserRejectedRequestError(error);\n }\n throw error;\n }\n }\n async disconnect() {\n const provider = await this.getProvider();\n try {\n await provider.disconnect();\n } catch (error) {\n if (!/No matching key/i.test(error.message))\n throw error;\n } finally {\n __privateMethod(this, _removeListeners, removeListeners_fn).call(this);\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, []);\n }\n }\n async getAccount() {\n const { accounts } = await this.getProvider();\n return getAddress(accounts[0]);\n }\n async getChainId() {\n const { chainId } = await this.getProvider();\n return chainId;\n }\n async getProvider({ chainId } = {}) {\n if (!__privateGet(this, _provider))\n await __privateMethod(this, _createProvider, createProvider_fn).call(this);\n if (chainId)\n await this.switchChain(chainId);\n return __privateGet(this, _provider);\n }\n async getWalletClient({\n chainId\n } = {}) {\n const [provider, account] = await Promise.all([\n this.getProvider({ chainId }),\n this.getAccount()\n ]);\n const chain = this.chains.find((x) => x.id === chainId);\n if (!provider)\n throw new Error(\"provider is required.\");\n return createWalletClient({\n account,\n chain,\n transport: custom(provider)\n });\n }\n async isAuthorized() {\n try {\n const [account, provider] = await Promise.all([\n this.getAccount(),\n this.getProvider()\n ]);\n const isChainsStale = __privateMethod(this, _isChainsStale, isChainsStale_fn).call(this);\n if (!account)\n return false;\n if (isChainsStale && provider.session) {\n try {\n await provider.disconnect();\n } catch {\n }\n return false;\n }\n return true;\n } catch {\n return false;\n }\n }\n async switchChain(chainId) {\n const chain = this.chains.find((chain2) => chain2.id === chainId);\n if (!chain)\n throw new SwitchChainError(new Error(\"chain not found on connector.\"));\n try {\n const provider = await this.getProvider();\n const namespaceChains = __privateMethod(this, _getNamespaceChainsIds, getNamespaceChainsIds_fn).call(this);\n const namespaceMethods = __privateMethod(this, _getNamespaceMethods, getNamespaceMethods_fn).call(this);\n const isChainApproved = namespaceChains.includes(chainId);\n if (!isChainApproved && namespaceMethods.includes(ADD_ETH_CHAIN_METHOD)) {\n await provider.request({\n method: ADD_ETH_CHAIN_METHOD,\n params: [\n {\n chainId: numberToHex(chain.id),\n blockExplorerUrls: [chain.blockExplorers?.default?.url],\n chainName: chain.name,\n nativeCurrency: chain.nativeCurrency,\n rpcUrls: [...chain.rpcUrls.default.http]\n }\n ]\n });\n const requestedChains = __privateMethod(this, _getRequestedChainsIds, getRequestedChainsIds_fn).call(this);\n requestedChains.push(chainId);\n __privateMethod(this, _setRequestedChainsIds, setRequestedChainsIds_fn).call(this, requestedChains);\n }\n await provider.request({\n method: \"wallet_switchEthereumChain\",\n params: [{ chainId: numberToHex(chainId) }]\n });\n return chain;\n } catch (error) {\n const message = typeof error === \"string\" ? error : error?.message;\n if (/user rejected request/i.test(message)) {\n throw new UserRejectedRequestError(error);\n }\n throw new SwitchChainError(error);\n }\n }\n};\n_provider = new WeakMap();\n_initProviderPromise = new WeakMap();\n_createProvider = new WeakSet();\ncreateProvider_fn = async function() {\n if (!__privateGet(this, _initProviderPromise) && typeof window !== \"undefined\") {\n __privateSet(this, _initProviderPromise, __privateMethod(this, _initProvider, initProvider_fn).call(this));\n }\n return __privateGet(this, _initProviderPromise);\n};\n_initProvider = new WeakSet();\ninitProvider_fn = async function() {\n const { EthereumProvider, OPTIONAL_EVENTS, OPTIONAL_METHODS } = await import(\"@walletconnect/ethereum-provider\");\n const [defaultChain, ...optionalChains] = this.chains.map(({ id }) => id);\n if (defaultChain) {\n const {\n projectId,\n showQrModal = true,\n qrModalOptions,\n metadata,\n relayUrl\n } = this.options;\n __privateSet(this, _provider, await EthereumProvider.init({\n showQrModal,\n qrModalOptions,\n projectId,\n optionalMethods: OPTIONAL_METHODS,\n optionalEvents: OPTIONAL_EVENTS,\n chains: [defaultChain],\n optionalChains: optionalChains.length ? optionalChains : void 0,\n rpcMap: Object.fromEntries(\n this.chains.map((chain) => [\n chain.id,\n chain.rpcUrls.default.http[0]\n ])\n ),\n metadata,\n relayUrl\n }));\n }\n};\n_isChainsStale = new WeakSet();\nisChainsStale_fn = function() {\n const namespaceMethods = __privateMethod(this, _getNamespaceMethods, getNamespaceMethods_fn).call(this);\n if (namespaceMethods.includes(ADD_ETH_CHAIN_METHOD))\n return false;\n if (!this.options.isNewChainsStale)\n return false;\n const requestedChains = __privateMethod(this, _getRequestedChainsIds, getRequestedChainsIds_fn).call(this);\n const connectorChains = this.chains.map(({ id }) => id);\n const namespaceChains = __privateMethod(this, _getNamespaceChainsIds, getNamespaceChainsIds_fn).call(this);\n if (namespaceChains.length && !namespaceChains.some((id) => connectorChains.includes(id)))\n return false;\n return !connectorChains.every((id) => requestedChains.includes(id));\n};\n_setupListeners = new WeakSet();\nsetupListeners_fn = function() {\n if (!__privateGet(this, _provider))\n return;\n __privateMethod(this, _removeListeners, removeListeners_fn).call(this);\n __privateGet(this, _provider).on(\"accountsChanged\", this.onAccountsChanged);\n __privateGet(this, _provider).on(\"chainChanged\", this.onChainChanged);\n __privateGet(this, _provider).on(\"disconnect\", this.onDisconnect);\n __privateGet(this, _provider).on(\"session_delete\", this.onDisconnect);\n __privateGet(this, _provider).on(\"display_uri\", this.onDisplayUri);\n __privateGet(this, _provider).on(\"connect\", this.onConnect);\n};\n_removeListeners = new WeakSet();\nremoveListeners_fn = function() {\n if (!__privateGet(this, _provider))\n return;\n __privateGet(this, _provider).removeListener(\"accountsChanged\", this.onAccountsChanged);\n __privateGet(this, _provider).removeListener(\"chainChanged\", this.onChainChanged);\n __privateGet(this, _provider).removeListener(\"disconnect\", this.onDisconnect);\n __privateGet(this, _provider).removeListener(\"session_delete\", this.onDisconnect);\n __privateGet(this, _provider).removeListener(\"display_uri\", this.onDisplayUri);\n __privateGet(this, _provider).removeListener(\"connect\", this.onConnect);\n};\n_setRequestedChainsIds = new WeakSet();\nsetRequestedChainsIds_fn = function(chains) {\n this.storage?.setItem(REQUESTED_CHAINS_KEY, chains);\n};\n_getRequestedChainsIds = new WeakSet();\ngetRequestedChainsIds_fn = function() {\n return this.storage?.getItem(REQUESTED_CHAINS_KEY) ?? [];\n};\n_getNamespaceChainsIds = new WeakSet();\ngetNamespaceChainsIds_fn = function() {\n if (!__privateGet(this, _provider))\n return [];\n const namespaces = __privateGet(this, _provider).session?.namespaces;\n if (!namespaces)\n return [];\n const normalizedNamespaces = normalizeNamespaces(namespaces);\n const chainIds = normalizedNamespaces[NAMESPACE]?.chains?.map(\n (chain) => parseInt(chain.split(\":\")[1] || \"\")\n );\n return chainIds ?? [];\n};\n_getNamespaceMethods = new WeakSet();\ngetNamespaceMethods_fn = function() {\n if (!__privateGet(this, _provider))\n return [];\n const namespaces = __privateGet(this, _provider).session?.namespaces;\n if (!namespaces)\n return [];\n const normalizedNamespaces = normalizeNamespaces(namespaces);\n const methods = normalizedNamespaces[NAMESPACE]?.methods;\n return methods ?? [];\n};\nexport {\n WalletConnectConnector\n};\n","import { Connector } from '@wagmi/core';\nimport { W3mFrameProvider } from '@web3modal/wallet';\nimport { createWalletClient, custom, SwitchChainError } from 'viem';\nexport class EmailConnector extends Connector {\n constructor(config) {\n super(config);\n this.id = 'w3mEmail';\n this.name = 'Web3Modal Email';\n this.ready = true;\n this.provider = {};\n if (typeof window !== 'undefined') {\n this.provider = new W3mFrameProvider(config.options.projectId);\n }\n }\n async getProvider() {\n return Promise.resolve(this.provider);\n }\n async connect(options = {}) {\n const { address, chainId } = await this.provider.connect({ chainId: options.chainId });\n return {\n account: address,\n chain: {\n id: chainId,\n unsupported: this.isChainUnsupported(1)\n }\n };\n }\n async switchChain(chainId) {\n try {\n const chain = this.chains.find(c => c.id === chainId);\n if (!chain) {\n throw new SwitchChainError(new Error('chain not found on connector.'));\n }\n await this.provider.switchNetwork(chainId);\n const unsupported = this.isChainUnsupported(chainId);\n this.emit('change', { chain: { id: chainId, unsupported } });\n return chain;\n }\n catch (error) {\n if (error instanceof Error) {\n throw new SwitchChainError(error);\n }\n throw error;\n }\n }\n async disconnect() {\n await this.provider.disconnect();\n }\n async getAccount() {\n const { address } = await this.provider.connect();\n return address;\n }\n async getChainId() {\n const { chainId } = await this.provider.getChainId();\n return chainId;\n }\n async getWalletClient() {\n const { address, chainId } = await this.provider.connect();\n return Promise.resolve(createWalletClient({\n account: address,\n chain: { id: chainId },\n transport: custom(this.provider)\n }));\n }\n async isAuthorized() {\n const { isConnected } = await this.provider.isConnected();\n return isConnected;\n }\n onAccountsChanged() {\n }\n onChainChanged() {\n }\n onDisconnect() {\n }\n}\n//# sourceMappingURL=EmailConnector.js.map","import { CoreHelperUtil } from '@web3modal/scaffold';\nimport { ConstantsUtil, PresetsUtil } from '@web3modal/scaffold-utils';\nconst RPC_URL = CoreHelperUtil.getBlockchainApiUrl();\nexport function walletConnectProvider({ projectId }) {\n return function provider(chain) {\n if (!PresetsUtil.WalletConnectRpcChainIds.includes(chain.id)) {\n return null;\n }\n const baseHttpUrl = `${RPC_URL}/v1/?chainId=${ConstantsUtil.EIP155}:${chain.id}&projectId=${projectId}`;\n return {\n chain: {\n ...chain,\n rpcUrls: {\n ...chain.rpcUrls,\n default: { http: [baseHttpUrl] }\n }\n },\n rpcUrls: {\n http: [baseHttpUrl]\n }\n };\n };\n}\n//# sourceMappingURL=provider.js.map","import '@web3modal/polyfills';\nimport { configureChains, createConfig } from 'wagmi';\nimport { CoinbaseWalletConnector } from 'wagmi/connectors/coinbaseWallet';\nimport { InjectedConnector } from 'wagmi/connectors/injected';\nimport { WalletConnectConnector } from 'wagmi/connectors/walletConnect';\nimport { publicProvider } from 'wagmi/providers/public';\nimport { EIP6963Connector } from '../connectors/EIP6963Connector.js';\nimport { EmailConnector } from '../connectors/EmailConnector.js';\nimport { walletConnectProvider } from './provider.js';\nexport function defaultWagmiConfig({ projectId, chains, metadata, enableInjected, enableCoinbase, enableEIP6963, enableEmail, enableWalletConnect }) {\n const { publicClient } = configureChains(chains, [\n walletConnectProvider({ projectId }),\n publicProvider()\n ]);\n const connectors = [];\n if (enableWalletConnect !== false) {\n connectors.push(new WalletConnectConnector({ chains, options: { projectId, showQrModal: false, metadata } }));\n }\n if (enableInjected !== false) {\n connectors.push(new InjectedConnector({ chains, options: { shimDisconnect: true } }));\n }\n if (enableEIP6963 !== false) {\n connectors.push(new EIP6963Connector({ chains }));\n }\n if (enableCoinbase !== false) {\n connectors.push(new CoinbaseWalletConnector({ chains, options: { appName: metadata?.name ?? 'Unknown' } }));\n }\n if (enableEmail === true) {\n connectors.push(new EmailConnector({ chains, options: { projectId } }));\n }\n return createConfig({\n autoConnect: true,\n connectors,\n publicClient\n });\n}\n//# sourceMappingURL=defaultWagmiReactConfig.js.map","import \"../chunk-MQXBDTVK.js\";\n\n// src/providers/public.ts\nfunction publicProvider() {\n return function(chain) {\n if (!chain.rpcUrls.public.http[0])\n return null;\n return {\n chain,\n rpcUrls: chain.rpcUrls.public\n };\n };\n}\nexport {\n publicProvider\n};\n","'use client';\nimport { getWeb3Modal } from '@web3modal/scaffold-react';\nimport { Web3Modal } from '../src/client.js';\nimport { ConstantsUtil } from '@web3modal/scaffold-utils';\nlet modal = undefined;\nexport function createWeb3Modal(options) {\n if (!modal) {\n modal = new Web3Modal({\n ...options,\n _sdkVersion: `react-wagmi-${ConstantsUtil.VERSION}`\n });\n getWeb3Modal(modal);\n }\n return modal;\n}\nexport { useWeb3ModalTheme, useWeb3Modal, useWeb3ModalState, useWeb3ModalEvents } from '@web3modal/scaffold-react';\nexport { EIP6963Connector } from '../src/connectors/EIP6963Connector.js';\nexport { defaultWagmiConfig } from '../src/utils/defaultWagmiReactConfig.js';\n//# sourceMappingURL=react.js.map","/*\r\n * bignumber.js v9.1.2\r\n * A JavaScript library for arbitrary-precision arithmetic.\r\n * https://github.com/MikeMcl/bignumber.js\r\n * Copyright (c) 2022 Michael Mclaughlin \r\n * MIT Licensed.\r\n *\r\n * BigNumber.prototype methods | BigNumber methods\r\n * |\r\n * absoluteValue abs | clone\r\n * comparedTo | config set\r\n * decimalPlaces dp | DECIMAL_PLACES\r\n * dividedBy div | ROUNDING_MODE\r\n * dividedToIntegerBy idiv | EXPONENTIAL_AT\r\n * exponentiatedBy pow | RANGE\r\n * integerValue | CRYPTO\r\n * isEqualTo eq | MODULO_MODE\r\n * isFinite | POW_PRECISION\r\n * isGreaterThan gt | FORMAT\r\n * isGreaterThanOrEqualTo gte | ALPHABET\r\n * isInteger | isBigNumber\r\n * isLessThan lt | maximum max\r\n * isLessThanOrEqualTo lte | minimum min\r\n * isNaN | random\r\n * isNegative | sum\r\n * isPositive |\r\n * isZero |\r\n * minus |\r\n * modulo mod |\r\n * multipliedBy times |\r\n * negated |\r\n * plus |\r\n * precision sd |\r\n * shiftedBy |\r\n * squareRoot sqrt |\r\n * toExponential |\r\n * toFixed |\r\n * toFormat |\r\n * toFraction |\r\n * toJSON |\r\n * toNumber |\r\n * toPrecision |\r\n * toString |\r\n * valueOf |\r\n *\r\n */\r\n\r\n\r\nvar\r\n isNumeric = /^-?(?:\\d+(?:\\.\\d*)?|\\.\\d+)(?:e[+-]?\\d+)?$/i,\r\n mathceil = Math.ceil,\r\n mathfloor = Math.floor,\r\n\r\n bignumberError = '[BigNumber Error] ',\r\n tooManyDigits = bignumberError + 'Number primitive has more than 15 significant digits: ',\r\n\r\n BASE = 1e14,\r\n LOG_BASE = 14,\r\n MAX_SAFE_INTEGER = 0x1fffffffffffff, // 2^53 - 1\r\n // MAX_INT32 = 0x7fffffff, // 2^31 - 1\r\n POWS_TEN = [1, 10, 100, 1e3, 1e4, 1e5, 1e6, 1e7, 1e8, 1e9, 1e10, 1e11, 1e12, 1e13],\r\n SQRT_BASE = 1e7,\r\n\r\n // EDITABLE\r\n // The limit on the value of DECIMAL_PLACES, TO_EXP_NEG, TO_EXP_POS, MIN_EXP, MAX_EXP, and\r\n // the arguments to toExponential, toFixed, toFormat, and toPrecision.\r\n MAX = 1E9; // 0 to MAX_INT32\r\n\r\n\r\n/*\r\n * Create and return a BigNumber constructor.\r\n */\r\nfunction clone(configObject) {\r\n var div, convertBase, parseNumeric,\r\n P = BigNumber.prototype = { constructor: BigNumber, toString: null, valueOf: null },\r\n ONE = new BigNumber(1),\r\n\r\n\r\n //----------------------------- EDITABLE CONFIG DEFAULTS -------------------------------\r\n\r\n\r\n // The default values below must be integers within the inclusive ranges stated.\r\n // The values can also be changed at run-time using BigNumber.set.\r\n\r\n // The maximum number of decimal places for operations involving division.\r\n DECIMAL_PLACES = 20, // 0 to MAX\r\n\r\n // The rounding mode used when rounding to the above decimal places, and when using\r\n // toExponential, toFixed, toFormat and toPrecision, and round (default value).\r\n // UP 0 Away from zero.\r\n // DOWN 1 Towards zero.\r\n // CEIL 2 Towards +Infinity.\r\n // FLOOR 3 Towards -Infinity.\r\n // HALF_UP 4 Towards nearest neighbour. If equidistant, up.\r\n // HALF_DOWN 5 Towards nearest neighbour. If equidistant, down.\r\n // HALF_EVEN 6 Towards nearest neighbour. If equidistant, towards even neighbour.\r\n // HALF_CEIL 7 Towards nearest neighbour. If equidistant, towards +Infinity.\r\n // HALF_FLOOR 8 Towards nearest neighbour. If equidistant, towards -Infinity.\r\n ROUNDING_MODE = 4, // 0 to 8\r\n\r\n // EXPONENTIAL_AT : [TO_EXP_NEG , TO_EXP_POS]\r\n\r\n // The exponent value at and beneath which toString returns exponential notation.\r\n // Number type: -7\r\n TO_EXP_NEG = -7, // 0 to -MAX\r\n\r\n // The exponent value at and above which toString returns exponential notation.\r\n // Number type: 21\r\n TO_EXP_POS = 21, // 0 to MAX\r\n\r\n // RANGE : [MIN_EXP, MAX_EXP]\r\n\r\n // The minimum exponent value, beneath which underflow to zero occurs.\r\n // Number type: -324 (5e-324)\r\n MIN_EXP = -1e7, // -1 to -MAX\r\n\r\n // The maximum exponent value, above which overflow to Infinity occurs.\r\n // Number type: 308 (1.7976931348623157e+308)\r\n // For MAX_EXP > 1e7, e.g. new BigNumber('1e100000000').plus(1) may be slow.\r\n MAX_EXP = 1e7, // 1 to MAX\r\n\r\n // Whether to use cryptographically-secure random number generation, if available.\r\n CRYPTO = false, // true or false\r\n\r\n // The modulo mode used when calculating the modulus: a mod n.\r\n // The quotient (q = a / n) is calculated according to the corresponding rounding mode.\r\n // The remainder (r) is calculated as: r = a - n * q.\r\n //\r\n // UP 0 The remainder is positive if the dividend is negative, else is negative.\r\n // DOWN 1 The remainder has the same sign as the dividend.\r\n // This modulo mode is commonly known as 'truncated division' and is\r\n // equivalent to (a % n) in JavaScript.\r\n // FLOOR 3 The remainder has the same sign as the divisor (Python %).\r\n // HALF_EVEN 6 This modulo mode implements the IEEE 754 remainder function.\r\n // EUCLID 9 Euclidian division. q = sign(n) * floor(a / abs(n)).\r\n // The remainder is always positive.\r\n //\r\n // The truncated division, floored division, Euclidian division and IEEE 754 remainder\r\n // modes are commonly used for the modulus operation.\r\n // Although the other rounding modes can also be used, they may not give useful results.\r\n MODULO_MODE = 1, // 0 to 9\r\n\r\n // The maximum number of significant digits of the result of the exponentiatedBy operation.\r\n // If POW_PRECISION is 0, there will be unlimited significant digits.\r\n POW_PRECISION = 0, // 0 to MAX\r\n\r\n // The format specification used by the BigNumber.prototype.toFormat method.\r\n FORMAT = {\r\n prefix: '',\r\n groupSize: 3,\r\n secondaryGroupSize: 0,\r\n groupSeparator: ',',\r\n decimalSeparator: '.',\r\n fractionGroupSize: 0,\r\n fractionGroupSeparator: '\\xA0', // non-breaking space\r\n suffix: ''\r\n },\r\n\r\n // The alphabet used for base conversion. It must be at least 2 characters long, with no '+',\r\n // '-', '.', whitespace, or repeated character.\r\n // '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ$_'\r\n ALPHABET = '0123456789abcdefghijklmnopqrstuvwxyz',\r\n alphabetHasNormalDecimalDigits = true;\r\n\r\n\r\n //------------------------------------------------------------------------------------------\r\n\r\n\r\n // CONSTRUCTOR\r\n\r\n\r\n /*\r\n * The BigNumber constructor and exported function.\r\n * Create and return a new instance of a BigNumber object.\r\n *\r\n * v {number|string|BigNumber} A numeric value.\r\n * [b] {number} The base of v. Integer, 2 to ALPHABET.length inclusive.\r\n */\r\n function BigNumber(v, b) {\r\n var alphabet, c, caseChanged, e, i, isNum, len, str,\r\n x = this;\r\n\r\n // Enable constructor call without `new`.\r\n if (!(x instanceof BigNumber)) return new BigNumber(v, b);\r\n\r\n if (b == null) {\r\n\r\n if (v && v._isBigNumber === true) {\r\n x.s = v.s;\r\n\r\n if (!v.c || v.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else if (v.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = v.e;\r\n x.c = v.c.slice();\r\n }\r\n\r\n return;\r\n }\r\n\r\n if ((isNum = typeof v == 'number') && v * 0 == 0) {\r\n\r\n // Use `1 / n` to handle minus zero also.\r\n x.s = 1 / v < 0 ? (v = -v, -1) : 1;\r\n\r\n // Fast path for integers, where n < 2147483648 (2**31).\r\n if (v === ~~v) {\r\n for (e = 0, i = v; i >= 10; i /= 10, e++);\r\n\r\n if (e > MAX_EXP) {\r\n x.c = x.e = null;\r\n } else {\r\n x.e = e;\r\n x.c = [v];\r\n }\r\n\r\n return;\r\n }\r\n\r\n str = String(v);\r\n } else {\r\n\r\n if (!isNumeric.test(str = String(v))) return parseNumeric(x, str, isNum);\r\n\r\n x.s = str.charCodeAt(0) == 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n\r\n // Exponential form?\r\n if ((i = str.search(/e/i)) > 0) {\r\n\r\n // Determine exponent.\r\n if (e < 0) e = i;\r\n e += +str.slice(i + 1);\r\n str = str.substring(0, i);\r\n } else if (e < 0) {\r\n\r\n // Integer.\r\n e = str.length;\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n\r\n // Allow exponential notation to be used with base 10 argument, while\r\n // also rounding to DECIMAL_PLACES as with other bases.\r\n if (b == 10 && alphabetHasNormalDecimalDigits) {\r\n x = new BigNumber(v);\r\n return round(x, DECIMAL_PLACES + x.e + 1, ROUNDING_MODE);\r\n }\r\n\r\n str = String(v);\r\n\r\n if (isNum = typeof v == 'number') {\r\n\r\n // Avoid potential interpretation of Infinity and NaN as base 44+ values.\r\n if (v * 0 != 0) return parseNumeric(x, str, isNum, b);\r\n\r\n x.s = 1 / v < 0 ? (str = str.slice(1), -1) : 1;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (BigNumber.DEBUG && str.replace(/^0\\.0*|\\./, '').length > 15) {\r\n throw Error\r\n (tooManyDigits + v);\r\n }\r\n } else {\r\n x.s = str.charCodeAt(0) === 45 ? (str = str.slice(1), -1) : 1;\r\n }\r\n\r\n alphabet = ALPHABET.slice(0, b);\r\n e = i = 0;\r\n\r\n // Check that str is a valid base b number.\r\n // Don't use RegExp, so alphabet can contain special characters.\r\n for (len = str.length; i < len; i++) {\r\n if (alphabet.indexOf(c = str.charAt(i)) < 0) {\r\n if (c == '.') {\r\n\r\n // If '.' is not the first character and it has not be found before.\r\n if (i > e) {\r\n e = len;\r\n continue;\r\n }\r\n } else if (!caseChanged) {\r\n\r\n // Allow e.g. hexadecimal 'FF' as well as 'ff'.\r\n if (str == str.toUpperCase() && (str = str.toLowerCase()) ||\r\n str == str.toLowerCase() && (str = str.toUpperCase())) {\r\n caseChanged = true;\r\n i = -1;\r\n e = 0;\r\n continue;\r\n }\r\n }\r\n\r\n return parseNumeric(x, String(v), isNum, b);\r\n }\r\n }\r\n\r\n // Prevent later check for length on converted number.\r\n isNum = false;\r\n str = convertBase(str, b, 10, x.s);\r\n\r\n // Decimal point?\r\n if ((e = str.indexOf('.')) > -1) str = str.replace('.', '');\r\n else e = str.length;\r\n }\r\n\r\n // Determine leading zeros.\r\n for (i = 0; str.charCodeAt(i) === 48; i++);\r\n\r\n // Determine trailing zeros.\r\n for (len = str.length; str.charCodeAt(--len) === 48;);\r\n\r\n if (str = str.slice(i, ++len)) {\r\n len -= i;\r\n\r\n // '[BigNumber Error] Number primitive has more than 15 significant digits: {n}'\r\n if (isNum && BigNumber.DEBUG &&\r\n len > 15 && (v > MAX_SAFE_INTEGER || v !== mathfloor(v))) {\r\n throw Error\r\n (tooManyDigits + (x.s * v));\r\n }\r\n\r\n // Overflow?\r\n if ((e = e - i - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n x.c = x.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n } else {\r\n x.e = e;\r\n x.c = [];\r\n\r\n // Transform base\r\n\r\n // e is the base 10 exponent.\r\n // i is where to slice str to get the first element of the coefficient array.\r\n i = (e + 1) % LOG_BASE;\r\n if (e < 0) i += LOG_BASE; // i < 1\r\n\r\n if (i < len) {\r\n if (i) x.c.push(+str.slice(0, i));\r\n\r\n for (len -= LOG_BASE; i < len;) {\r\n x.c.push(+str.slice(i, i += LOG_BASE));\r\n }\r\n\r\n i = LOG_BASE - (str = str.slice(i)).length;\r\n } else {\r\n i -= len;\r\n }\r\n\r\n for (; i--; str += '0');\r\n x.c.push(+str);\r\n }\r\n } else {\r\n\r\n // Zero.\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n\r\n // CONSTRUCTOR PROPERTIES\r\n\r\n\r\n BigNumber.clone = clone;\r\n\r\n BigNumber.ROUND_UP = 0;\r\n BigNumber.ROUND_DOWN = 1;\r\n BigNumber.ROUND_CEIL = 2;\r\n BigNumber.ROUND_FLOOR = 3;\r\n BigNumber.ROUND_HALF_UP = 4;\r\n BigNumber.ROUND_HALF_DOWN = 5;\r\n BigNumber.ROUND_HALF_EVEN = 6;\r\n BigNumber.ROUND_HALF_CEIL = 7;\r\n BigNumber.ROUND_HALF_FLOOR = 8;\r\n BigNumber.EUCLID = 9;\r\n\r\n\r\n /*\r\n * Configure infrequently-changing library-wide settings.\r\n *\r\n * Accept an object with the following optional properties (if the value of a property is\r\n * a number, it must be an integer within the inclusive range stated):\r\n *\r\n * DECIMAL_PLACES {number} 0 to MAX\r\n * ROUNDING_MODE {number} 0 to 8\r\n * EXPONENTIAL_AT {number|number[]} -MAX to MAX or [-MAX to 0, 0 to MAX]\r\n * RANGE {number|number[]} -MAX to MAX (not zero) or [-MAX to -1, 1 to MAX]\r\n * CRYPTO {boolean} true or false\r\n * MODULO_MODE {number} 0 to 9\r\n * POW_PRECISION {number} 0 to MAX\r\n * ALPHABET {string} A string of two or more unique characters which does\r\n * not contain '.'.\r\n * FORMAT {object} An object with some of the following properties:\r\n * prefix {string}\r\n * groupSize {number}\r\n * secondaryGroupSize {number}\r\n * groupSeparator {string}\r\n * decimalSeparator {string}\r\n * fractionGroupSize {number}\r\n * fractionGroupSeparator {string}\r\n * suffix {string}\r\n *\r\n * (The values assigned to the above FORMAT object properties are not checked for validity.)\r\n *\r\n * E.g.\r\n * BigNumber.config({ DECIMAL_PLACES : 20, ROUNDING_MODE : 4 })\r\n *\r\n * Ignore properties/parameters set to null or undefined, except for ALPHABET.\r\n *\r\n * Return an object with the properties current values.\r\n */\r\n BigNumber.config = BigNumber.set = function (obj) {\r\n var p, v;\r\n\r\n if (obj != null) {\r\n\r\n if (typeof obj == 'object') {\r\n\r\n // DECIMAL_PLACES {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] DECIMAL_PLACES {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'DECIMAL_PLACES')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n DECIMAL_PLACES = v;\r\n }\r\n\r\n // ROUNDING_MODE {number} Integer, 0 to 8 inclusive.\r\n // '[BigNumber Error] ROUNDING_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'ROUNDING_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 8, p);\r\n ROUNDING_MODE = v;\r\n }\r\n\r\n // EXPONENTIAL_AT {number|number[]}\r\n // Integer, -MAX to MAX inclusive or\r\n // [integer -MAX to 0 inclusive, 0 to MAX inclusive].\r\n // '[BigNumber Error] EXPONENTIAL_AT {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'EXPONENTIAL_AT')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, 0, p);\r\n intCheck(v[1], 0, MAX, p);\r\n TO_EXP_NEG = v[0];\r\n TO_EXP_POS = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n TO_EXP_NEG = -(TO_EXP_POS = v < 0 ? -v : v);\r\n }\r\n }\r\n\r\n // RANGE {number|number[]} Non-zero integer, -MAX to MAX inclusive or\r\n // [integer -MAX to -1 inclusive, integer 1 to MAX inclusive].\r\n // '[BigNumber Error] RANGE {not a primitive number|not an integer|out of range|cannot be zero}: {v}'\r\n if (obj.hasOwnProperty(p = 'RANGE')) {\r\n v = obj[p];\r\n if (v && v.pop) {\r\n intCheck(v[0], -MAX, -1, p);\r\n intCheck(v[1], 1, MAX, p);\r\n MIN_EXP = v[0];\r\n MAX_EXP = v[1];\r\n } else {\r\n intCheck(v, -MAX, MAX, p);\r\n if (v) {\r\n MIN_EXP = -(MAX_EXP = v < 0 ? -v : v);\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' cannot be zero: ' + v);\r\n }\r\n }\r\n }\r\n\r\n // CRYPTO {boolean} true or false.\r\n // '[BigNumber Error] CRYPTO not true or false: {v}'\r\n // '[BigNumber Error] crypto unavailable'\r\n if (obj.hasOwnProperty(p = 'CRYPTO')) {\r\n v = obj[p];\r\n if (v === !!v) {\r\n if (v) {\r\n if (typeof crypto != 'undefined' && crypto &&\r\n (crypto.getRandomValues || crypto.randomBytes)) {\r\n CRYPTO = v;\r\n } else {\r\n CRYPTO = !v;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n } else {\r\n CRYPTO = v;\r\n }\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' not true or false: ' + v);\r\n }\r\n }\r\n\r\n // MODULO_MODE {number} Integer, 0 to 9 inclusive.\r\n // '[BigNumber Error] MODULO_MODE {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'MODULO_MODE')) {\r\n v = obj[p];\r\n intCheck(v, 0, 9, p);\r\n MODULO_MODE = v;\r\n }\r\n\r\n // POW_PRECISION {number} Integer, 0 to MAX inclusive.\r\n // '[BigNumber Error] POW_PRECISION {not a primitive number|not an integer|out of range}: {v}'\r\n if (obj.hasOwnProperty(p = 'POW_PRECISION')) {\r\n v = obj[p];\r\n intCheck(v, 0, MAX, p);\r\n POW_PRECISION = v;\r\n }\r\n\r\n // FORMAT {object}\r\n // '[BigNumber Error] FORMAT not an object: {v}'\r\n if (obj.hasOwnProperty(p = 'FORMAT')) {\r\n v = obj[p];\r\n if (typeof v == 'object') FORMAT = v;\r\n else throw Error\r\n (bignumberError + p + ' not an object: ' + v);\r\n }\r\n\r\n // ALPHABET {string}\r\n // '[BigNumber Error] ALPHABET invalid: {v}'\r\n if (obj.hasOwnProperty(p = 'ALPHABET')) {\r\n v = obj[p];\r\n\r\n // Disallow if less than two characters,\r\n // or if it contains '+', '-', '.', whitespace, or a repeated character.\r\n if (typeof v == 'string' && !/^.?$|[+\\-.\\s]|(.).*\\1/.test(v)) {\r\n alphabetHasNormalDecimalDigits = v.slice(0, 10) == '0123456789';\r\n ALPHABET = v;\r\n } else {\r\n throw Error\r\n (bignumberError + p + ' invalid: ' + v);\r\n }\r\n }\r\n\r\n } else {\r\n\r\n // '[BigNumber Error] Object expected: {v}'\r\n throw Error\r\n (bignumberError + 'Object expected: ' + obj);\r\n }\r\n }\r\n\r\n return {\r\n DECIMAL_PLACES: DECIMAL_PLACES,\r\n ROUNDING_MODE: ROUNDING_MODE,\r\n EXPONENTIAL_AT: [TO_EXP_NEG, TO_EXP_POS],\r\n RANGE: [MIN_EXP, MAX_EXP],\r\n CRYPTO: CRYPTO,\r\n MODULO_MODE: MODULO_MODE,\r\n POW_PRECISION: POW_PRECISION,\r\n FORMAT: FORMAT,\r\n ALPHABET: ALPHABET\r\n };\r\n };\r\n\r\n\r\n /*\r\n * Return true if v is a BigNumber instance, otherwise return false.\r\n *\r\n * If BigNumber.DEBUG is true, throw if a BigNumber instance is not well-formed.\r\n *\r\n * v {any}\r\n *\r\n * '[BigNumber Error] Invalid BigNumber: {v}'\r\n */\r\n BigNumber.isBigNumber = function (v) {\r\n if (!v || v._isBigNumber !== true) return false;\r\n if (!BigNumber.DEBUG) return true;\r\n\r\n var i, n,\r\n c = v.c,\r\n e = v.e,\r\n s = v.s;\r\n\r\n out: if ({}.toString.call(c) == '[object Array]') {\r\n\r\n if ((s === 1 || s === -1) && e >= -MAX && e <= MAX && e === mathfloor(e)) {\r\n\r\n // If the first element is zero, the BigNumber value must be zero.\r\n if (c[0] === 0) {\r\n if (e === 0 && c.length === 1) return true;\r\n break out;\r\n }\r\n\r\n // Calculate number of digits that c[0] should have, based on the exponent.\r\n i = (e + 1) % LOG_BASE;\r\n if (i < 1) i += LOG_BASE;\r\n\r\n // Calculate number of digits of c[0].\r\n //if (Math.ceil(Math.log(c[0] + 1) / Math.LN10) == i) {\r\n if (String(c[0]).length == i) {\r\n\r\n for (i = 0; i < c.length; i++) {\r\n n = c[i];\r\n if (n < 0 || n >= BASE || n !== mathfloor(n)) break out;\r\n }\r\n\r\n // Last element cannot be zero, unless it is the only element.\r\n if (n !== 0) return true;\r\n }\r\n }\r\n\r\n // Infinity/NaN\r\n } else if (c === null && e === null && (s === null || s === 1 || s === -1)) {\r\n return true;\r\n }\r\n\r\n throw Error\r\n (bignumberError + 'Invalid BigNumber: ' + v);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the maximum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.maximum = BigNumber.max = function () {\r\n return maxOrMin(arguments, -1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the minimum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.minimum = BigNumber.min = function () {\r\n return maxOrMin(arguments, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber with a random value equal to or greater than 0 and less than 1,\r\n * and with dp, or DECIMAL_PLACES if dp is omitted, decimal places (or less if trailing\r\n * zeros are produced).\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp}'\r\n * '[BigNumber Error] crypto unavailable'\r\n */\r\n BigNumber.random = (function () {\r\n var pow2_53 = 0x20000000000000;\r\n\r\n // Return a 53 bit integer n, where 0 <= n < 9007199254740992.\r\n // Check if Math.random() produces more than 32 bits of randomness.\r\n // If it does, assume at least 53 bits are produced, otherwise assume at least 30 bits.\r\n // 0x40000000 is 2^30, 0x800000 is 2^23, 0x1fffff is 2^21 - 1.\r\n var random53bitInt = (Math.random() * pow2_53) & 0x1fffff\r\n ? function () { return mathfloor(Math.random() * pow2_53); }\r\n : function () { return ((Math.random() * 0x40000000 | 0) * 0x800000) +\r\n (Math.random() * 0x800000 | 0); };\r\n\r\n return function (dp) {\r\n var a, b, e, k, v,\r\n i = 0,\r\n c = [],\r\n rand = new BigNumber(ONE);\r\n\r\n if (dp == null) dp = DECIMAL_PLACES;\r\n else intCheck(dp, 0, MAX);\r\n\r\n k = mathceil(dp / LOG_BASE);\r\n\r\n if (CRYPTO) {\r\n\r\n // Browsers supporting crypto.getRandomValues.\r\n if (crypto.getRandomValues) {\r\n\r\n a = crypto.getRandomValues(new Uint32Array(k *= 2));\r\n\r\n for (; i < k;) {\r\n\r\n // 53 bits:\r\n // ((Math.pow(2, 32) - 1) * Math.pow(2, 21)).toString(2)\r\n // 11111 11111111 11111111 11111111 11100000 00000000 00000000\r\n // ((Math.pow(2, 32) - 1) >>> 11).toString(2)\r\n // 11111 11111111 11111111\r\n // 0x20000 is 2^21.\r\n v = a[i] * 0x20000 + (a[i + 1] >>> 11);\r\n\r\n // Rejection sampling:\r\n // 0 <= v < 9007199254740992\r\n // Probability that v >= 9e15, is\r\n // 7199254740992 / 9007199254740992 ~= 0.0008, i.e. 1 in 1251\r\n if (v >= 9e15) {\r\n b = crypto.getRandomValues(new Uint32Array(2));\r\n a[i] = b[0];\r\n a[i + 1] = b[1];\r\n } else {\r\n\r\n // 0 <= v <= 8999999999999999\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 2;\r\n }\r\n }\r\n i = k / 2;\r\n\r\n // Node.js supporting crypto.randomBytes.\r\n } else if (crypto.randomBytes) {\r\n\r\n // buffer\r\n a = crypto.randomBytes(k *= 7);\r\n\r\n for (; i < k;) {\r\n\r\n // 0x1000000000000 is 2^48, 0x10000000000 is 2^40\r\n // 0x100000000 is 2^32, 0x1000000 is 2^24\r\n // 11111 11111111 11111111 11111111 11111111 11111111 11111111\r\n // 0 <= v < 9007199254740992\r\n v = ((a[i] & 31) * 0x1000000000000) + (a[i + 1] * 0x10000000000) +\r\n (a[i + 2] * 0x100000000) + (a[i + 3] * 0x1000000) +\r\n (a[i + 4] << 16) + (a[i + 5] << 8) + a[i + 6];\r\n\r\n if (v >= 9e15) {\r\n crypto.randomBytes(7).copy(a, i);\r\n } else {\r\n\r\n // 0 <= (v % 1e14) <= 99999999999999\r\n c.push(v % 1e14);\r\n i += 7;\r\n }\r\n }\r\n i = k / 7;\r\n } else {\r\n CRYPTO = false;\r\n throw Error\r\n (bignumberError + 'crypto unavailable');\r\n }\r\n }\r\n\r\n // Use Math.random.\r\n if (!CRYPTO) {\r\n\r\n for (; i < k;) {\r\n v = random53bitInt();\r\n if (v < 9e15) c[i++] = v % 1e14;\r\n }\r\n }\r\n\r\n k = c[--i];\r\n dp %= LOG_BASE;\r\n\r\n // Convert trailing digits to zeros according to dp.\r\n if (k && dp) {\r\n v = POWS_TEN[LOG_BASE - dp];\r\n c[i] = mathfloor(k / v) * v;\r\n }\r\n\r\n // Remove trailing elements which are zero.\r\n for (; c[i] === 0; c.pop(), i--);\r\n\r\n // Zero?\r\n if (i < 0) {\r\n c = [e = 0];\r\n } else {\r\n\r\n // Remove leading elements which are zero and adjust exponent accordingly.\r\n for (e = -1 ; c[0] === 0; c.splice(0, 1), e -= LOG_BASE);\r\n\r\n // Count the digits of the first element of c to determine leading zeros, and...\r\n for (i = 1, v = c[0]; v >= 10; v /= 10, i++);\r\n\r\n // adjust the exponent accordingly.\r\n if (i < LOG_BASE) e -= LOG_BASE - i;\r\n }\r\n\r\n rand.e = e;\r\n rand.c = c;\r\n return rand;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the sum of the arguments.\r\n *\r\n * arguments {number|string|BigNumber}\r\n */\r\n BigNumber.sum = function () {\r\n var i = 1,\r\n args = arguments,\r\n sum = new BigNumber(args[0]);\r\n for (; i < args.length;) sum = sum.plus(args[i++]);\r\n return sum;\r\n };\r\n\r\n\r\n // PRIVATE FUNCTIONS\r\n\r\n\r\n // Called by BigNumber and BigNumber.prototype.toString.\r\n convertBase = (function () {\r\n var decimal = '0123456789';\r\n\r\n /*\r\n * Convert string of baseIn to an array of numbers of baseOut.\r\n * Eg. toBaseOut('255', 10, 16) returns [15, 15].\r\n * Eg. toBaseOut('ff', 16, 10) returns [2, 5, 5].\r\n */\r\n function toBaseOut(str, baseIn, baseOut, alphabet) {\r\n var j,\r\n arr = [0],\r\n arrL,\r\n i = 0,\r\n len = str.length;\r\n\r\n for (; i < len;) {\r\n for (arrL = arr.length; arrL--; arr[arrL] *= baseIn);\r\n\r\n arr[0] += alphabet.indexOf(str.charAt(i++));\r\n\r\n for (j = 0; j < arr.length; j++) {\r\n\r\n if (arr[j] > baseOut - 1) {\r\n if (arr[j + 1] == null) arr[j + 1] = 0;\r\n arr[j + 1] += arr[j] / baseOut | 0;\r\n arr[j] %= baseOut;\r\n }\r\n }\r\n }\r\n\r\n return arr.reverse();\r\n }\r\n\r\n // Convert a numeric string of baseIn to a numeric string of baseOut.\r\n // If the caller is toString, we are converting from base 10 to baseOut.\r\n // If the caller is BigNumber, we are converting from baseIn to base 10.\r\n return function (str, baseIn, baseOut, sign, callerIsToString) {\r\n var alphabet, d, e, k, r, x, xc, y,\r\n i = str.indexOf('.'),\r\n dp = DECIMAL_PLACES,\r\n rm = ROUNDING_MODE;\r\n\r\n // Non-integer.\r\n if (i >= 0) {\r\n k = POW_PRECISION;\r\n\r\n // Unlimited precision.\r\n POW_PRECISION = 0;\r\n str = str.replace('.', '');\r\n y = new BigNumber(baseIn);\r\n x = y.pow(str.length - i);\r\n POW_PRECISION = k;\r\n\r\n // Convert str as if an integer, then restore the fraction part by dividing the\r\n // result by its base raised to a power.\r\n\r\n y.c = toBaseOut(toFixedPoint(coeffToString(x.c), x.e, '0'),\r\n 10, baseOut, decimal);\r\n y.e = y.c.length;\r\n }\r\n\r\n // Convert the number as integer.\r\n\r\n xc = toBaseOut(str, baseIn, baseOut, callerIsToString\r\n ? (alphabet = ALPHABET, decimal)\r\n : (alphabet = decimal, ALPHABET));\r\n\r\n // xc now represents str as an integer and converted to baseOut. e is the exponent.\r\n e = k = xc.length;\r\n\r\n // Remove trailing zeros.\r\n for (; xc[--k] == 0; xc.pop());\r\n\r\n // Zero?\r\n if (!xc[0]) return alphabet.charAt(0);\r\n\r\n // Does str represent an integer? If so, no need for the division.\r\n if (i < 0) {\r\n --e;\r\n } else {\r\n x.c = xc;\r\n x.e = e;\r\n\r\n // The sign is needed for correct rounding.\r\n x.s = sign;\r\n x = div(x, y, dp, rm, baseOut);\r\n xc = x.c;\r\n r = x.r;\r\n e = x.e;\r\n }\r\n\r\n // xc now represents str converted to baseOut.\r\n\r\n // THe index of the rounding digit.\r\n d = e + dp + 1;\r\n\r\n // The rounding digit: the digit to the right of the digit that may be rounded up.\r\n i = xc[d];\r\n\r\n // Look at the rounding digits and mode to determine whether to round up.\r\n\r\n k = baseOut / 2;\r\n r = r || d < 0 || xc[d + 1] != null;\r\n\r\n r = rm < 4 ? (i != null || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : i > k || i == k &&(rm == 4 || r || rm == 6 && xc[d - 1] & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n // If the index of the rounding digit is not greater than zero, or xc represents\r\n // zero, then the result of the base conversion is zero or, if rounding up, a value\r\n // such as 0.00001.\r\n if (d < 1 || !xc[0]) {\r\n\r\n // 1^-dp or 0\r\n str = r ? toFixedPoint(alphabet.charAt(1), -dp, alphabet.charAt(0)) : alphabet.charAt(0);\r\n } else {\r\n\r\n // Truncate xc to the required number of decimal places.\r\n xc.length = d;\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n // Rounding up may mean the previous digit has to be rounded up and so on.\r\n for (--baseOut; ++xc[--d] > baseOut;) {\r\n xc[d] = 0;\r\n\r\n if (!d) {\r\n ++e;\r\n xc = [1].concat(xc);\r\n }\r\n }\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (k = xc.length; !xc[--k];);\r\n\r\n // E.g. [4, 11, 15] becomes 4bf.\r\n for (i = 0, str = ''; i <= k; str += alphabet.charAt(xc[i++]));\r\n\r\n // Add leading zeros, decimal point and trailing zeros as required.\r\n str = toFixedPoint(str, e, alphabet.charAt(0));\r\n }\r\n\r\n // The caller will add the sign.\r\n return str;\r\n };\r\n })();\r\n\r\n\r\n // Perform division in the specified base. Called by div and convertBase.\r\n div = (function () {\r\n\r\n // Assume non-zero x and k.\r\n function multiply(x, k, base) {\r\n var m, temp, xlo, xhi,\r\n carry = 0,\r\n i = x.length,\r\n klo = k % SQRT_BASE,\r\n khi = k / SQRT_BASE | 0;\r\n\r\n for (x = x.slice(); i--;) {\r\n xlo = x[i] % SQRT_BASE;\r\n xhi = x[i] / SQRT_BASE | 0;\r\n m = khi * xlo + xhi * klo;\r\n temp = klo * xlo + ((m % SQRT_BASE) * SQRT_BASE) + carry;\r\n carry = (temp / base | 0) + (m / SQRT_BASE | 0) + khi * xhi;\r\n x[i] = temp % base;\r\n }\r\n\r\n if (carry) x = [carry].concat(x);\r\n\r\n return x;\r\n }\r\n\r\n function compare(a, b, aL, bL) {\r\n var i, cmp;\r\n\r\n if (aL != bL) {\r\n cmp = aL > bL ? 1 : -1;\r\n } else {\r\n\r\n for (i = cmp = 0; i < aL; i++) {\r\n\r\n if (a[i] != b[i]) {\r\n cmp = a[i] > b[i] ? 1 : -1;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return cmp;\r\n }\r\n\r\n function subtract(a, b, aL, base) {\r\n var i = 0;\r\n\r\n // Subtract b from a.\r\n for (; aL--;) {\r\n a[aL] -= i;\r\n i = a[aL] < b[aL] ? 1 : 0;\r\n a[aL] = i * base + a[aL] - b[aL];\r\n }\r\n\r\n // Remove leading zeros.\r\n for (; !a[0] && a.length > 1; a.splice(0, 1));\r\n }\r\n\r\n // x: dividend, y: divisor.\r\n return function (x, y, dp, rm, base) {\r\n var cmp, e, i, more, n, prod, prodL, q, qc, rem, remL, rem0, xi, xL, yc0,\r\n yL, yz,\r\n s = x.s == y.s ? 1 : -1,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n // Either NaN, Infinity or 0?\r\n if (!xc || !xc[0] || !yc || !yc[0]) {\r\n\r\n return new BigNumber(\r\n\r\n // Return NaN if either NaN, or both Infinity or 0.\r\n !x.s || !y.s || (xc ? yc && xc[0] == yc[0] : !yc) ? NaN :\r\n\r\n // Return ±0 if x is ±0 or y is ±Infinity, or return ±Infinity as y is ±0.\r\n xc && xc[0] == 0 || !yc ? s * 0 : s / 0\r\n );\r\n }\r\n\r\n q = new BigNumber(s);\r\n qc = q.c = [];\r\n e = x.e - y.e;\r\n s = dp + e + 1;\r\n\r\n if (!base) {\r\n base = BASE;\r\n e = bitFloor(x.e / LOG_BASE) - bitFloor(y.e / LOG_BASE);\r\n s = s / LOG_BASE | 0;\r\n }\r\n\r\n // Result exponent may be one less then the current value of e.\r\n // The coefficients of the BigNumbers from convertBase may have trailing zeros.\r\n for (i = 0; yc[i] == (xc[i] || 0); i++);\r\n\r\n if (yc[i] > (xc[i] || 0)) e--;\r\n\r\n if (s < 0) {\r\n qc.push(1);\r\n more = true;\r\n } else {\r\n xL = xc.length;\r\n yL = yc.length;\r\n i = 0;\r\n s += 2;\r\n\r\n // Normalise xc and yc so highest order digit of yc is >= base / 2.\r\n\r\n n = mathfloor(base / (yc[0] + 1));\r\n\r\n // Not necessary, but to handle odd bases where yc[0] == (base / 2) - 1.\r\n // if (n > 1 || n++ == 1 && yc[0] < base / 2) {\r\n if (n > 1) {\r\n yc = multiply(yc, n, base);\r\n xc = multiply(xc, n, base);\r\n yL = yc.length;\r\n xL = xc.length;\r\n }\r\n\r\n xi = yL;\r\n rem = xc.slice(0, yL);\r\n remL = rem.length;\r\n\r\n // Add zeros to make remainder as long as divisor.\r\n for (; remL < yL; rem[remL++] = 0);\r\n yz = yc.slice();\r\n yz = [0].concat(yz);\r\n yc0 = yc[0];\r\n if (yc[1] >= base / 2) yc0++;\r\n // Not necessary, but to prevent trial digit n > base, when using base 3.\r\n // else if (base == 3 && yc0 == 1) yc0 = 1 + 1e-15;\r\n\r\n do {\r\n n = 0;\r\n\r\n // Compare divisor and remainder.\r\n cmp = compare(yc, rem, yL, remL);\r\n\r\n // If divisor < remainder.\r\n if (cmp < 0) {\r\n\r\n // Calculate trial digit, n.\r\n\r\n rem0 = rem[0];\r\n if (yL != remL) rem0 = rem0 * base + (rem[1] || 0);\r\n\r\n // n is how many times the divisor goes into the current remainder.\r\n n = mathfloor(rem0 / yc0);\r\n\r\n // Algorithm:\r\n // product = divisor multiplied by trial digit (n).\r\n // Compare product and remainder.\r\n // If product is greater than remainder:\r\n // Subtract divisor from product, decrement trial digit.\r\n // Subtract product from remainder.\r\n // If product was less than remainder at the last compare:\r\n // Compare new remainder and divisor.\r\n // If remainder is greater than divisor:\r\n // Subtract divisor from remainder, increment trial digit.\r\n\r\n if (n > 1) {\r\n\r\n // n may be > base only when base is 3.\r\n if (n >= base) n = base - 1;\r\n\r\n // product = divisor * trial digit.\r\n prod = multiply(yc, n, base);\r\n prodL = prod.length;\r\n remL = rem.length;\r\n\r\n // Compare product and remainder.\r\n // If product > remainder then trial digit n too high.\r\n // n is 1 too high about 5% of the time, and is not known to have\r\n // ever been more than 1 too high.\r\n while (compare(prod, rem, prodL, remL) == 1) {\r\n n--;\r\n\r\n // Subtract divisor from product.\r\n subtract(prod, yL < prodL ? yz : yc, prodL, base);\r\n prodL = prod.length;\r\n cmp = 1;\r\n }\r\n } else {\r\n\r\n // n is 0 or 1, cmp is -1.\r\n // If n is 0, there is no need to compare yc and rem again below,\r\n // so change cmp to 1 to avoid it.\r\n // If n is 1, leave cmp as -1, so yc and rem are compared again.\r\n if (n == 0) {\r\n\r\n // divisor < remainder, so n must be at least 1.\r\n cmp = n = 1;\r\n }\r\n\r\n // product = divisor\r\n prod = yc.slice();\r\n prodL = prod.length;\r\n }\r\n\r\n if (prodL < remL) prod = [0].concat(prod);\r\n\r\n // Subtract product from remainder.\r\n subtract(rem, prod, remL, base);\r\n remL = rem.length;\r\n\r\n // If product was < remainder.\r\n if (cmp == -1) {\r\n\r\n // Compare divisor and new remainder.\r\n // If divisor < new remainder, subtract divisor from remainder.\r\n // Trial digit n too low.\r\n // n is 1 too low about 5% of the time, and very rarely 2 too low.\r\n while (compare(yc, rem, yL, remL) < 1) {\r\n n++;\r\n\r\n // Subtract divisor from remainder.\r\n subtract(rem, yL < remL ? yz : yc, remL, base);\r\n remL = rem.length;\r\n }\r\n }\r\n } else if (cmp === 0) {\r\n n++;\r\n rem = [0];\r\n } // else cmp === 1 and n will be 0\r\n\r\n // Add the next digit, n, to the result array.\r\n qc[i++] = n;\r\n\r\n // Update the remainder.\r\n if (rem[0]) {\r\n rem[remL++] = xc[xi] || 0;\r\n } else {\r\n rem = [xc[xi]];\r\n remL = 1;\r\n }\r\n } while ((xi++ < xL || rem[0] != null) && s--);\r\n\r\n more = rem[0] != null;\r\n\r\n // Leading zero?\r\n if (!qc[0]) qc.splice(0, 1);\r\n }\r\n\r\n if (base == BASE) {\r\n\r\n // To calculate q.e, first get the number of digits of qc[0].\r\n for (i = 1, s = qc[0]; s >= 10; s /= 10, i++);\r\n\r\n round(q, dp + (q.e = i + e * LOG_BASE - 1) + 1, rm, more);\r\n\r\n // Caller is convertBase.\r\n } else {\r\n q.e = e;\r\n q.r = +more;\r\n }\r\n\r\n return q;\r\n };\r\n })();\r\n\r\n\r\n /*\r\n * Return a string representing the value of BigNumber n in fixed-point or exponential\r\n * notation rounded to the specified decimal places or significant digits.\r\n *\r\n * n: a BigNumber.\r\n * i: the index of the last digit required (i.e. the digit that may be rounded up).\r\n * rm: the rounding mode.\r\n * id: 1 (toExponential) or 2 (toPrecision).\r\n */\r\n function format(n, i, rm, id) {\r\n var c0, e, ne, len, str;\r\n\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n if (!n.c) return n.toString();\r\n\r\n c0 = n.c[0];\r\n ne = n.e;\r\n\r\n if (i == null) {\r\n str = coeffToString(n.c);\r\n str = id == 1 || id == 2 && (ne <= TO_EXP_NEG || ne >= TO_EXP_POS)\r\n ? toExponential(str, ne)\r\n : toFixedPoint(str, ne, '0');\r\n } else {\r\n n = round(new BigNumber(n), i, rm);\r\n\r\n // n.e may have changed if the value was rounded up.\r\n e = n.e;\r\n\r\n str = coeffToString(n.c);\r\n len = str.length;\r\n\r\n // toPrecision returns exponential notation if the number of significant digits\r\n // specified is less than the number of digits necessary to represent the integer\r\n // part of the value in fixed-point notation.\r\n\r\n // Exponential notation.\r\n if (id == 1 || id == 2 && (i <= e || e <= TO_EXP_NEG)) {\r\n\r\n // Append zeros?\r\n for (; len < i; str += '0', len++);\r\n str = toExponential(str, e);\r\n\r\n // Fixed-point notation.\r\n } else {\r\n i -= ne;\r\n str = toFixedPoint(str, e, '0');\r\n\r\n // Append zeros?\r\n if (e + 1 > len) {\r\n if (--i > 0) for (str += '.'; i--; str += '0');\r\n } else {\r\n i += e - len;\r\n if (i > 0) {\r\n if (e + 1 == len) str += '.';\r\n for (; i--; str += '0');\r\n }\r\n }\r\n }\r\n }\r\n\r\n return n.s < 0 && c0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // Handle BigNumber.max and BigNumber.min.\r\n // If any number is NaN, return NaN.\r\n function maxOrMin(args, n) {\r\n var k, y,\r\n i = 1,\r\n x = new BigNumber(args[0]);\r\n\r\n for (; i < args.length; i++) {\r\n y = new BigNumber(args[i]);\r\n if (!y.s || (k = compare(x, y)) === n || k === 0 && x.s === n) {\r\n x = y;\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n /*\r\n * Strip trailing zeros, calculate base 10 exponent and check against MIN_EXP and MAX_EXP.\r\n * Called by minus, plus and times.\r\n */\r\n function normalise(n, c, e) {\r\n var i = 1,\r\n j = c.length;\r\n\r\n // Remove trailing zeros.\r\n for (; !c[--j]; c.pop());\r\n\r\n // Calculate the base 10 exponent. First get the number of digits of c[0].\r\n for (j = c[0]; j >= 10; j /= 10, i++);\r\n\r\n // Overflow?\r\n if ((e = i + e * LOG_BASE - 1) > MAX_EXP) {\r\n\r\n // Infinity.\r\n n.c = n.e = null;\r\n\r\n // Underflow?\r\n } else if (e < MIN_EXP) {\r\n\r\n // Zero.\r\n n.c = [n.e = 0];\r\n } else {\r\n n.e = e;\r\n n.c = c;\r\n }\r\n\r\n return n;\r\n }\r\n\r\n\r\n // Handle values that fail the validity test in BigNumber.\r\n parseNumeric = (function () {\r\n var basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i,\r\n dotAfter = /^([^.]+)\\.$/,\r\n dotBefore = /^\\.([^.]+)$/,\r\n isInfinityOrNaN = /^-?(Infinity|NaN)$/,\r\n whitespaceOrPlus = /^\\s*\\+(?=[\\w.])|^\\s+|\\s+$/g;\r\n\r\n return function (x, str, isNum, b) {\r\n var base,\r\n s = isNum ? str : str.replace(whitespaceOrPlus, '');\r\n\r\n // No exception on ±Infinity or NaN.\r\n if (isInfinityOrNaN.test(s)) {\r\n x.s = isNaN(s) ? null : s < 0 ? -1 : 1;\r\n } else {\r\n if (!isNum) {\r\n\r\n // basePrefix = /^(-?)0([xbo])(?=\\w[\\w.]*$)/i\r\n s = s.replace(basePrefix, function (m, p1, p2) {\r\n base = (p2 = p2.toLowerCase()) == 'x' ? 16 : p2 == 'b' ? 2 : 8;\r\n return !b || b == base ? p1 : m;\r\n });\r\n\r\n if (b) {\r\n base = b;\r\n\r\n // E.g. '1.' to '1', '.1' to '0.1'\r\n s = s.replace(dotAfter, '$1').replace(dotBefore, '0.$1');\r\n }\r\n\r\n if (str != s) return new BigNumber(s, base);\r\n }\r\n\r\n // '[BigNumber Error] Not a number: {n}'\r\n // '[BigNumber Error] Not a base {b} number: {n}'\r\n if (BigNumber.DEBUG) {\r\n throw Error\r\n (bignumberError + 'Not a' + (b ? ' base ' + b : '') + ' number: ' + str);\r\n }\r\n\r\n // NaN\r\n x.s = null;\r\n }\r\n\r\n x.c = x.e = null;\r\n }\r\n })();\r\n\r\n\r\n /*\r\n * Round x to sd significant digits using rounding mode rm. Check for over/under-flow.\r\n * If r is truthy, it is known that there are more digits after the rounding digit.\r\n */\r\n function round(x, sd, rm, r) {\r\n var d, i, j, k, n, ni, rd,\r\n xc = x.c,\r\n pows10 = POWS_TEN;\r\n\r\n // if x is not Infinity or NaN...\r\n if (xc) {\r\n\r\n // rd is the rounding digit, i.e. the digit after the digit that may be rounded up.\r\n // n is a base 1e14 number, the value of the element of array x.c containing rd.\r\n // ni is the index of n within x.c.\r\n // d is the number of digits of n.\r\n // i is the index of rd within n including leading zeros.\r\n // j is the actual index of rd within n (if < 0, rd is a leading zero).\r\n out: {\r\n\r\n // Get the number of digits of the first element of xc.\r\n for (d = 1, k = xc[0]; k >= 10; k /= 10, d++);\r\n i = sd - d;\r\n\r\n // If the rounding digit is in the first element of xc...\r\n if (i < 0) {\r\n i += LOG_BASE;\r\n j = sd;\r\n n = xc[ni = 0];\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = mathfloor(n / pows10[d - j - 1] % 10);\r\n } else {\r\n ni = mathceil((i + 1) / LOG_BASE);\r\n\r\n if (ni >= xc.length) {\r\n\r\n if (r) {\r\n\r\n // Needed by sqrt.\r\n for (; xc.length <= ni; xc.push(0));\r\n n = rd = 0;\r\n d = 1;\r\n i %= LOG_BASE;\r\n j = i - LOG_BASE + 1;\r\n } else {\r\n break out;\r\n }\r\n } else {\r\n n = k = xc[ni];\r\n\r\n // Get the number of digits of n.\r\n for (d = 1; k >= 10; k /= 10, d++);\r\n\r\n // Get the index of rd within n.\r\n i %= LOG_BASE;\r\n\r\n // Get the index of rd within n, adjusted for leading zeros.\r\n // The number of leading zeros of n is given by LOG_BASE - d.\r\n j = i - LOG_BASE + d;\r\n\r\n // Get the rounding digit at index j of n.\r\n rd = j < 0 ? 0 : mathfloor(n / pows10[d - j - 1] % 10);\r\n }\r\n }\r\n\r\n r = r || sd < 0 ||\r\n\r\n // Are there any non-zero digits after the rounding digit?\r\n // The expression n % pows10[d - j - 1] returns all digits of n to the right\r\n // of the digit at j, e.g. if n is 908714 and j is 2, the expression gives 714.\r\n xc[ni + 1] != null || (j < 0 ? n : n % pows10[d - j - 1]);\r\n\r\n r = rm < 4\r\n ? (rd || r) && (rm == 0 || rm == (x.s < 0 ? 3 : 2))\r\n : rd > 5 || rd == 5 && (rm == 4 || r || rm == 6 &&\r\n\r\n // Check whether the digit to the left of the rounding digit is odd.\r\n ((i > 0 ? j > 0 ? n / pows10[d - j] : 0 : xc[ni - 1]) % 10) & 1 ||\r\n rm == (x.s < 0 ? 8 : 7));\r\n\r\n if (sd < 1 || !xc[0]) {\r\n xc.length = 0;\r\n\r\n if (r) {\r\n\r\n // Convert sd to decimal places.\r\n sd -= x.e + 1;\r\n\r\n // 1, 0.1, 0.01, 0.001, 0.0001 etc.\r\n xc[0] = pows10[(LOG_BASE - sd % LOG_BASE) % LOG_BASE];\r\n x.e = -sd || 0;\r\n } else {\r\n\r\n // Zero.\r\n xc[0] = x.e = 0;\r\n }\r\n\r\n return x;\r\n }\r\n\r\n // Remove excess digits.\r\n if (i == 0) {\r\n xc.length = ni;\r\n k = 1;\r\n ni--;\r\n } else {\r\n xc.length = ni + 1;\r\n k = pows10[LOG_BASE - i];\r\n\r\n // E.g. 56700 becomes 56000 if 7 is the rounding digit.\r\n // j > 0 means i > number of leading zeros of n.\r\n xc[ni] = j > 0 ? mathfloor(n / pows10[d - j] % pows10[j]) * k : 0;\r\n }\r\n\r\n // Round up?\r\n if (r) {\r\n\r\n for (; ;) {\r\n\r\n // If the digit to be rounded up is in the first element of xc...\r\n if (ni == 0) {\r\n\r\n // i will be the length of xc[0] before k is added.\r\n for (i = 1, j = xc[0]; j >= 10; j /= 10, i++);\r\n j = xc[0] += k;\r\n for (k = 1; j >= 10; j /= 10, k++);\r\n\r\n // if i != k the length has increased.\r\n if (i != k) {\r\n x.e++;\r\n if (xc[0] == BASE) xc[0] = 1;\r\n }\r\n\r\n break;\r\n } else {\r\n xc[ni] += k;\r\n if (xc[ni] != BASE) break;\r\n xc[ni--] = 0;\r\n k = 1;\r\n }\r\n }\r\n }\r\n\r\n // Remove trailing zeros.\r\n for (i = xc.length; xc[--i] === 0; xc.pop());\r\n }\r\n\r\n // Overflow? Infinity.\r\n if (x.e > MAX_EXP) {\r\n x.c = x.e = null;\r\n\r\n // Underflow? Zero.\r\n } else if (x.e < MIN_EXP) {\r\n x.c = [x.e = 0];\r\n }\r\n }\r\n\r\n return x;\r\n }\r\n\r\n\r\n function valueOf(n) {\r\n var str,\r\n e = n.e;\r\n\r\n if (e === null) return n.toString();\r\n\r\n str = coeffToString(n.c);\r\n\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(str, e)\r\n : toFixedPoint(str, e, '0');\r\n\r\n return n.s < 0 ? '-' + str : str;\r\n }\r\n\r\n\r\n // PROTOTYPE/INSTANCE METHODS\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the absolute value of this BigNumber.\r\n */\r\n P.absoluteValue = P.abs = function () {\r\n var x = new BigNumber(this);\r\n if (x.s < 0) x.s = 1;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * Return\r\n * 1 if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * -1 if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * 0 if they have the same value,\r\n * or null if the value of either is NaN.\r\n */\r\n P.comparedTo = function (y, b) {\r\n return compare(this, new BigNumber(y, b));\r\n };\r\n\r\n\r\n /*\r\n * If dp is undefined or null or true or false, return the number of decimal places of the\r\n * value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n *\r\n * Otherwise, if dp is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of dp decimal places using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * [dp] {number} Decimal places: integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.decimalPlaces = P.dp = function (dp, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), dp + x.e + 1, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n n = ((v = c.length - 1) - bitFloor(this.e / LOG_BASE)) * LOG_BASE;\r\n\r\n // Subtract the number of trailing zeros of the last number.\r\n if (v = c[v]) for (; v % 10 == 0; v /= 10, n--);\r\n if (n < 0) n = 0;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * n / 0 = I\r\n * n / N = N\r\n * n / I = 0\r\n * 0 / n = 0\r\n * 0 / 0 = N\r\n * 0 / N = N\r\n * 0 / I = 0\r\n * N / n = N\r\n * N / 0 = N\r\n * N / N = N\r\n * N / I = N\r\n * I / n = I\r\n * I / 0 = I\r\n * I / N = N\r\n * I / I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber divided by the value of\r\n * BigNumber(y, b), rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.dividedBy = P.div = function (y, b) {\r\n return div(this, new BigNumber(y, b), DECIMAL_PLACES, ROUNDING_MODE);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the integer part of dividing the value of this\r\n * BigNumber by the value of BigNumber(y, b).\r\n */\r\n P.dividedToIntegerBy = P.idiv = function (y, b) {\r\n return div(this, new BigNumber(y, b), 0, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a BigNumber whose value is the value of this BigNumber exponentiated by n.\r\n *\r\n * If m is present, return the result modulo m.\r\n * If n is negative round according to DECIMAL_PLACES and ROUNDING_MODE.\r\n * If POW_PRECISION is non-zero and m is not present, round to POW_PRECISION using ROUNDING_MODE.\r\n *\r\n * The modular power operation works efficiently when x, n, and m are integers, otherwise it\r\n * is equivalent to calculating x.exponentiatedBy(n).modulo(m) with a POW_PRECISION of 0.\r\n *\r\n * n {number|string|BigNumber} The exponent. An integer.\r\n * [m] {number|string|BigNumber} The modulus.\r\n *\r\n * '[BigNumber Error] Exponent not an integer: {n}'\r\n */\r\n P.exponentiatedBy = P.pow = function (n, m) {\r\n var half, isModExp, i, k, more, nIsBig, nIsNeg, nIsOdd, y,\r\n x = this;\r\n\r\n n = new BigNumber(n);\r\n\r\n // Allow NaN and ±Infinity, but not other non-integers.\r\n if (n.c && !n.isInteger()) {\r\n throw Error\r\n (bignumberError + 'Exponent not an integer: ' + valueOf(n));\r\n }\r\n\r\n if (m != null) m = new BigNumber(m);\r\n\r\n // Exponent of MAX_SAFE_INTEGER is 15.\r\n nIsBig = n.e > 14;\r\n\r\n // If x is NaN, ±Infinity, ±0 or ±1, or n is ±Infinity, NaN or ±0.\r\n if (!x.c || !x.c[0] || x.c[0] == 1 && !x.e && x.c.length == 1 || !n.c || !n.c[0]) {\r\n\r\n // The sign of the result of pow when x is negative depends on the evenness of n.\r\n // If +n overflows to ±Infinity, the evenness of n would be not be known.\r\n y = new BigNumber(Math.pow(+valueOf(x), nIsBig ? n.s * (2 - isOdd(n)) : +valueOf(n)));\r\n return m ? y.mod(m) : y;\r\n }\r\n\r\n nIsNeg = n.s < 0;\r\n\r\n if (m) {\r\n\r\n // x % m returns NaN if abs(m) is zero, or m is NaN.\r\n if (m.c ? !m.c[0] : !m.s) return new BigNumber(NaN);\r\n\r\n isModExp = !nIsNeg && x.isInteger() && m.isInteger();\r\n\r\n if (isModExp) x = x.mod(m);\r\n\r\n // Overflow to ±Infinity: >=2**1e10 or >=1.0000024**1e15.\r\n // Underflow to ±0: <=0.79**1e10 or <=0.9999975**1e15.\r\n } else if (n.e > 9 && (x.e > 0 || x.e < -1 || (x.e == 0\r\n // [1, 240000000]\r\n ? x.c[0] > 1 || nIsBig && x.c[1] >= 24e7\r\n // [80000000000000] [99999750000000]\r\n : x.c[0] < 8e13 || nIsBig && x.c[0] <= 9999975e7))) {\r\n\r\n // If x is negative and n is odd, k = -0, else k = 0.\r\n k = x.s < 0 && isOdd(n) ? -0 : 0;\r\n\r\n // If x >= 1, k = ±Infinity.\r\n if (x.e > -1) k = 1 / k;\r\n\r\n // If n is negative return ±0, else return ±Infinity.\r\n return new BigNumber(nIsNeg ? 1 / k : k);\r\n\r\n } else if (POW_PRECISION) {\r\n\r\n // Truncating each coefficient array to a length of k after each multiplication\r\n // equates to truncating significant digits to POW_PRECISION + [28, 41],\r\n // i.e. there will be a minimum of 28 guard digits retained.\r\n k = mathceil(POW_PRECISION / LOG_BASE + 2);\r\n }\r\n\r\n if (nIsBig) {\r\n half = new BigNumber(0.5);\r\n if (nIsNeg) n.s = 1;\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = Math.abs(+valueOf(n));\r\n nIsOdd = i % 2;\r\n }\r\n\r\n y = new BigNumber(ONE);\r\n\r\n // Performs 54 loop iterations for n of 9007199254740991.\r\n for (; ;) {\r\n\r\n if (nIsOdd) {\r\n y = y.times(x);\r\n if (!y.c) break;\r\n\r\n if (k) {\r\n if (y.c.length > k) y.c.length = k;\r\n } else if (isModExp) {\r\n y = y.mod(m); //y = y.minus(div(y, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (i) {\r\n i = mathfloor(i / 2);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n } else {\r\n n = n.times(half);\r\n round(n, n.e + 1, 1);\r\n\r\n if (n.e > 14) {\r\n nIsOdd = isOdd(n);\r\n } else {\r\n i = +valueOf(n);\r\n if (i === 0) break;\r\n nIsOdd = i % 2;\r\n }\r\n }\r\n\r\n x = x.times(x);\r\n\r\n if (k) {\r\n if (x.c && x.c.length > k) x.c.length = k;\r\n } else if (isModExp) {\r\n x = x.mod(m); //x = x.minus(div(x, m, 0, MODULO_MODE).times(m));\r\n }\r\n }\r\n\r\n if (isModExp) return y;\r\n if (nIsNeg) y = ONE.div(y);\r\n\r\n return m ? y.mod(m) : k ? round(y, POW_PRECISION, ROUNDING_MODE, more) : y;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber rounded to an integer\r\n * using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {rm}'\r\n */\r\n P.integerValue = function (rm) {\r\n var n = new BigNumber(this);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n return round(n, n.e + 1, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is equal to the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isEqualTo = P.eq = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is a finite number, otherwise return false.\r\n */\r\n P.isFinite = function () {\r\n return !!this.c;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isGreaterThan = P.gt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is greater than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isGreaterThanOrEqualTo = P.gte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === 1 || b === 0;\r\n\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is an integer, otherwise return false.\r\n */\r\n P.isInteger = function () {\r\n return !!this.c && bitFloor(this.e / LOG_BASE) > this.c.length - 2;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than the value of BigNumber(y, b),\r\n * otherwise return false.\r\n */\r\n P.isLessThan = P.lt = function (y, b) {\r\n return compare(this, new BigNumber(y, b)) < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is less than or equal to the value of\r\n * BigNumber(y, b), otherwise return false.\r\n */\r\n P.isLessThanOrEqualTo = P.lte = function (y, b) {\r\n return (b = compare(this, new BigNumber(y, b))) === -1 || b === 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is NaN, otherwise return false.\r\n */\r\n P.isNaN = function () {\r\n return !this.s;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is negative, otherwise return false.\r\n */\r\n P.isNegative = function () {\r\n return this.s < 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is positive, otherwise return false.\r\n */\r\n P.isPositive = function () {\r\n return this.s > 0;\r\n };\r\n\r\n\r\n /*\r\n * Return true if the value of this BigNumber is 0 or -0, otherwise return false.\r\n */\r\n P.isZero = function () {\r\n return !!this.c && this.c[0] == 0;\r\n };\r\n\r\n\r\n /*\r\n * n - 0 = n\r\n * n - N = N\r\n * n - I = -I\r\n * 0 - n = -n\r\n * 0 - 0 = 0\r\n * 0 - N = N\r\n * 0 - I = -I\r\n * N - n = N\r\n * N - 0 = N\r\n * N - N = N\r\n * N - I = N\r\n * I - n = I\r\n * I - 0 = I\r\n * I - N = N\r\n * I - I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber minus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.minus = function (y, b) {\r\n var i, j, t, xLTy,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.plus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return xc ? (y.s = -b, y) : new BigNumber(yc ? x : NaN);\r\n\r\n // Either zero?\r\n if (!xc[0] || !yc[0]) {\r\n\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n return yc[0] ? (y.s = -b, y) : new BigNumber(xc[0] ? x :\r\n\r\n // IEEE 754 (2008) 6.3: n - n = -0 when rounding to -Infinity\r\n ROUNDING_MODE == 3 ? -0 : 0);\r\n }\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Determine which is the bigger number.\r\n if (a = xe - ye) {\r\n\r\n if (xLTy = a < 0) {\r\n a = -a;\r\n t = xc;\r\n } else {\r\n ye = xe;\r\n t = yc;\r\n }\r\n\r\n t.reverse();\r\n\r\n // Prepend zeros to equalise exponents.\r\n for (b = a; b--; t.push(0));\r\n t.reverse();\r\n } else {\r\n\r\n // Exponents equal. Check digit by digit.\r\n j = (xLTy = (a = xc.length) < (b = yc.length)) ? a : b;\r\n\r\n for (a = b = 0; b < j; b++) {\r\n\r\n if (xc[b] != yc[b]) {\r\n xLTy = xc[b] < yc[b];\r\n break;\r\n }\r\n }\r\n }\r\n\r\n // x < y? Point xc to the array of the bigger number.\r\n if (xLTy) {\r\n t = xc;\r\n xc = yc;\r\n yc = t;\r\n y.s = -y.s;\r\n }\r\n\r\n b = (j = yc.length) - (i = xc.length);\r\n\r\n // Append zeros to xc if shorter.\r\n // No need to add zeros to yc if shorter as subtract only needs to start at yc.length.\r\n if (b > 0) for (; b--; xc[i++] = 0);\r\n b = BASE - 1;\r\n\r\n // Subtract yc from xc.\r\n for (; j > a;) {\r\n\r\n if (xc[--j] < yc[j]) {\r\n for (i = j; i && !xc[--i]; xc[i] = b);\r\n --xc[i];\r\n xc[j] += BASE;\r\n }\r\n\r\n xc[j] -= yc[j];\r\n }\r\n\r\n // Remove leading zeros and adjust exponent accordingly.\r\n for (; xc[0] == 0; xc.splice(0, 1), --ye);\r\n\r\n // Zero?\r\n if (!xc[0]) {\r\n\r\n // Following IEEE 754 (2008) 6.3,\r\n // n - n = +0 but n - n = -0 when rounding towards -Infinity.\r\n y.s = ROUNDING_MODE == 3 ? -1 : 1;\r\n y.c = [y.e = 0];\r\n return y;\r\n }\r\n\r\n // No need to check for Infinity as +x - +y != Infinity && -x - -y != Infinity\r\n // for finite x and y.\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * n % 0 = N\r\n * n % N = N\r\n * n % I = n\r\n * 0 % n = 0\r\n * -0 % n = -0\r\n * 0 % 0 = N\r\n * 0 % N = N\r\n * 0 % I = 0\r\n * N % n = N\r\n * N % 0 = N\r\n * N % N = N\r\n * N % I = N\r\n * I % n = N\r\n * I % 0 = N\r\n * I % N = N\r\n * I % I = N\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber modulo the value of\r\n * BigNumber(y, b). The result depends on the value of MODULO_MODE.\r\n */\r\n P.modulo = P.mod = function (y, b) {\r\n var q, s,\r\n x = this;\r\n\r\n y = new BigNumber(y, b);\r\n\r\n // Return NaN if x is Infinity or NaN, or y is NaN or zero.\r\n if (!x.c || !y.s || y.c && !y.c[0]) {\r\n return new BigNumber(NaN);\r\n\r\n // Return x if y is Infinity or x is zero.\r\n } else if (!y.c || x.c && !x.c[0]) {\r\n return new BigNumber(x);\r\n }\r\n\r\n if (MODULO_MODE == 9) {\r\n\r\n // Euclidian division: q = sign(y) * floor(x / abs(y))\r\n // r = x - qy where 0 <= r < abs(y)\r\n s = y.s;\r\n y.s = 1;\r\n q = div(x, y, 0, 3);\r\n y.s = s;\r\n q.s *= s;\r\n } else {\r\n q = div(x, y, 0, MODULO_MODE);\r\n }\r\n\r\n y = x.minus(q.times(y));\r\n\r\n // To match JavaScript %, ensure sign of zero is sign of dividend.\r\n if (!y.c[0] && MODULO_MODE == 1) y.s = x.s;\r\n\r\n return y;\r\n };\r\n\r\n\r\n /*\r\n * n * 0 = 0\r\n * n * N = N\r\n * n * I = I\r\n * 0 * n = 0\r\n * 0 * 0 = 0\r\n * 0 * N = N\r\n * 0 * I = N\r\n * N * n = N\r\n * N * 0 = N\r\n * N * N = N\r\n * N * I = N\r\n * I * n = I\r\n * I * 0 = N\r\n * I * N = N\r\n * I * I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber multiplied by the value\r\n * of BigNumber(y, b).\r\n */\r\n P.multipliedBy = P.times = function (y, b) {\r\n var c, e, i, j, k, m, xcL, xlo, xhi, ycL, ylo, yhi, zc,\r\n base, sqrtBase,\r\n x = this,\r\n xc = x.c,\r\n yc = (y = new BigNumber(y, b)).c;\r\n\r\n // Either NaN, ±Infinity or ±0?\r\n if (!xc || !yc || !xc[0] || !yc[0]) {\r\n\r\n // Return NaN if either is NaN, or one is 0 and the other is Infinity.\r\n if (!x.s || !y.s || xc && !xc[0] && !yc || yc && !yc[0] && !xc) {\r\n y.c = y.e = y.s = null;\r\n } else {\r\n y.s *= x.s;\r\n\r\n // Return ±Infinity if either is ±Infinity.\r\n if (!xc || !yc) {\r\n y.c = y.e = null;\r\n\r\n // Return ±0 if either is ±0.\r\n } else {\r\n y.c = [0];\r\n y.e = 0;\r\n }\r\n }\r\n\r\n return y;\r\n }\r\n\r\n e = bitFloor(x.e / LOG_BASE) + bitFloor(y.e / LOG_BASE);\r\n y.s *= x.s;\r\n xcL = xc.length;\r\n ycL = yc.length;\r\n\r\n // Ensure xc points to longer array and xcL to its length.\r\n if (xcL < ycL) {\r\n zc = xc;\r\n xc = yc;\r\n yc = zc;\r\n i = xcL;\r\n xcL = ycL;\r\n ycL = i;\r\n }\r\n\r\n // Initialise the result array with zeros.\r\n for (i = xcL + ycL, zc = []; i--; zc.push(0));\r\n\r\n base = BASE;\r\n sqrtBase = SQRT_BASE;\r\n\r\n for (i = ycL; --i >= 0;) {\r\n c = 0;\r\n ylo = yc[i] % sqrtBase;\r\n yhi = yc[i] / sqrtBase | 0;\r\n\r\n for (k = xcL, j = i + k; j > i;) {\r\n xlo = xc[--k] % sqrtBase;\r\n xhi = xc[k] / sqrtBase | 0;\r\n m = yhi * xlo + xhi * ylo;\r\n xlo = ylo * xlo + ((m % sqrtBase) * sqrtBase) + zc[j] + c;\r\n c = (xlo / base | 0) + (m / sqrtBase | 0) + yhi * xhi;\r\n zc[j--] = xlo % base;\r\n }\r\n\r\n zc[j] = c;\r\n }\r\n\r\n if (c) {\r\n ++e;\r\n } else {\r\n zc.splice(0, 1);\r\n }\r\n\r\n return normalise(y, zc, e);\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber negated,\r\n * i.e. multiplied by -1.\r\n */\r\n P.negated = function () {\r\n var x = new BigNumber(this);\r\n x.s = -x.s || null;\r\n return x;\r\n };\r\n\r\n\r\n /*\r\n * n + 0 = n\r\n * n + N = N\r\n * n + I = I\r\n * 0 + n = n\r\n * 0 + 0 = 0\r\n * 0 + N = N\r\n * 0 + I = I\r\n * N + n = N\r\n * N + 0 = N\r\n * N + N = N\r\n * N + I = N\r\n * I + n = I\r\n * I + 0 = I\r\n * I + N = N\r\n * I + I = I\r\n *\r\n * Return a new BigNumber whose value is the value of this BigNumber plus the value of\r\n * BigNumber(y, b).\r\n */\r\n P.plus = function (y, b) {\r\n var t,\r\n x = this,\r\n a = x.s;\r\n\r\n y = new BigNumber(y, b);\r\n b = y.s;\r\n\r\n // Either NaN?\r\n if (!a || !b) return new BigNumber(NaN);\r\n\r\n // Signs differ?\r\n if (a != b) {\r\n y.s = -b;\r\n return x.minus(y);\r\n }\r\n\r\n var xe = x.e / LOG_BASE,\r\n ye = y.e / LOG_BASE,\r\n xc = x.c,\r\n yc = y.c;\r\n\r\n if (!xe || !ye) {\r\n\r\n // Return ±Infinity if either ±Infinity.\r\n if (!xc || !yc) return new BigNumber(a / 0);\r\n\r\n // Either zero?\r\n // Return y if y is non-zero, x if x is non-zero, or zero if both are zero.\r\n if (!xc[0] || !yc[0]) return yc[0] ? y : new BigNumber(xc[0] ? x : a * 0);\r\n }\r\n\r\n xe = bitFloor(xe);\r\n ye = bitFloor(ye);\r\n xc = xc.slice();\r\n\r\n // Prepend zeros to equalise exponents. Faster to use reverse then do unshifts.\r\n if (a = xe - ye) {\r\n if (a > 0) {\r\n ye = xe;\r\n t = yc;\r\n } else {\r\n a = -a;\r\n t = xc;\r\n }\r\n\r\n t.reverse();\r\n for (; a--; t.push(0));\r\n t.reverse();\r\n }\r\n\r\n a = xc.length;\r\n b = yc.length;\r\n\r\n // Point xc to the longer array, and b to the shorter length.\r\n if (a - b < 0) {\r\n t = yc;\r\n yc = xc;\r\n xc = t;\r\n b = a;\r\n }\r\n\r\n // Only start adding at yc.length - 1 as the further digits of xc can be ignored.\r\n for (a = 0; b;) {\r\n a = (xc[--b] = xc[b] + yc[b] + a) / BASE | 0;\r\n xc[b] = BASE === xc[b] ? 0 : xc[b] % BASE;\r\n }\r\n\r\n if (a) {\r\n xc = [a].concat(xc);\r\n ++ye;\r\n }\r\n\r\n // No need to check for zero, as +x + +y != 0 && -x + -y != 0\r\n // ye = MAX_EXP + 1 possible\r\n return normalise(y, xc, ye);\r\n };\r\n\r\n\r\n /*\r\n * If sd is undefined or null or true or false, return the number of significant digits of\r\n * the value of this BigNumber, or null if the value of this BigNumber is ±Infinity or NaN.\r\n * If sd is true include integer-part trailing zeros in the count.\r\n *\r\n * Otherwise, if sd is a number, return a new BigNumber whose value is the value of this\r\n * BigNumber rounded to a maximum of sd significant digits using rounding mode rm, or\r\n * ROUNDING_MODE if rm is omitted.\r\n *\r\n * sd {number|boolean} number: significant digits: integer, 1 to MAX inclusive.\r\n * boolean: whether to count integer-part trailing zeros: true or false.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.precision = P.sd = function (sd, rm) {\r\n var c, n, v,\r\n x = this;\r\n\r\n if (sd != null && sd !== !!sd) {\r\n intCheck(sd, 1, MAX);\r\n if (rm == null) rm = ROUNDING_MODE;\r\n else intCheck(rm, 0, 8);\r\n\r\n return round(new BigNumber(x), sd, rm);\r\n }\r\n\r\n if (!(c = x.c)) return null;\r\n v = c.length - 1;\r\n n = v * LOG_BASE + 1;\r\n\r\n if (v = c[v]) {\r\n\r\n // Subtract the number of trailing zeros of the last element.\r\n for (; v % 10 == 0; v /= 10, n--);\r\n\r\n // Add the number of digits of the first element.\r\n for (v = c[0]; v >= 10; v /= 10, n++);\r\n }\r\n\r\n if (sd && x.e + 1 > n) n = x.e + 1;\r\n\r\n return n;\r\n };\r\n\r\n\r\n /*\r\n * Return a new BigNumber whose value is the value of this BigNumber shifted by k places\r\n * (powers of 10). Shift to the right if n > 0, and to the left if n < 0.\r\n *\r\n * k {number} Integer, -MAX_SAFE_INTEGER to MAX_SAFE_INTEGER inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {k}'\r\n */\r\n P.shiftedBy = function (k) {\r\n intCheck(k, -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER);\r\n return this.times('1e' + k);\r\n };\r\n\r\n\r\n /*\r\n * sqrt(-n) = N\r\n * sqrt(N) = N\r\n * sqrt(-I) = N\r\n * sqrt(I) = I\r\n * sqrt(0) = 0\r\n * sqrt(-0) = -0\r\n *\r\n * Return a new BigNumber whose value is the square root of the value of this BigNumber,\r\n * rounded according to DECIMAL_PLACES and ROUNDING_MODE.\r\n */\r\n P.squareRoot = P.sqrt = function () {\r\n var m, n, r, rep, t,\r\n x = this,\r\n c = x.c,\r\n s = x.s,\r\n e = x.e,\r\n dp = DECIMAL_PLACES + 4,\r\n half = new BigNumber('0.5');\r\n\r\n // Negative/NaN/Infinity/zero?\r\n if (s !== 1 || !c || !c[0]) {\r\n return new BigNumber(!s || s < 0 && (!c || c[0]) ? NaN : c ? x : 1 / 0);\r\n }\r\n\r\n // Initial estimate.\r\n s = Math.sqrt(+valueOf(x));\r\n\r\n // Math.sqrt underflow/overflow?\r\n // Pass x to Math.sqrt as integer, then adjust the exponent of the result.\r\n if (s == 0 || s == 1 / 0) {\r\n n = coeffToString(c);\r\n if ((n.length + e) % 2 == 0) n += '0';\r\n s = Math.sqrt(+n);\r\n e = bitFloor((e + 1) / 2) - (e < 0 || e % 2);\r\n\r\n if (s == 1 / 0) {\r\n n = '5e' + e;\r\n } else {\r\n n = s.toExponential();\r\n n = n.slice(0, n.indexOf('e') + 1) + e;\r\n }\r\n\r\n r = new BigNumber(n);\r\n } else {\r\n r = new BigNumber(s + '');\r\n }\r\n\r\n // Check for zero.\r\n // r could be zero if MIN_EXP is changed after the this value was created.\r\n // This would cause a division by zero (x/t) and hence Infinity below, which would cause\r\n // coeffToString to throw.\r\n if (r.c[0]) {\r\n e = r.e;\r\n s = e + dp;\r\n if (s < 3) s = 0;\r\n\r\n // Newton-Raphson iteration.\r\n for (; ;) {\r\n t = r;\r\n r = half.times(t.plus(div(x, t, dp, 1)));\r\n\r\n if (coeffToString(t.c).slice(0, s) === (n = coeffToString(r.c)).slice(0, s)) {\r\n\r\n // The exponent of r may here be one less than the final result exponent,\r\n // e.g 0.0009999 (e-4) --> 0.001 (e-3), so adjust s so the rounding digits\r\n // are indexed correctly.\r\n if (r.e < e) --s;\r\n n = n.slice(s - 3, s + 1);\r\n\r\n // The 4th rounding digit may be in error by -1 so if the 4 rounding digits\r\n // are 9999 or 4999 (i.e. approaching a rounding boundary) continue the\r\n // iteration.\r\n if (n == '9999' || !rep && n == '4999') {\r\n\r\n // On the first iteration only, check to see if rounding up gives the\r\n // exact result as the nines may infinitely repeat.\r\n if (!rep) {\r\n round(t, t.e + DECIMAL_PLACES + 2, 0);\r\n\r\n if (t.times(t).eq(x)) {\r\n r = t;\r\n break;\r\n }\r\n }\r\n\r\n dp += 4;\r\n s += 4;\r\n rep = 1;\r\n } else {\r\n\r\n // If rounding digits are null, 0{0,4} or 50{0,3}, check for exact\r\n // result. If not, then there are further digits and m will be truthy.\r\n if (!+n || !+n.slice(1) && n.charAt(0) == '5') {\r\n\r\n // Truncate to the first rounding digit.\r\n round(r, r.e + DECIMAL_PLACES + 2, 1);\r\n m = !r.times(r).eq(x);\r\n }\r\n\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return round(r, r.e + DECIMAL_PLACES + 1, ROUNDING_MODE, m);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in exponential notation and\r\n * rounded using ROUNDING_MODE to dp fixed decimal places.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toExponential = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp++;\r\n }\r\n return format(this, dp, rm, 1);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounding\r\n * to dp fixed decimal places using rounding mode rm, or ROUNDING_MODE if rm is omitted.\r\n *\r\n * Note: as with JavaScript's number type, (-0).toFixed(0) is '0',\r\n * but e.g. (-0.00001).toFixed(0) is '-0'.\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n */\r\n P.toFixed = function (dp, rm) {\r\n if (dp != null) {\r\n intCheck(dp, 0, MAX);\r\n dp = dp + this.e + 1;\r\n }\r\n return format(this, dp, rm);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in fixed-point notation rounded\r\n * using rm or ROUNDING_MODE to dp decimal places, and formatted according to the properties\r\n * of the format or FORMAT object (see BigNumber.set).\r\n *\r\n * The formatting object may contain some or all of the properties shown below.\r\n *\r\n * FORMAT = {\r\n * prefix: '',\r\n * groupSize: 3,\r\n * secondaryGroupSize: 0,\r\n * groupSeparator: ',',\r\n * decimalSeparator: '.',\r\n * fractionGroupSize: 0,\r\n * fractionGroupSeparator: '\\xA0', // non-breaking space\r\n * suffix: ''\r\n * };\r\n *\r\n * [dp] {number} Decimal places. Integer, 0 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n * [format] {object} Formatting options. See FORMAT pbject above.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {dp|rm}'\r\n * '[BigNumber Error] Argument not an object: {format}'\r\n */\r\n P.toFormat = function (dp, rm, format) {\r\n var str,\r\n x = this;\r\n\r\n if (format == null) {\r\n if (dp != null && rm && typeof rm == 'object') {\r\n format = rm;\r\n rm = null;\r\n } else if (dp && typeof dp == 'object') {\r\n format = dp;\r\n dp = rm = null;\r\n } else {\r\n format = FORMAT;\r\n }\r\n } else if (typeof format != 'object') {\r\n throw Error\r\n (bignumberError + 'Argument not an object: ' + format);\r\n }\r\n\r\n str = x.toFixed(dp, rm);\r\n\r\n if (x.c) {\r\n var i,\r\n arr = str.split('.'),\r\n g1 = +format.groupSize,\r\n g2 = +format.secondaryGroupSize,\r\n groupSeparator = format.groupSeparator || '',\r\n intPart = arr[0],\r\n fractionPart = arr[1],\r\n isNeg = x.s < 0,\r\n intDigits = isNeg ? intPart.slice(1) : intPart,\r\n len = intDigits.length;\r\n\r\n if (g2) {\r\n i = g1;\r\n g1 = g2;\r\n g2 = i;\r\n len -= i;\r\n }\r\n\r\n if (g1 > 0 && len > 0) {\r\n i = len % g1 || g1;\r\n intPart = intDigits.substr(0, i);\r\n for (; i < len; i += g1) intPart += groupSeparator + intDigits.substr(i, g1);\r\n if (g2 > 0) intPart += groupSeparator + intDigits.slice(i);\r\n if (isNeg) intPart = '-' + intPart;\r\n }\r\n\r\n str = fractionPart\r\n ? intPart + (format.decimalSeparator || '') + ((g2 = +format.fractionGroupSize)\r\n ? fractionPart.replace(new RegExp('\\\\d{' + g2 + '}\\\\B', 'g'),\r\n '$&' + (format.fractionGroupSeparator || ''))\r\n : fractionPart)\r\n : intPart;\r\n }\r\n\r\n return (format.prefix || '') + str + (format.suffix || '');\r\n };\r\n\r\n\r\n /*\r\n * Return an array of two BigNumbers representing the value of this BigNumber as a simple\r\n * fraction with an integer numerator and an integer denominator.\r\n * The denominator will be a positive non-zero value less than or equal to the specified\r\n * maximum denominator. If a maximum denominator is not specified, the denominator will be\r\n * the lowest value necessary to represent the number exactly.\r\n *\r\n * [md] {number|string|BigNumber} Integer >= 1, or Infinity. The maximum denominator.\r\n *\r\n * '[BigNumber Error] Argument {not an integer|out of range} : {md}'\r\n */\r\n P.toFraction = function (md) {\r\n var d, d0, d1, d2, e, exp, n, n0, n1, q, r, s,\r\n x = this,\r\n xc = x.c;\r\n\r\n if (md != null) {\r\n n = new BigNumber(md);\r\n\r\n // Throw if md is less than one or is not an integer, unless it is Infinity.\r\n if (!n.isInteger() && (n.c || n.s !== 1) || n.lt(ONE)) {\r\n throw Error\r\n (bignumberError + 'Argument ' +\r\n (n.isInteger() ? 'out of range: ' : 'not an integer: ') + valueOf(n));\r\n }\r\n }\r\n\r\n if (!xc) return new BigNumber(x);\r\n\r\n d = new BigNumber(ONE);\r\n n1 = d0 = new BigNumber(ONE);\r\n d1 = n0 = new BigNumber(ONE);\r\n s = coeffToString(xc);\r\n\r\n // Determine initial denominator.\r\n // d is a power of 10 and the minimum max denominator that specifies the value exactly.\r\n e = d.e = s.length - x.e - 1;\r\n d.c[0] = POWS_TEN[(exp = e % LOG_BASE) < 0 ? LOG_BASE + exp : exp];\r\n md = !md || n.comparedTo(d) > 0 ? (e > 0 ? d : n1) : n;\r\n\r\n exp = MAX_EXP;\r\n MAX_EXP = 1 / 0;\r\n n = new BigNumber(s);\r\n\r\n // n0 = d1 = 0\r\n n0.c[0] = 0;\r\n\r\n for (; ;) {\r\n q = div(n, d, 0, 1);\r\n d2 = d0.plus(q.times(d1));\r\n if (d2.comparedTo(md) == 1) break;\r\n d0 = d1;\r\n d1 = d2;\r\n n1 = n0.plus(q.times(d2 = n1));\r\n n0 = d2;\r\n d = n.minus(q.times(d2 = d));\r\n n = d2;\r\n }\r\n\r\n d2 = div(md.minus(d0), d1, 0, 1);\r\n n0 = n0.plus(d2.times(n1));\r\n d0 = d0.plus(d2.times(d1));\r\n n0.s = n1.s = x.s;\r\n e = e * 2;\r\n\r\n // Determine which fraction is closer to x, n0/d0 or n1/d1\r\n r = div(n1, d1, e, ROUNDING_MODE).minus(x).abs().comparedTo(\r\n div(n0, d0, e, ROUNDING_MODE).minus(x).abs()) < 1 ? [n1, d1] : [n0, d0];\r\n\r\n MAX_EXP = exp;\r\n\r\n return r;\r\n };\r\n\r\n\r\n /*\r\n * Return the value of this BigNumber converted to a number primitive.\r\n */\r\n P.toNumber = function () {\r\n return +valueOf(this);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber rounded to sd significant digits\r\n * using rounding mode rm or ROUNDING_MODE. If sd is less than the number of digits\r\n * necessary to represent the integer part of the value in fixed-point notation, then use\r\n * exponential notation.\r\n *\r\n * [sd] {number} Significant digits. Integer, 1 to MAX inclusive.\r\n * [rm] {number} Rounding mode. Integer, 0 to 8 inclusive.\r\n *\r\n * '[BigNumber Error] Argument {not a primitive number|not an integer|out of range}: {sd|rm}'\r\n */\r\n P.toPrecision = function (sd, rm) {\r\n if (sd != null) intCheck(sd, 1, MAX);\r\n return format(this, sd, rm, 2);\r\n };\r\n\r\n\r\n /*\r\n * Return a string representing the value of this BigNumber in base b, or base 10 if b is\r\n * omitted. If a base is specified, including base 10, round according to DECIMAL_PLACES and\r\n * ROUNDING_MODE. If a base is not specified, and this BigNumber has a positive exponent\r\n * that is equal to or greater than TO_EXP_POS, or a negative exponent equal to or less than\r\n * TO_EXP_NEG, return exponential notation.\r\n *\r\n * [b] {number} Integer, 2 to ALPHABET.length inclusive.\r\n *\r\n * '[BigNumber Error] Base {not a primitive number|not an integer|out of range}: {b}'\r\n */\r\n P.toString = function (b) {\r\n var str,\r\n n = this,\r\n s = n.s,\r\n e = n.e;\r\n\r\n // Infinity or NaN?\r\n if (e === null) {\r\n if (s) {\r\n str = 'Infinity';\r\n if (s < 0) str = '-' + str;\r\n } else {\r\n str = 'NaN';\r\n }\r\n } else {\r\n if (b == null) {\r\n str = e <= TO_EXP_NEG || e >= TO_EXP_POS\r\n ? toExponential(coeffToString(n.c), e)\r\n : toFixedPoint(coeffToString(n.c), e, '0');\r\n } else if (b === 10 && alphabetHasNormalDecimalDigits) {\r\n n = round(new BigNumber(n), DECIMAL_PLACES + e + 1, ROUNDING_MODE);\r\n str = toFixedPoint(coeffToString(n.c), n.e, '0');\r\n } else {\r\n intCheck(b, 2, ALPHABET.length, 'Base');\r\n str = convertBase(toFixedPoint(coeffToString(n.c), e, '0'), 10, b, s, true);\r\n }\r\n\r\n if (s < 0 && n.c[0]) str = '-' + str;\r\n }\r\n\r\n return str;\r\n };\r\n\r\n\r\n /*\r\n * Return as toString, but do not accept a base argument, and include the minus sign for\r\n * negative zero.\r\n */\r\n P.valueOf = P.toJSON = function () {\r\n return valueOf(this);\r\n };\r\n\r\n\r\n P._isBigNumber = true;\r\n\r\n P[Symbol.toStringTag] = 'BigNumber';\r\n\r\n // Node.js v10.12.0+\r\n P[Symbol.for('nodejs.util.inspect.custom')] = P.valueOf;\r\n\r\n if (configObject != null) BigNumber.set(configObject);\r\n\r\n return BigNumber;\r\n}\r\n\r\n\r\n// PRIVATE HELPER FUNCTIONS\r\n\r\n// These functions don't need access to variables,\r\n// e.g. DECIMAL_PLACES, in the scope of the `clone` function above.\r\n\r\n\r\nfunction bitFloor(n) {\r\n var i = n | 0;\r\n return n > 0 || n === i ? i : i - 1;\r\n}\r\n\r\n\r\n// Return a coefficient array as a string of base 10 digits.\r\nfunction coeffToString(a) {\r\n var s, z,\r\n i = 1,\r\n j = a.length,\r\n r = a[0] + '';\r\n\r\n for (; i < j;) {\r\n s = a[i++] + '';\r\n z = LOG_BASE - s.length;\r\n for (; z--; s = '0' + s);\r\n r += s;\r\n }\r\n\r\n // Determine trailing zeros.\r\n for (j = r.length; r.charCodeAt(--j) === 48;);\r\n\r\n return r.slice(0, j + 1 || 1);\r\n}\r\n\r\n\r\n// Compare the value of BigNumbers x and y.\r\nfunction compare(x, y) {\r\n var a, b,\r\n xc = x.c,\r\n yc = y.c,\r\n i = x.s,\r\n j = y.s,\r\n k = x.e,\r\n l = y.e;\r\n\r\n // Either NaN?\r\n if (!i || !j) return null;\r\n\r\n a = xc && !xc[0];\r\n b = yc && !yc[0];\r\n\r\n // Either zero?\r\n if (a || b) return a ? b ? 0 : -j : i;\r\n\r\n // Signs differ?\r\n if (i != j) return i;\r\n\r\n a = i < 0;\r\n b = k == l;\r\n\r\n // Either Infinity?\r\n if (!xc || !yc) return b ? 0 : !xc ^ a ? 1 : -1;\r\n\r\n // Compare exponents.\r\n if (!b) return k > l ^ a ? 1 : -1;\r\n\r\n j = (k = xc.length) < (l = yc.length) ? k : l;\r\n\r\n // Compare digit by digit.\r\n for (i = 0; i < j; i++) if (xc[i] != yc[i]) return xc[i] > yc[i] ^ a ? 1 : -1;\r\n\r\n // Compare lengths.\r\n return k == l ? 0 : k > l ^ a ? 1 : -1;\r\n}\r\n\r\n\r\n/*\r\n * Check that n is a primitive number, an integer, and in range, otherwise throw.\r\n */\r\nfunction intCheck(n, min, max, name) {\r\n if (n < min || n > max || n !== mathfloor(n)) {\r\n throw Error\r\n (bignumberError + (name || 'Argument') + (typeof n == 'number'\r\n ? n < min || n > max ? ' out of range: ' : ' not an integer: '\r\n : ' not a primitive number: ') + String(n));\r\n }\r\n}\r\n\r\n\r\n// Assumes finite n.\r\nfunction isOdd(n) {\r\n var k = n.c.length - 1;\r\n return bitFloor(n.e / LOG_BASE) == k && n.c[k] % 2 != 0;\r\n}\r\n\r\n\r\nfunction toExponential(str, e) {\r\n return (str.length > 1 ? str.charAt(0) + '.' + str.slice(1) : str) +\r\n (e < 0 ? 'e' : 'e+') + e;\r\n}\r\n\r\n\r\nfunction toFixedPoint(str, e, z) {\r\n var len, zs;\r\n\r\n // Negative exponent?\r\n if (e < 0) {\r\n\r\n // Prepend zeros.\r\n for (zs = z + '.'; ++e; zs += z);\r\n str = zs + str;\r\n\r\n // Positive exponent\r\n } else {\r\n len = str.length;\r\n\r\n // Append zeros.\r\n if (++e > len) {\r\n for (zs = z, e -= len; --e; zs += z);\r\n str += zs;\r\n } else if (e < len) {\r\n str = str.slice(0, e) + '.' + str.slice(e);\r\n }\r\n }\r\n\r\n return str;\r\n}\r\n\r\n\r\n// EXPORT\r\n\r\n\r\nexport var BigNumber = clone();\r\n\r\nexport default BigNumber;\r\n","function isAnimationControls(v) {\n return typeof v === \"object\" && typeof v.start === \"function\";\n}\n\nexport { isAnimationControls };\n","var isKeyframesTarget = function (v) {\n return Array.isArray(v);\n};\n\nexport { isKeyframesTarget };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\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","import { warning } from 'hey-listen';\nimport { clamp } from '../../utils/clamp.mjs';\n\nconst safeMin = 0.001;\nconst minDuration = 0.01;\nconst maxDuration = 10.0;\nconst minDamping = 0.05;\nconst maxDamping = 1;\nfunction findSpring({ duration = 800, bounce = 0.25, velocity = 0, mass = 1, }) {\n let envelope;\n let derivative;\n warning(duration <= maxDuration * 1000, \"Spring duration must be 10 seconds or less\");\n let dampingRatio = 1 - bounce;\n dampingRatio = clamp(minDamping, maxDamping, dampingRatio);\n duration = clamp(minDuration, maxDuration, duration / 1000);\n if (dampingRatio < 1) {\n envelope = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const a = exponentialDecay - velocity;\n const b = calcAngularFreq(undampedFreq, dampingRatio);\n const c = Math.exp(-delta);\n return safeMin - (a / b) * c;\n };\n derivative = (undampedFreq) => {\n const exponentialDecay = undampedFreq * dampingRatio;\n const delta = exponentialDecay * duration;\n const d = delta * velocity + velocity;\n const e = Math.pow(dampingRatio, 2) * Math.pow(undampedFreq, 2) * duration;\n const f = Math.exp(-delta);\n const g = calcAngularFreq(Math.pow(undampedFreq, 2), dampingRatio);\n const factor = -envelope(undampedFreq) + safeMin > 0 ? -1 : 1;\n return (factor * ((d - e) * f)) / g;\n };\n }\n else {\n envelope = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (undampedFreq - velocity) * duration + 1;\n return -safeMin + a * b;\n };\n derivative = (undampedFreq) => {\n const a = Math.exp(-undampedFreq * duration);\n const b = (velocity - undampedFreq) * (duration * duration);\n return a * b;\n };\n }\n const initialGuess = 5 / duration;\n const undampedFreq = approximateRoot(envelope, derivative, initialGuess);\n duration = duration * 1000;\n if (isNaN(undampedFreq)) {\n return {\n stiffness: 100,\n damping: 10,\n duration,\n };\n }\n else {\n const stiffness = Math.pow(undampedFreq, 2) * mass;\n return {\n stiffness,\n damping: dampingRatio * 2 * Math.sqrt(mass * stiffness),\n duration,\n };\n }\n}\nconst rootIterations = 12;\nfunction approximateRoot(envelope, derivative, initialGuess) {\n let result = initialGuess;\n for (let i = 1; i < rootIterations; i++) {\n result = result - envelope(result) / derivative(result);\n }\n return result;\n}\nfunction calcAngularFreq(undampedFreq, dampingRatio) {\n return undampedFreq * Math.sqrt(1 - dampingRatio * dampingRatio);\n}\n\nexport { calcAngularFreq, findSpring, maxDamping, maxDuration, minDamping, minDuration };\n","import { __rest } from 'tslib';\nimport { findSpring, calcAngularFreq } from '../utils/find-spring.mjs';\n\nconst durationKeys = [\"duration\", \"bounce\"];\nconst physicsKeys = [\"stiffness\", \"damping\", \"mass\"];\nfunction isSpringType(options, keys) {\n return keys.some((key) => options[key] !== undefined);\n}\nfunction getSpringOptions(options) {\n let springOptions = Object.assign({ velocity: 0.0, stiffness: 100, damping: 10, mass: 1.0, isResolvedFromDuration: false }, options);\n if (!isSpringType(options, physicsKeys) &&\n isSpringType(options, durationKeys)) {\n const derived = findSpring(options);\n springOptions = Object.assign(Object.assign(Object.assign({}, springOptions), derived), { velocity: 0.0, mass: 1.0 });\n springOptions.isResolvedFromDuration = true;\n }\n return springOptions;\n}\nfunction spring(_a) {\n var { from = 0.0, to = 1.0, restSpeed = 2, restDelta } = _a, options = __rest(_a, [\"from\", \"to\", \"restSpeed\", \"restDelta\"]);\n const state = { done: false, value: from };\n let { stiffness, damping, mass, velocity, duration, isResolvedFromDuration, } = getSpringOptions(options);\n let resolveSpring = zero;\n let resolveVelocity = zero;\n function createSpring() {\n const initialVelocity = velocity ? -(velocity / 1000) : 0.0;\n const initialDelta = to - from;\n const dampingRatio = damping / (2 * Math.sqrt(stiffness * mass));\n const undampedAngularFreq = Math.sqrt(stiffness / mass) / 1000;\n if (restDelta === undefined) {\n restDelta = Math.min(Math.abs(to - from) / 100, 0.4);\n }\n if (dampingRatio < 1) {\n const angularFreq = calcAngularFreq(undampedAngularFreq, dampingRatio);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (to -\n envelope *\n (((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) /\n angularFreq) *\n Math.sin(angularFreq * t) +\n initialDelta * Math.cos(angularFreq * t)));\n };\n resolveVelocity = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n return (dampingRatio *\n undampedAngularFreq *\n envelope *\n ((Math.sin(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta)) /\n angularFreq +\n initialDelta * Math.cos(angularFreq * t)) -\n envelope *\n (Math.cos(angularFreq * t) *\n (initialVelocity +\n dampingRatio *\n undampedAngularFreq *\n initialDelta) -\n angularFreq *\n initialDelta *\n Math.sin(angularFreq * t)));\n };\n }\n else if (dampingRatio === 1) {\n resolveSpring = (t) => to -\n Math.exp(-undampedAngularFreq * t) *\n (initialDelta +\n (initialVelocity + undampedAngularFreq * initialDelta) *\n t);\n }\n else {\n const dampedAngularFreq = undampedAngularFreq * Math.sqrt(dampingRatio * dampingRatio - 1);\n resolveSpring = (t) => {\n const envelope = Math.exp(-dampingRatio * undampedAngularFreq * t);\n const freqForT = Math.min(dampedAngularFreq * t, 300);\n return (to -\n (envelope *\n ((initialVelocity +\n dampingRatio * undampedAngularFreq * initialDelta) *\n Math.sinh(freqForT) +\n dampedAngularFreq *\n initialDelta *\n Math.cosh(freqForT))) /\n dampedAngularFreq);\n };\n }\n }\n createSpring();\n return {\n next: (t) => {\n const current = resolveSpring(t);\n if (!isResolvedFromDuration) {\n const currentVelocity = resolveVelocity(t) * 1000;\n const isBelowVelocityThreshold = Math.abs(currentVelocity) <= restSpeed;\n const isBelowDisplacementThreshold = Math.abs(to - current) <= restDelta;\n state.done =\n isBelowVelocityThreshold && isBelowDisplacementThreshold;\n }\n else {\n state.done = t >= duration;\n }\n state.value = state.done ? to : current;\n return state;\n },\n flipTarget: () => {\n velocity = -velocity;\n [from, to] = [to, from];\n createSpring();\n },\n };\n}\nspring.needsInterpolation = (a, b) => typeof a === \"string\" || typeof b === \"string\";\nconst zero = (_t) => 0;\n\nexport { spring };\n","function hueToRgb(p, q, t) {\n if (t < 0)\n t += 1;\n if (t > 1)\n t -= 1;\n if (t < 1 / 6)\n return p + (q - p) * 6 * t;\n if (t < 1 / 2)\n return q;\n if (t < 2 / 3)\n return p + (q - p) * (2 / 3 - t) * 6;\n return p;\n}\nfunction hslaToRgba({ hue, saturation, lightness, alpha }) {\n hue /= 360;\n saturation /= 100;\n lightness /= 100;\n let red = 0;\n let green = 0;\n let blue = 0;\n if (!saturation) {\n red = green = blue = lightness;\n }\n else {\n const q = lightness < 0.5\n ? lightness * (1 + saturation)\n : lightness + saturation - lightness * saturation;\n const p = 2 * lightness - q;\n red = hueToRgb(p, q, hue + 1 / 3);\n green = hueToRgb(p, q, hue);\n blue = hueToRgb(p, q, hue - 1 / 3);\n }\n return {\n red: Math.round(red * 255),\n green: Math.round(green * 255),\n blue: Math.round(blue * 255),\n alpha,\n };\n}\n\nexport { hslaToRgba };\n","import { mix } from './mix.mjs';\nimport { hsla, rgba, hex } from 'style-value-types';\nimport { invariant } from 'hey-listen';\nimport { hslaToRgba } from './hsla-to-rgba.mjs';\n\nconst mixLinearColor = (from, to, v) => {\n const fromExpo = from * from;\n const toExpo = to * to;\n return Math.sqrt(Math.max(0, v * (toExpo - fromExpo) + fromExpo));\n};\nconst colorTypes = [hex, rgba, hsla];\nconst getColorType = (v) => colorTypes.find((type) => type.test(v));\nconst notAnimatable = (color) => `'${color}' is not an animatable color. Use the equivalent color code instead.`;\nconst mixColor = (from, to) => {\n let fromColorType = getColorType(from);\n let toColorType = getColorType(to);\n invariant(!!fromColorType, notAnimatable(from));\n invariant(!!toColorType, notAnimatable(to));\n let fromColor = fromColorType.parse(from);\n let toColor = toColorType.parse(to);\n if (fromColorType === hsla) {\n fromColor = hslaToRgba(fromColor);\n fromColorType = rgba;\n }\n if (toColorType === hsla) {\n toColor = hslaToRgba(toColor);\n toColorType = rgba;\n }\n const blended = Object.assign({}, fromColor);\n return (v) => {\n for (const key in blended) {\n if (key !== \"alpha\") {\n blended[key] = mixLinearColor(fromColor[key], toColor[key], v);\n }\n }\n blended.alpha = mix(fromColor.alpha, toColor.alpha, v);\n return fromColorType.transform(blended);\n };\n};\n\nexport { mixColor, mixLinearColor };\n","import { complex, color } from 'style-value-types';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { isNum } from './inc.mjs';\nimport { pipe } from './pipe.mjs';\nimport { warning } from 'hey-listen';\n\nfunction getMixer(origin, target) {\n if (isNum(origin)) {\n return (v) => mix(origin, target, v);\n }\n else if (color.test(origin)) {\n return mixColor(origin, target);\n }\n else {\n return mixComplex(origin, target);\n }\n}\nconst mixArray = (from, to) => {\n const output = [...from];\n const numValues = output.length;\n const blendValue = from.map((fromThis, i) => getMixer(fromThis, to[i]));\n return (v) => {\n for (let i = 0; i < numValues; i++) {\n output[i] = blendValue[i](v);\n }\n return output;\n };\n};\nconst mixObject = (origin, target) => {\n const output = Object.assign(Object.assign({}, origin), target);\n const blendValue = {};\n for (const key in output) {\n if (origin[key] !== undefined && target[key] !== undefined) {\n blendValue[key] = getMixer(origin[key], target[key]);\n }\n }\n return (v) => {\n for (const key in blendValue) {\n output[key] = blendValue[key](v);\n }\n return output;\n };\n};\nfunction analyse(value) {\n const parsed = complex.parse(value);\n const numValues = parsed.length;\n let numNumbers = 0;\n let numRGB = 0;\n let numHSL = 0;\n for (let i = 0; i < numValues; i++) {\n if (numNumbers || typeof parsed[i] === \"number\") {\n numNumbers++;\n }\n else {\n if (parsed[i].hue !== undefined) {\n numHSL++;\n }\n else {\n numRGB++;\n }\n }\n }\n return { parsed, numNumbers, numRGB, numHSL };\n}\nconst mixComplex = (origin, target) => {\n const template = complex.createTransformer(target);\n const originStats = analyse(origin);\n const targetStats = analyse(target);\n const canInterpolate = originStats.numHSL === targetStats.numHSL &&\n originStats.numRGB === targetStats.numRGB &&\n originStats.numNumbers >= targetStats.numNumbers;\n if (canInterpolate) {\n return pipe(mixArray(originStats.parsed, targetStats.parsed), template);\n }\n else {\n warning(true, `Complex values '${origin}' and '${target}' too different to mix. Ensure all colors are of the same type, and that each contains the same quantity of number and color values. Falling back to instant transition.`);\n return (p) => `${p > 0 ? target : origin}`;\n }\n};\n\nexport { mixArray, mixComplex, mixObject };\n","import { progress } from './progress.mjs';\nimport { mix } from './mix.mjs';\nimport { mixColor } from './mix-color.mjs';\nimport { mixComplex, mixArray, mixObject } from './mix-complex.mjs';\nimport { color } from 'style-value-types';\nimport { clamp } from './clamp.mjs';\nimport { pipe } from './pipe.mjs';\nimport { invariant } from 'hey-listen';\n\nconst mixNumber = (from, to) => (p) => mix(from, to, p);\nfunction detectMixerFactory(v) {\n if (typeof v === 'number') {\n return mixNumber;\n }\n else if (typeof v === 'string') {\n if (color.test(v)) {\n return mixColor;\n }\n else {\n return mixComplex;\n }\n }\n else if (Array.isArray(v)) {\n return mixArray;\n }\n else if (typeof v === 'object') {\n return mixObject;\n }\n}\nfunction createMixers(output, ease, customMixer) {\n const mixers = [];\n const mixerFactory = customMixer || detectMixerFactory(output[0]);\n const numMixers = output.length - 1;\n for (let i = 0; i < numMixers; i++) {\n let mixer = mixerFactory(output[i], output[i + 1]);\n if (ease) {\n const easingFunction = Array.isArray(ease) ? ease[i] : ease;\n mixer = pipe(easingFunction, mixer);\n }\n mixers.push(mixer);\n }\n return mixers;\n}\nfunction fastInterpolate([from, to], [mixer]) {\n return (v) => mixer(progress(from, to, v));\n}\nfunction slowInterpolate(input, mixers) {\n const inputLength = input.length;\n const lastInputIndex = inputLength - 1;\n return (v) => {\n let mixerIndex = 0;\n let foundMixerIndex = false;\n if (v <= input[0]) {\n foundMixerIndex = true;\n }\n else if (v >= input[lastInputIndex]) {\n mixerIndex = lastInputIndex - 1;\n foundMixerIndex = true;\n }\n if (!foundMixerIndex) {\n let i = 1;\n for (; i < inputLength; i++) {\n if (input[i] > v || i === lastInputIndex) {\n break;\n }\n }\n mixerIndex = i - 1;\n }\n const progressInRange = progress(input[mixerIndex], input[mixerIndex + 1], v);\n return mixers[mixerIndex](progressInRange);\n };\n}\nfunction interpolate(input, output, { clamp: isClamp = true, ease, mixer } = {}) {\n const inputLength = input.length;\n invariant(inputLength === output.length, 'Both input and output ranges must be the same length');\n invariant(!ease || !Array.isArray(ease) || ease.length === inputLength - 1, 'Array of easing functions must be of length `input.length - 1`, as it applies to the transitions **between** the defined values.');\n if (input[0] > input[inputLength - 1]) {\n input = [].concat(input);\n output = [].concat(output);\n input.reverse();\n output.reverse();\n }\n const mixers = createMixers(output, ease, mixer);\n const interpolator = inputLength === 2\n ? fastInterpolate(input, mixers)\n : slowInterpolate(input, mixers);\n return isClamp\n ? (v) => interpolator(clamp(input[0], input[inputLength - 1], v))\n : interpolator;\n}\n\nexport { interpolate };\n","import { interpolate } from '../../utils/interpolate.mjs';\nimport { easeInOut } from '../../easing/index.mjs';\n\nfunction defaultEasing(values, easing) {\n return values.map(() => easing || easeInOut).splice(0, values.length - 1);\n}\nfunction defaultOffset(values) {\n const numValues = values.length;\n return values.map((_value, i) => i !== 0 ? i / (numValues - 1) : 0);\n}\nfunction convertOffsetToTimes(offset, duration) {\n return offset.map((o) => o * duration);\n}\nfunction keyframes({ from = 0, to = 1, ease, offset, duration = 300, }) {\n const state = { done: false, value: from };\n const values = Array.isArray(to) ? to : [from, to];\n const times = convertOffsetToTimes(offset && offset.length === values.length\n ? offset\n : defaultOffset(values), duration);\n function createInterpolator() {\n return interpolate(times, values, {\n ease: Array.isArray(ease) ? ease : defaultEasing(values, ease),\n });\n }\n let interpolator = createInterpolator();\n return {\n next: (t) => {\n state.value = interpolator(t);\n state.done = t >= duration;\n return state;\n },\n flipTarget: () => {\n values.reverse();\n interpolator = createInterpolator();\n },\n };\n}\n\nexport { convertOffsetToTimes, defaultEasing, defaultOffset, keyframes };\n","import { spring } from '../generators/spring.mjs';\nimport { keyframes } from '../generators/keyframes.mjs';\nimport { decay } from '../generators/decay.mjs';\n\nconst types = { keyframes, spring, decay };\nfunction detectAnimationFromOptions(config) {\n if (Array.isArray(config.to)) {\n return keyframes;\n }\n else if (types[config.type]) {\n return types[config.type];\n }\n const keys = new Set(Object.keys(config));\n if (keys.has(\"ease\") ||\n (keys.has(\"duration\") && !keys.has(\"dampingRatio\"))) {\n return keyframes;\n }\n else if (keys.has(\"dampingRatio\") ||\n keys.has(\"stiffness\") ||\n keys.has(\"mass\") ||\n keys.has(\"damping\") ||\n keys.has(\"restSpeed\") ||\n keys.has(\"restDelta\")) {\n return spring;\n }\n return keyframes;\n}\n\nexport { detectAnimationFromOptions };\n","function decay({ velocity = 0, from = 0, power = 0.8, timeConstant = 350, restDelta = 0.5, modifyTarget, }) {\n const state = { done: false, value: from };\n let amplitude = power * velocity;\n const ideal = from + amplitude;\n const target = modifyTarget === undefined ? ideal : modifyTarget(ideal);\n if (target !== ideal)\n amplitude = target - from;\n return {\n next: (t) => {\n const delta = -amplitude * Math.exp(-t / timeConstant);\n state.done = !(delta > restDelta || delta < -restDelta);\n state.value = state.done ? target : target + delta;\n return state;\n },\n flipTarget: () => { },\n };\n}\n\nexport { decay };\n","function loopElapsed(elapsed, duration, delay = 0) {\n return elapsed - duration - delay;\n}\nfunction reverseElapsed(elapsed, duration, delay = 0, isForwardPlayback = true) {\n return isForwardPlayback\n ? loopElapsed(duration + -elapsed, duration, delay)\n : duration - (elapsed - duration) + delay;\n}\nfunction hasRepeatDelayElapsed(elapsed, duration, delay, isForwardPlayback) {\n return isForwardPlayback ? elapsed >= duration + delay : elapsed <= -delay;\n}\n\nexport { hasRepeatDelayElapsed, loopElapsed, reverseElapsed };\n","import { __rest } from 'tslib';\nimport { detectAnimationFromOptions } from './utils/detect-animation-from-options.mjs';\nimport sync, { cancelSync } from 'framesync';\nimport { interpolate } from '../utils/interpolate.mjs';\nimport { hasRepeatDelayElapsed, reverseElapsed, loopElapsed } from './utils/elapsed.mjs';\n\nconst framesync = (update) => {\n const passTimestamp = ({ delta }) => update(delta);\n return {\n start: () => sync.update(passTimestamp, true),\n stop: () => cancelSync.update(passTimestamp),\n };\n};\nfunction animate(_a) {\n var _b, _c;\n var { from, autoplay = true, driver = framesync, elapsed = 0, repeat: repeatMax = 0, repeatType = \"loop\", repeatDelay = 0, onPlay, onStop, onComplete, onRepeat, onUpdate } = _a, options = __rest(_a, [\"from\", \"autoplay\", \"driver\", \"elapsed\", \"repeat\", \"repeatType\", \"repeatDelay\", \"onPlay\", \"onStop\", \"onComplete\", \"onRepeat\", \"onUpdate\"]);\n let { to } = options;\n let driverControls;\n let repeatCount = 0;\n let computedDuration = options.duration;\n let latest;\n let isComplete = false;\n let isForwardPlayback = true;\n let interpolateFromNumber;\n const animator = detectAnimationFromOptions(options);\n if ((_c = (_b = animator).needsInterpolation) === null || _c === void 0 ? void 0 : _c.call(_b, from, to)) {\n interpolateFromNumber = interpolate([0, 100], [from, to], {\n clamp: false,\n });\n from = 0;\n to = 100;\n }\n const animation = animator(Object.assign(Object.assign({}, options), { from, to }));\n function repeat() {\n repeatCount++;\n if (repeatType === \"reverse\") {\n isForwardPlayback = repeatCount % 2 === 0;\n elapsed = reverseElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback);\n }\n else {\n elapsed = loopElapsed(elapsed, computedDuration, repeatDelay);\n if (repeatType === \"mirror\")\n animation.flipTarget();\n }\n isComplete = false;\n onRepeat && onRepeat();\n }\n function complete() {\n driverControls.stop();\n onComplete && onComplete();\n }\n function update(delta) {\n if (!isForwardPlayback)\n delta = -delta;\n elapsed += delta;\n if (!isComplete) {\n const state = animation.next(Math.max(0, elapsed));\n latest = state.value;\n if (interpolateFromNumber)\n latest = interpolateFromNumber(latest);\n isComplete = isForwardPlayback ? state.done : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(latest);\n if (isComplete) {\n if (repeatCount === 0)\n computedDuration !== null && computedDuration !== void 0 ? computedDuration : (computedDuration = elapsed);\n if (repeatCount < repeatMax) {\n hasRepeatDelayElapsed(elapsed, computedDuration, repeatDelay, isForwardPlayback) && repeat();\n }\n else {\n complete();\n }\n }\n }\n function play() {\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n driverControls = driver(update);\n driverControls.start();\n }\n autoplay && play();\n return {\n stop: () => {\n onStop === null || onStop === void 0 ? void 0 : onStop();\n driverControls.stop();\n },\n };\n}\n\nexport { animate };\n","import { linear } from './index.mjs';\n\nconst a = (a1, a2) => 1.0 - 3.0 * a2 + 3.0 * a1;\nconst b = (a1, a2) => 3.0 * a2 - 6.0 * a1;\nconst c = (a1) => 3.0 * a1;\nconst calcBezier = (t, a1, a2) => ((a(a1, a2) * t + b(a1, a2)) * t + c(a1)) * t;\nconst getSlope = (t, a1, a2) => 3.0 * a(a1, a2) * t * t + 2.0 * b(a1, a2) * t + c(a1);\nconst subdivisionPrecision = 0.0000001;\nconst subdivisionMaxIterations = 10;\nfunction binarySubdivide(aX, aA, aB, mX1, mX2) {\n let currentX;\n let currentT;\n let i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n }\n else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > subdivisionPrecision &&\n ++i < subdivisionMaxIterations);\n return currentT;\n}\nconst newtonIterations = 8;\nconst newtonMinSlope = 0.001;\nfunction newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (let i = 0; i < newtonIterations; ++i) {\n const currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n const currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\nconst kSplineTableSize = 11;\nconst kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\nfunction cubicBezier(mX1, mY1, mX2, mY2) {\n if (mX1 === mY1 && mX2 === mY2)\n return linear;\n const sampleValues = new Float32Array(kSplineTableSize);\n for (let i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n function getTForX(aX) {\n let intervalStart = 0.0;\n let currentSample = 1;\n const lastSample = kSplineTableSize - 1;\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n const dist = (aX - sampleValues[currentSample]) /\n (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n const guessForT = intervalStart + dist * kSampleStepSize;\n const initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= newtonMinSlope) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n }\n else if (initialSlope === 0.0) {\n return guessForT;\n }\n else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n return (t) => t === 0 || t === 1 ? t : calcBezier(getTForX(t), mY1, mY2);\n}\n\nexport { cubicBezier };\n","import { __read } from 'tslib';\nimport { invariant } from 'hey-listen';\nimport { cubicBezier, linear, easeIn, easeInOut, easeOut, circIn, circInOut, circOut, backIn, backInOut, backOut, anticipate, bounceIn, bounceInOut, bounceOut } from 'popmotion';\n\nvar easingLookup = {\n linear: linear,\n easeIn: easeIn,\n easeInOut: easeInOut,\n easeOut: easeOut,\n circIn: circIn,\n circInOut: circInOut,\n circOut: circOut,\n backIn: backIn,\n backInOut: backInOut,\n backOut: backOut,\n anticipate: anticipate,\n bounceIn: bounceIn,\n bounceInOut: bounceInOut,\n bounceOut: bounceOut,\n};\nvar easingDefinitionToFunction = function (definition) {\n if (Array.isArray(definition)) {\n // If cubic bezier definition, create bezier curve\n invariant(definition.length === 4, \"Cubic bezier arrays must contain four numerical values.\");\n var _a = __read(definition, 4), x1 = _a[0], y1 = _a[1], x2 = _a[2], y2 = _a[3];\n return cubicBezier(x1, y1, x2, y2);\n }\n else if (typeof definition === \"string\") {\n // Else lookup from table\n invariant(easingLookup[definition] !== undefined, \"Invalid easing type '\".concat(definition, \"'\"));\n return easingLookup[definition];\n }\n return definition;\n};\nvar isEasingArray = function (ease) {\n return Array.isArray(ease) && typeof ease[0] !== \"number\";\n};\n\nexport { easingDefinitionToFunction, isEasingArray };\n","import { complex } from 'style-value-types';\n\n/**\n * Check if a value is animatable. Examples:\n *\n * ✅: 100, \"100px\", \"#fff\"\n * ❌: \"block\", \"url(2.jpg)\"\n * @param value\n *\n * @internal\n */\nvar isAnimatable = function (key, value) {\n // If the list of keys tat might be non-animatable grows, replace with Set\n if (key === \"zIndex\")\n return false;\n // If it's a number or a keyframes array, we can animate it. We might at some point\n // need to do a deep isAnimatable check of keyframes, or let Popmotion handle this,\n // but for now lets leave it like this for performance reasons\n if (typeof value === \"number\" || Array.isArray(value))\n return true;\n if (typeof value === \"string\" && // It's animatable if we have a string\n complex.test(value) && // And it contains numbers and/or colors\n !value.startsWith(\"url(\") // Unless it starts with \"url(\"\n ) {\n return true;\n }\n return false;\n};\n\nexport { isAnimatable };\n","import { __assign } from 'tslib';\nimport { isKeyframesTarget } from './is-keyframes-target.mjs';\n\nvar underDampedSpring = function () { return ({\n type: \"spring\",\n stiffness: 500,\n damping: 25,\n restSpeed: 10,\n}); };\nvar criticallyDampedSpring = function (to) { return ({\n type: \"spring\",\n stiffness: 550,\n damping: to === 0 ? 2 * Math.sqrt(550) : 30,\n restSpeed: 10,\n}); };\nvar linearTween = function () { return ({\n type: \"keyframes\",\n ease: \"linear\",\n duration: 0.3,\n}); };\nvar keyframes = function (values) { return ({\n type: \"keyframes\",\n duration: 0.8,\n values: values,\n}); };\nvar defaultTransitions = {\n x: underDampedSpring,\n y: underDampedSpring,\n z: underDampedSpring,\n rotate: underDampedSpring,\n rotateX: underDampedSpring,\n rotateY: underDampedSpring,\n rotateZ: underDampedSpring,\n scaleX: criticallyDampedSpring,\n scaleY: criticallyDampedSpring,\n scale: criticallyDampedSpring,\n opacity: linearTween,\n backgroundColor: linearTween,\n color: linearTween,\n default: criticallyDampedSpring,\n};\nvar getDefaultTransition = function (valueKey, to) {\n var transitionFactory;\n if (isKeyframesTarget(to)) {\n transitionFactory = keyframes;\n }\n else {\n transitionFactory =\n defaultTransitions[valueKey] || defaultTransitions.default;\n }\n return __assign({ to: to }, transitionFactory(to));\n};\n\nexport { criticallyDampedSpring, getDefaultTransition, linearTween, underDampedSpring };\n","var instantAnimationState = {\n current: false,\n};\n\nexport { instantAnimationState };\n","import { __assign, __rest, __spreadArray, __read } from 'tslib';\nimport { inertia, animate } from 'popmotion';\nimport { secondsToMilliseconds } from '../../utils/time-conversion.mjs';\nimport { isEasingArray, easingDefinitionToFunction } from './easing.mjs';\nimport { isAnimatable } from './is-animatable.mjs';\nimport { getDefaultTransition } from './default-transitions.mjs';\nimport { warning } from 'hey-listen';\nimport { getAnimatableNone } from '../../render/dom/value-types/animatable-none.mjs';\nimport { instantAnimationState } from '../../utils/use-instant-transition-state.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\n\n/**\n * Decide whether a transition is defined on a given Transition.\n * This filters out orchestration options and returns true\n * if any options are left.\n */\nfunction isTransitionDefined(_a) {\n _a.when; _a.delay; _a.delayChildren; _a.staggerChildren; _a.staggerDirection; _a.repeat; _a.repeatType; _a.repeatDelay; _a.from; var transition = __rest(_a, [\"when\", \"delay\", \"delayChildren\", \"staggerChildren\", \"staggerDirection\", \"repeat\", \"repeatType\", \"repeatDelay\", \"from\"]);\n return !!Object.keys(transition).length;\n}\nvar legacyRepeatWarning = false;\n/**\n * Convert Framer Motion's Transition type into Popmotion-compatible options.\n */\nfunction convertTransitionToAnimationOptions(_a) {\n var ease = _a.ease, times = _a.times, yoyo = _a.yoyo, flip = _a.flip, loop = _a.loop, transition = __rest(_a, [\"ease\", \"times\", \"yoyo\", \"flip\", \"loop\"]);\n var options = __assign({}, transition);\n if (times)\n options[\"offset\"] = times;\n /**\n * Convert any existing durations from seconds to milliseconds\n */\n if (transition.duration)\n options[\"duration\"] = secondsToMilliseconds(transition.duration);\n if (transition.repeatDelay)\n options.repeatDelay = secondsToMilliseconds(transition.repeatDelay);\n /**\n * Map easing names to Popmotion's easing functions\n */\n if (ease) {\n options[\"ease\"] = isEasingArray(ease)\n ? ease.map(easingDefinitionToFunction)\n : easingDefinitionToFunction(ease);\n }\n /**\n * Support legacy transition API\n */\n if (transition.type === \"tween\")\n options.type = \"keyframes\";\n /**\n * TODO: These options are officially removed from the API.\n */\n if (yoyo || loop || flip) {\n warning(!legacyRepeatWarning, \"yoyo, loop and flip have been removed from the API. Replace with repeat and repeatType options.\");\n legacyRepeatWarning = true;\n if (yoyo) {\n options.repeatType = \"reverse\";\n }\n else if (loop) {\n options.repeatType = \"loop\";\n }\n else if (flip) {\n options.repeatType = \"mirror\";\n }\n options.repeat = loop || yoyo || flip || transition.repeat;\n }\n /**\n * TODO: Popmotion 9 has the ability to automatically detect whether to use\n * a keyframes or spring animation, but does so by detecting velocity and other spring options.\n * It'd be good to introduce a similar thing here.\n */\n if (transition.type !== \"spring\")\n options.type = \"keyframes\";\n return options;\n}\n/**\n * Get the delay for a value by checking Transition with decreasing specificity.\n */\nfunction getDelayFromTransition(transition, key) {\n var _a, _b;\n var valueTransition = getValueTransition(transition, key) || {};\n return (_b = (_a = valueTransition.delay) !== null && _a !== void 0 ? _a : transition.delay) !== null && _b !== void 0 ? _b : 0;\n}\nfunction hydrateKeyframes(options) {\n if (Array.isArray(options.to) && options.to[0] === null) {\n options.to = __spreadArray([], __read(options.to), false);\n options.to[0] = options.from;\n }\n return options;\n}\nfunction getPopmotionAnimationOptions(transition, options, key) {\n var _a;\n if (Array.isArray(options.to)) {\n (_a = transition.duration) !== null && _a !== void 0 ? _a : (transition.duration = 0.8);\n }\n hydrateKeyframes(options);\n /**\n * Get a default transition if none is determined to be defined.\n */\n if (!isTransitionDefined(transition)) {\n transition = __assign(__assign({}, transition), getDefaultTransition(key, options.to));\n }\n return __assign(__assign({}, options), convertTransitionToAnimationOptions(transition));\n}\n/**\n *\n */\nfunction getAnimation(key, value, target, transition, onComplete) {\n var _a;\n var valueTransition = getValueTransition(transition, key);\n var origin = (_a = valueTransition.from) !== null && _a !== void 0 ? _a : value.get();\n var isTargetAnimatable = isAnimatable(key, target);\n if (origin === \"none\" && isTargetAnimatable && typeof target === \"string\") {\n /**\n * If we're trying to animate from \"none\", try and get an animatable version\n * of the target. This could be improved to work both ways.\n */\n origin = getAnimatableNone(key, target);\n }\n else if (isZero(origin) && typeof target === \"string\") {\n origin = getZeroUnit(target);\n }\n else if (!Array.isArray(target) &&\n isZero(target) &&\n typeof origin === \"string\") {\n target = getZeroUnit(origin);\n }\n var isOriginAnimatable = isAnimatable(key, origin);\n warning(isOriginAnimatable === isTargetAnimatable, \"You are trying to animate \".concat(key, \" from \\\"\").concat(origin, \"\\\" to \\\"\").concat(target, \"\\\". \").concat(origin, \" is not an animatable value - to enable this animation set \").concat(origin, \" to a value animatable to \").concat(target, \" via the `style` property.\"));\n function start() {\n var options = {\n from: origin,\n to: target,\n velocity: value.getVelocity(),\n onComplete: onComplete,\n onUpdate: function (v) { return value.set(v); },\n };\n return valueTransition.type === \"inertia\" ||\n valueTransition.type === \"decay\"\n ? inertia(__assign(__assign({}, options), valueTransition))\n : animate(__assign(__assign({}, getPopmotionAnimationOptions(valueTransition, options, key)), { onUpdate: function (v) {\n var _a;\n options.onUpdate(v);\n (_a = valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, v);\n }, onComplete: function () {\n var _a;\n options.onComplete();\n (_a = valueTransition.onComplete) === null || _a === void 0 ? void 0 : _a.call(valueTransition);\n } }));\n }\n function set() {\n var _a, _b;\n var finalTarget = resolveFinalValueInKeyframes(target);\n value.set(finalTarget);\n onComplete();\n (_a = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onUpdate) === null || _a === void 0 ? void 0 : _a.call(valueTransition, finalTarget);\n (_b = valueTransition === null || valueTransition === void 0 ? void 0 : valueTransition.onComplete) === null || _b === void 0 ? void 0 : _b.call(valueTransition);\n return { stop: function () { } };\n }\n return !isOriginAnimatable ||\n !isTargetAnimatable ||\n valueTransition.type === false\n ? set\n : start;\n}\nfunction isZero(value) {\n return (value === 0 ||\n (typeof value === \"string\" &&\n parseFloat(value) === 0 &&\n value.indexOf(\" \") === -1));\n}\nfunction getZeroUnit(potentialUnitType) {\n return typeof potentialUnitType === \"number\"\n ? 0\n : getAnimatableNone(\"\", potentialUnitType);\n}\nfunction getValueTransition(transition, key) {\n return transition[key] || transition[\"default\"] || transition;\n}\n/**\n * Start animation on a MotionValue. This function is an interface between\n * Framer Motion and Popmotion\n */\nfunction startAnimation(key, value, target, transition) {\n if (transition === void 0) { transition = {}; }\n if (instantAnimationState.current) {\n transition = { type: false };\n }\n return value.start(function (onComplete) {\n var delayTimer;\n var controls;\n var animation = getAnimation(key, value, target, transition, onComplete);\n var delay = getDelayFromTransition(transition, key);\n var start = function () { return (controls = animation()); };\n if (delay) {\n delayTimer = window.setTimeout(start, secondsToMilliseconds(delay));\n }\n else {\n start();\n }\n return function () {\n clearTimeout(delayTimer);\n controls === null || controls === void 0 ? void 0 : controls.stop();\n };\n });\n}\n\nexport { convertTransitionToAnimationOptions, getDelayFromTransition, getPopmotionAnimationOptions, getValueTransition, getZeroUnit, hydrateKeyframes, isTransitionDefined, isZero, startAnimation };\n","import { animate } from './index.mjs';\nimport { velocityPerSecond } from '../utils/velocity-per-second.mjs';\nimport { getFrameData } from 'framesync';\n\nfunction inertia({ from = 0, velocity = 0, min, max, power = 0.8, timeConstant = 750, bounceStiffness = 500, bounceDamping = 10, restDelta = 1, modifyTarget, driver, onUpdate, onComplete, onStop, }) {\n let currentAnimation;\n function isOutOfBounds(v) {\n return (min !== undefined && v < min) || (max !== undefined && v > max);\n }\n function boundaryNearest(v) {\n if (min === undefined)\n return max;\n if (max === undefined)\n return min;\n return Math.abs(min - v) < Math.abs(max - v) ? min : max;\n }\n function startAnimation(options) {\n currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop();\n currentAnimation = animate(Object.assign(Object.assign({}, options), { driver, onUpdate: (v) => {\n var _a;\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(v);\n (_a = options.onUpdate) === null || _a === void 0 ? void 0 : _a.call(options, v);\n }, onComplete,\n onStop }));\n }\n function startSpring(options) {\n startAnimation(Object.assign({ type: \"spring\", stiffness: bounceStiffness, damping: bounceDamping, restDelta }, options));\n }\n if (isOutOfBounds(from)) {\n startSpring({ from, velocity, to: boundaryNearest(from) });\n }\n else {\n let target = power * velocity + from;\n if (typeof modifyTarget !== \"undefined\")\n target = modifyTarget(target);\n const boundary = boundaryNearest(target);\n const heading = boundary === min ? -1 : 1;\n let prev;\n let current;\n const checkBoundary = (v) => {\n prev = current;\n current = v;\n velocity = velocityPerSecond(v - prev, getFrameData().delta);\n if ((heading === 1 && v > boundary) ||\n (heading === -1 && v < boundary)) {\n startSpring({ from: v, to: boundary, velocity });\n }\n };\n startAnimation({\n type: \"decay\",\n from,\n velocity,\n timeConstant,\n power,\n restDelta,\n modifyTarget,\n onUpdate: isOutOfBounds(target) ? checkBoundary : undefined,\n });\n }\n return {\n stop: () => currentAnimation === null || currentAnimation === void 0 ? void 0 : currentAnimation.stop(),\n };\n}\n\nexport { inertia };\n","import { useRef } from 'react';\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-effect.mjs';\n\nfunction useIsMounted() {\n var isMounted = useRef(false);\n useIsomorphicLayoutEffect(function () {\n isMounted.current = true;\n return function () {\n isMounted.current = false;\n };\n }, []);\n return isMounted;\n}\n\nexport { useIsMounted };\n","import { __values } from 'tslib';\nimport * as React from 'react';\nimport { useMemo } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\nvar PresenceChild = function (_a) {\n var children = _a.children, initial = _a.initial, isPresent = _a.isPresent, onExitComplete = _a.onExitComplete, custom = _a.custom, presenceAffectsLayout = _a.presenceAffectsLayout;\n var presenceChildren = useConstant(newChildrenMap);\n var id = useId();\n var context = useMemo(function () { return ({\n id: id,\n initial: initial,\n isPresent: isPresent,\n custom: custom,\n onExitComplete: function (childId) {\n var e_1, _a;\n presenceChildren.set(childId, true);\n try {\n for (var _b = __values(presenceChildren.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var isComplete = _c.value;\n if (!isComplete)\n return; // can stop searching when any is incomplete\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete();\n },\n register: function (childId) {\n presenceChildren.set(childId, false);\n return function () { return presenceChildren.delete(childId); };\n },\n }); }, \n /**\n * If the presence of a child affects the layout of the components around it,\n * we want to make a new context value to ensure they get re-rendered\n * so they can detect that layout change.\n */\n presenceAffectsLayout ? undefined : [isPresent]);\n useMemo(function () {\n presenceChildren.forEach(function (_, key) { return presenceChildren.set(key, false); });\n }, [isPresent]);\n /**\n * If there's no `motion` components to fire exit animations, we want to remove this\n * component immediately.\n */\n React.useEffect(function () {\n !isPresent && !presenceChildren.size && (onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete());\n }, [isPresent]);\n return (React.createElement(PresenceContext.Provider, { value: context }, children));\n};\nfunction newChildrenMap() {\n return new Map();\n}\n\nexport { PresenceChild };\n","import { __read, __spreadArray } from 'tslib';\nimport * as React from 'react';\nimport { useContext, useRef, cloneElement, Children, isValidElement } from 'react';\nimport { env } from '../../utils/process.mjs';\nimport { useForceUpdate } from '../../utils/use-force-update.mjs';\nimport { useIsMounted } from '../../utils/use-is-mounted.mjs';\nimport { PresenceChild } from './PresenceChild.mjs';\nimport { LayoutGroupContext } from '../../context/LayoutGroupContext.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\n\nvar getChildKey = function (child) { return child.key || \"\"; };\nfunction updateChildLookup(children, allChildren) {\n children.forEach(function (child) {\n var key = getChildKey(child);\n allChildren.set(key, child);\n });\n}\nfunction onlyElements(children) {\n var filtered = [];\n // We use forEach here instead of map as map mutates the component key by preprending `.$`\n Children.forEach(children, function (child) {\n if (isValidElement(child))\n filtered.push(child);\n });\n return filtered;\n}\n/**\n * `AnimatePresence` enables the animation of components that have been removed from the tree.\n *\n * When adding/removing more than a single child, every child **must** be given a unique `key` prop.\n *\n * Any `motion` components that have an `exit` property defined will animate out when removed from\n * the tree.\n *\n * ```jsx\n * import { motion, AnimatePresence } from 'framer-motion'\n *\n * export const Items = ({ items }) => (\n * \n * {items.map(item => (\n * \n * ))}\n * \n * )\n * ```\n *\n * You can sequence exit animations throughout a tree using variants.\n *\n * If a child contains multiple `motion` components with `exit` props, it will only unmount the child\n * once all `motion` components have finished animating out. Likewise, any components using\n * `usePresence` all need to call `safeToRemove`.\n *\n * @public\n */\nvar AnimatePresence = function (_a) {\n var children = _a.children, custom = _a.custom, _b = _a.initial, initial = _b === void 0 ? true : _b, onExitComplete = _a.onExitComplete, exitBeforeEnter = _a.exitBeforeEnter, _c = _a.presenceAffectsLayout, presenceAffectsLayout = _c === void 0 ? true : _c;\n // We want to force a re-render once all exiting animations have finished. We\n // either use a local forceRender function, or one from a parent context if it exists.\n var _d = __read(useForceUpdate(), 1), forceRender = _d[0];\n var forceRenderLayoutGroup = useContext(LayoutGroupContext).forceRender;\n if (forceRenderLayoutGroup)\n forceRender = forceRenderLayoutGroup;\n var isMounted = useIsMounted();\n // Filter out any children that aren't ReactElements. We can only track ReactElements with a props.key\n var filteredChildren = onlyElements(children);\n var childrenToRender = filteredChildren;\n var exiting = new Set();\n // Keep a living record of the children we're actually rendering so we\n // can diff to figure out which are entering and exiting\n var presentChildren = useRef(childrenToRender);\n // A lookup table to quickly reference components by key\n var allChildren = useRef(new Map()).current;\n // If this is the initial component render, just deal with logic surrounding whether\n // we play onMount animations or not.\n var isInitialRender = useRef(true);\n useIsomorphicLayoutEffect(function () {\n isInitialRender.current = false;\n updateChildLookup(filteredChildren, allChildren);\n presentChildren.current = childrenToRender;\n });\n useUnmountEffect(function () {\n isInitialRender.current = true;\n allChildren.clear();\n exiting.clear();\n });\n if (isInitialRender.current) {\n return (React.createElement(React.Fragment, null, childrenToRender.map(function (child) { return (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, initial: initial ? undefined : false, presenceAffectsLayout: presenceAffectsLayout }, child)); })));\n }\n // If this is a subsequent render, deal with entering and exiting children\n childrenToRender = __spreadArray([], __read(childrenToRender), false);\n // Diff the keys of the currently-present and target children to update our\n // exiting list.\n var presentKeys = presentChildren.current.map(getChildKey);\n var targetKeys = filteredChildren.map(getChildKey);\n // Diff the present children with our target children and mark those that are exiting\n var numPresent = presentKeys.length;\n for (var i = 0; i < numPresent; i++) {\n var key = presentKeys[i];\n if (targetKeys.indexOf(key) === -1) {\n exiting.add(key);\n }\n }\n // If we currently have exiting children, and we're deferring rendering incoming children\n // until after all current children have exiting, empty the childrenToRender array\n if (exitBeforeEnter && exiting.size) {\n childrenToRender = [];\n }\n // Loop through all currently exiting components and clone them to overwrite `animate`\n // with any `exit` prop they might have defined.\n exiting.forEach(function (key) {\n // If this component is actually entering again, early return\n if (targetKeys.indexOf(key) !== -1)\n return;\n var child = allChildren.get(key);\n if (!child)\n return;\n var insertionIndex = presentKeys.indexOf(key);\n var onExit = function () {\n allChildren.delete(key);\n exiting.delete(key);\n // Remove this child from the present children\n var removeIndex = presentChildren.current.findIndex(function (presentChild) { return presentChild.key === key; });\n presentChildren.current.splice(removeIndex, 1);\n // Defer re-rendering until all exiting children have indeed left\n if (!exiting.size) {\n presentChildren.current = filteredChildren;\n if (isMounted.current === false)\n return;\n forceRender();\n onExitComplete && onExitComplete();\n }\n };\n childrenToRender.splice(insertionIndex, 0, React.createElement(PresenceChild, { key: getChildKey(child), isPresent: false, onExitComplete: onExit, custom: custom, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n // Add `MotionContext` even to children that don't need it to ensure we're rendering\n // the same tree between renders\n childrenToRender = childrenToRender.map(function (child) {\n var key = child.key;\n return exiting.has(key) ? (child) : (React.createElement(PresenceChild, { key: getChildKey(child), isPresent: true, presenceAffectsLayout: presenceAffectsLayout }, child));\n });\n if (env !== \"production\" &&\n exitBeforeEnter &&\n childrenToRender.length > 1) {\n console.warn(\"You're attempting to animate multiple children within AnimatePresence, but its exitBeforeEnter prop is set to true. This will lead to odd visual behaviour.\");\n }\n return (React.createElement(React.Fragment, null, exiting.size\n ? childrenToRender\n : childrenToRender.map(function (child) { return cloneElement(child); })));\n};\n\nexport { AnimatePresence };\n","import { __read } from 'tslib';\nimport sync from 'framesync';\nimport { useState, useCallback } from 'react';\nimport { useIsMounted } from './use-is-mounted.mjs';\n\nfunction useForceUpdate() {\n var isMounted = useIsMounted();\n var _a = __read(useState(0), 2), forcedRenderCount = _a[0], setForcedRenderCount = _a[1];\n var forceRender = useCallback(function () {\n isMounted.current && setForcedRenderCount(forcedRenderCount + 1);\n }, [forcedRenderCount]);\n /**\n * Defer this to the end of the next animation frame in case there are multiple\n * synchronous calls.\n */\n var deferredForceRender = useCallback(function () { return sync.postRender(forceRender); }, [forceRender]);\n return [deferredForceRender, forcedRenderCount];\n}\n\nexport { useForceUpdate };\n","import { useContext, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useId } from '../../utils/use-id.mjs';\n\n/**\n * When a component is the child of `AnimatePresence`, it can use `usePresence`\n * to access information about whether it's still present in the React tree.\n *\n * ```jsx\n * import { usePresence } from \"framer-motion\"\n *\n * export const Component = () => {\n * const [isPresent, safeToRemove] = usePresence()\n *\n * useEffect(() => {\n * !isPresent && setTimeout(safeToRemove, 1000)\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * If `isPresent` is `false`, it means that a component has been removed the tree, but\n * `AnimatePresence` won't really remove it until `safeToRemove` has been called.\n *\n * @public\n */\nfunction usePresence() {\n var context = useContext(PresenceContext);\n if (context === null)\n return [true, null];\n var isPresent = context.isPresent, onExitComplete = context.onExitComplete, register = context.register;\n // It's safe to call the following hooks conditionally (after an early return) because the context will always\n // either be null or non-null for the lifespan of the component.\n // Replace with useId when released in React\n var id = useId();\n useEffect(function () { return register(id); }, []);\n var safeToRemove = function () { return onExitComplete === null || onExitComplete === void 0 ? void 0 : onExitComplete(id); };\n return !isPresent && onExitComplete ? [false, safeToRemove] : [true];\n}\n/**\n * Similar to `usePresence`, except `useIsPresent` simply returns whether or not the component is present.\n * There is no `safeToRemove` function.\n *\n * ```jsx\n * import { useIsPresent } from \"framer-motion\"\n *\n * export const Component = () => {\n * const isPresent = useIsPresent()\n *\n * useEffect(() => {\n * !isPresent && console.log(\"I've been removed!\")\n * }, [isPresent])\n *\n * return
\n * }\n * ```\n *\n * @public\n */\nfunction useIsPresent() {\n return isPresent(useContext(PresenceContext));\n}\nfunction isPresent(context) {\n return context === null ? true : context.isPresent;\n}\n\nexport { isPresent, useIsPresent, usePresence };\n","import { __read, __rest } from 'tslib';\nimport * as React from 'react';\nimport { useState, useRef, useEffect } from 'react';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { loadFeatures } from '../../motion/features/definitions.mjs';\n\n/**\n * Used in conjunction with the `m` component to reduce bundle size.\n *\n * `m` is a version of the `motion` component that only loads functionality\n * critical for the initial render.\n *\n * `LazyMotion` can then be used to either synchronously or asynchronously\n * load animation and gesture support.\n *\n * ```jsx\n * // Synchronous loading\n * import { LazyMotion, m, domAnimations } from \"framer-motion\"\n *\n * function App() {\n * return (\n * \n * \n * \n * )\n * }\n *\n * // Asynchronous loading\n * import { LazyMotion, m } from \"framer-motion\"\n *\n * function App() {\n * return (\n * import('./path/to/domAnimations')}>\n * \n * \n * )\n * }\n * ```\n *\n * @public\n */\nfunction LazyMotion(_a) {\n var children = _a.children, features = _a.features, _b = _a.strict, strict = _b === void 0 ? false : _b;\n var _c = __read(useState(!isLazyBundle(features)), 2), setIsLoaded = _c[1];\n var loadedRenderer = useRef(undefined);\n /**\n * If this is a synchronous load, load features immediately\n */\n if (!isLazyBundle(features)) {\n var renderer = features.renderer, loadedFeatures = __rest(features, [\"renderer\"]);\n loadedRenderer.current = renderer;\n loadFeatures(loadedFeatures);\n }\n useEffect(function () {\n if (isLazyBundle(features)) {\n features().then(function (_a) {\n var renderer = _a.renderer, loadedFeatures = __rest(_a, [\"renderer\"]);\n loadFeatures(loadedFeatures);\n loadedRenderer.current = renderer;\n setIsLoaded(true);\n });\n }\n }, []);\n return (React.createElement(LazyContext.Provider, { value: { renderer: loadedRenderer.current, strict: strict } }, children));\n}\nfunction isLazyBundle(features) {\n return typeof features === \"function\";\n}\n\nexport { LazyMotion };\n","import { createContext } from 'react';\n\nvar LayoutGroupContext = createContext({});\n\nexport { LayoutGroupContext };\n","import { createContext } from 'react';\n\nvar LazyContext = createContext({ strict: false });\n\nexport { LazyContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar MotionConfigContext = createContext({\n transformPagePoint: function (p) { return p; },\n isStatic: false,\n reducedMotion: \"never\",\n});\n\nexport { MotionConfigContext };\n","import { createContext, useContext } from 'react';\n\nvar MotionContext = createContext({});\nfunction useVisualElementContext() {\n return useContext(MotionContext).visualElement;\n}\n\nexport { MotionContext, useVisualElementContext };\n","import { createContext } from 'react';\n\n/**\n * @public\n */\nvar PresenceContext = createContext(null);\n\nexport { PresenceContext };\n","import { createContext } from 'react';\n\n/**\n * Internal, exported only for usage in Framer\n */\nvar SwitchLayoutGroupContext = createContext({});\n\nexport { SwitchLayoutGroupContext };\n","import { isTouchEvent } from '../gestures/utils/event-type.mjs';\n\n/**\n * Filters out events not attached to the primary pointer (currently left mouse button)\n * @param eventHandler\n */\nfunction filterPrimaryPointer(eventHandler) {\n return function (event) {\n var isMouseEvent = event instanceof MouseEvent;\n var isPrimaryPointer = !isMouseEvent ||\n (isMouseEvent && event.button === 0);\n if (isPrimaryPointer) {\n eventHandler(event);\n }\n };\n}\nvar defaultPagePoint = { pageX: 0, pageY: 0 };\nfunction pointFromTouch(e, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n var primaryTouch = e.touches[0] || e.changedTouches[0];\n var point = primaryTouch || defaultPagePoint;\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction pointFromMouse(point, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n x: point[pointType + \"X\"],\n y: point[pointType + \"Y\"],\n };\n}\nfunction extractEventInfo(event, pointType) {\n if (pointType === void 0) { pointType = \"page\"; }\n return {\n point: isTouchEvent(event)\n ? pointFromTouch(event, pointType)\n : pointFromMouse(event, pointType),\n };\n}\nvar wrapHandler = function (handler, shouldFilterPrimaryPointer) {\n if (shouldFilterPrimaryPointer === void 0) { shouldFilterPrimaryPointer = false; }\n var listener = function (event) {\n return handler(event, extractEventInfo(event));\n };\n return shouldFilterPrimaryPointer\n ? filterPrimaryPointer(listener)\n : listener;\n};\n\nexport { extractEventInfo, wrapHandler };\n","import { useEffect } from 'react';\n\nfunction addDomEvent(target, eventName, handler, options) {\n if (options === void 0) { options = { passive: true }; }\n target.addEventListener(eventName, handler, options);\n return function () { return target.removeEventListener(eventName, handler); };\n}\n/**\n * Attaches an event listener directly to the provided DOM element.\n *\n * Bypassing React's event system can be desirable, for instance when attaching non-passive\n * event handlers.\n *\n * ```jsx\n * const ref = useRef(null)\n *\n * useDomEvent(ref, 'wheel', onWheel, { passive: false })\n *\n * return
\n * ```\n *\n * @param ref - React.RefObject that's been provided to the element you want to bind the listener to.\n * @param eventName - Name of the event you want listen for.\n * @param handler - Function to fire when receiving the event.\n * @param options - Options to pass to `Event.addEventListener`.\n *\n * @public\n */\nfunction useDomEvent(ref, eventName, handler, options) {\n useEffect(function () {\n var element = ref.current;\n if (handler && element) {\n return addDomEvent(element, eventName, handler, options);\n }\n }, [ref, eventName, handler, options]);\n}\n\nexport { addDomEvent, useDomEvent };\n","import { addDomEvent, useDomEvent } from './use-dom-event.mjs';\nimport { wrapHandler } from './event-info.mjs';\nimport { supportsPointerEvents, supportsTouchEvents, supportsMouseEvents } from './utils.mjs';\n\nvar mouseEventNames = {\n pointerdown: \"mousedown\",\n pointermove: \"mousemove\",\n pointerup: \"mouseup\",\n pointercancel: \"mousecancel\",\n pointerover: \"mouseover\",\n pointerout: \"mouseout\",\n pointerenter: \"mouseenter\",\n pointerleave: \"mouseleave\",\n};\nvar touchEventNames = {\n pointerdown: \"touchstart\",\n pointermove: \"touchmove\",\n pointerup: \"touchend\",\n pointercancel: \"touchcancel\",\n};\nfunction getPointerEventName(name) {\n if (supportsPointerEvents()) {\n return name;\n }\n else if (supportsTouchEvents()) {\n return touchEventNames[name];\n }\n else if (supportsMouseEvents()) {\n return mouseEventNames[name];\n }\n return name;\n}\nfunction addPointerEvent(target, eventName, handler, options) {\n return addDomEvent(target, getPointerEventName(eventName), wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\nfunction usePointerEvent(ref, eventName, handler, options) {\n return useDomEvent(ref, getPointerEventName(eventName), handler && wrapHandler(handler, eventName === \"pointerdown\"), options);\n}\n\nexport { addPointerEvent, usePointerEvent };\n","import { isBrowser } from '../utils/is-browser.mjs';\n\n// We check for event support via functions in case they've been mocked by a testing suite.\nvar supportsPointerEvents = function () {\n return isBrowser && window.onpointerdown === null;\n};\nvar supportsTouchEvents = function () {\n return isBrowser && window.ontouchstart === null;\n};\nvar supportsMouseEvents = function () {\n return isBrowser && window.onmousedown === null;\n};\n\nexport { supportsMouseEvents, supportsPointerEvents, supportsTouchEvents };\n","function createLock(name) {\n var lock = null;\n return function () {\n var openLock = function () {\n lock = null;\n };\n if (lock === null) {\n lock = name;\n return openLock;\n }\n return false;\n };\n}\nvar globalHorizontalLock = createLock(\"dragHorizontal\");\nvar globalVerticalLock = createLock(\"dragVertical\");\nfunction getGlobalLock(drag) {\n var lock = false;\n if (drag === \"y\") {\n lock = globalVerticalLock();\n }\n else if (drag === \"x\") {\n lock = globalHorizontalLock();\n }\n else {\n var openHorizontal_1 = globalHorizontalLock();\n var openVertical_1 = globalVerticalLock();\n if (openHorizontal_1 && openVertical_1) {\n lock = function () {\n openHorizontal_1();\n openVertical_1();\n };\n }\n else {\n // Release the locks because we don't use them\n if (openHorizontal_1)\n openHorizontal_1();\n if (openVertical_1)\n openVertical_1();\n }\n }\n return lock;\n}\nfunction isDragActive() {\n // Check the gesture lock - if we get it, it means no drag gesture is active\n // and we can safely fire the tap gesture.\n var openGestureLock = getGlobalLock(true);\n if (!openGestureLock)\n return true;\n openGestureLock();\n return false;\n}\n\nexport { createLock, getGlobalLock, isDragActive };\n","function isMouseEvent(event) {\n // PointerEvent inherits from MouseEvent so we can't use a straight instanceof check.\n if (typeof PointerEvent !== \"undefined\" && event instanceof PointerEvent) {\n return !!(event.pointerType === \"mouse\");\n }\n return event instanceof MouseEvent;\n}\nfunction isTouchEvent(event) {\n var hasTouches = !!event.touches;\n return hasTouches;\n}\n\nexport { isMouseEvent, isTouchEvent };\n","import { __read } from 'tslib';\nimport { useEffect, useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { usePresence } from '../../components/AnimatePresence/use-presence.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { createAnimationState } from '../../render/utils/animation-state.mjs';\nimport { AnimationType } from '../../render/utils/types.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar animations = {\n animation: makeRenderlessComponent(function (_a) {\n var visualElement = _a.visualElement, animate = _a.animate;\n /**\n * We dynamically generate the AnimationState manager as it contains a reference\n * to the underlying animation library. We only want to load that if we load this,\n * so people can optionally code split it out using the `m` component.\n */\n visualElement.animationState || (visualElement.animationState = createAnimationState(visualElement));\n /**\n * Subscribe any provided AnimationControls to the component's VisualElement\n */\n if (isAnimationControls(animate)) {\n useEffect(function () { return animate.subscribe(visualElement); }, [animate]);\n }\n }),\n exit: makeRenderlessComponent(function (props) {\n var custom = props.custom, visualElement = props.visualElement;\n var _a = __read(usePresence(), 2), isPresent = _a[0], safeToRemove = _a[1];\n var presenceContext = useContext(PresenceContext);\n useEffect(function () {\n var _a, _b;\n visualElement.isPresent = isPresent;\n var animation = (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Exit, !isPresent, { custom: (_b = presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.custom) !== null && _b !== void 0 ? _b : custom });\n !isPresent && (animation === null || animation === void 0 ? void 0 : animation.then(safeToRemove));\n }, [isPresent]);\n }),\n};\n\nexport { animations };\n","var createDefinition = function (propNames) { return ({\n isEnabled: function (props) { return propNames.some(function (name) { return !!props[name]; }); },\n}); };\nvar featureDefinitions = {\n measureLayout: createDefinition([\"layout\", \"layoutId\", \"drag\"]),\n animation: createDefinition([\n \"animate\",\n \"exit\",\n \"variants\",\n \"whileHover\",\n \"whileTap\",\n \"whileFocus\",\n \"whileDrag\",\n \"whileInView\",\n ]),\n exit: createDefinition([\"exit\"]),\n drag: createDefinition([\"drag\", \"dragControls\"]),\n focus: createDefinition([\"whileFocus\"]),\n hover: createDefinition([\"whileHover\", \"onHoverStart\", \"onHoverEnd\"]),\n tap: createDefinition([\"whileTap\", \"onTap\", \"onTapStart\", \"onTapCancel\"]),\n pan: createDefinition([\n \"onPan\",\n \"onPanStart\",\n \"onPanSessionStart\",\n \"onPanEnd\",\n ]),\n inView: createDefinition([\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n ]),\n};\nfunction loadFeatures(features) {\n for (var key in features) {\n if (features[key] === null)\n continue;\n if (key === \"projectionNodeConstructor\") {\n featureDefinitions.projectionNodeConstructor = features[key];\n }\n else {\n featureDefinitions[key].Component = features[key];\n }\n }\n}\n\nexport { featureDefinitions, loadFeatures };\n","import { isMouseEvent } from './utils/event-type.mjs';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { usePointerEvent } from '../events/use-pointer-event.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\nfunction createHoverEvent(visualElement, isActive, callback) {\n return function (event, info) {\n var _a;\n if (!isMouseEvent(event) || isDragActive())\n return;\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Hover, isActive);\n callback === null || callback === void 0 ? void 0 : callback(event, info);\n };\n}\nfunction useHoverGesture(_a) {\n var onHoverStart = _a.onHoverStart, onHoverEnd = _a.onHoverEnd, whileHover = _a.whileHover, visualElement = _a.visualElement;\n usePointerEvent(visualElement, \"pointerenter\", onHoverStart || whileHover\n ? createHoverEvent(visualElement, true, onHoverStart)\n : undefined, { passive: !onHoverStart });\n usePointerEvent(visualElement, \"pointerleave\", onHoverEnd || whileHover\n ? createHoverEvent(visualElement, false, onHoverEnd)\n : undefined, { passive: !onHoverEnd });\n}\n\nexport { useHoverGesture };\n","/**\n * Recursively traverse up the tree to check whether the provided child node\n * is the parent or a descendant of it.\n *\n * @param parent - Element to find\n * @param child - Element to test against parent\n */\nvar isNodeOrChild = function (parent, child) {\n if (!child) {\n return false;\n }\n else if (parent === child) {\n return true;\n }\n else {\n return isNodeOrChild(parent, child.parentElement);\n }\n};\n\nexport { isNodeOrChild };\n","var warned = new Set();\nfunction warnOnce(condition, message, element) {\n if (condition || warned.has(message))\n return;\n console.warn(message);\n if (element)\n console.warn(element);\n warned.add(message);\n}\n\nexport { warnOnce };\n","import { __rest, __assign } from 'tslib';\n\n/**\n * Map an IntersectionHandler callback to an element. We only ever make one handler for one\n * element, so even though these handlers might all be triggered by different\n * observers, we can keep them in the same map.\n */\nvar observerCallbacks = new WeakMap();\n/**\n * Multiple observers can be created for multiple element/document roots. Each with\n * different settings. So here we store dictionaries of observers to each root,\n * using serialised settings (threshold/margin) as lookup keys.\n */\nvar observers = new WeakMap();\nvar fireObserverCallback = function (entry) {\n var _a;\n (_a = observerCallbacks.get(entry.target)) === null || _a === void 0 ? void 0 : _a(entry);\n};\nvar fireAllObserverCallbacks = function (entries) {\n entries.forEach(fireObserverCallback);\n};\nfunction initIntersectionObserver(_a) {\n var root = _a.root, options = __rest(_a, [\"root\"]);\n var lookupRoot = root || document;\n /**\n * If we don't have an observer lookup map for this root, create one.\n */\n if (!observers.has(lookupRoot)) {\n observers.set(lookupRoot, {});\n }\n var rootObservers = observers.get(lookupRoot);\n var key = JSON.stringify(options);\n /**\n * If we don't have an observer for this combination of root and settings,\n * create one.\n */\n if (!rootObservers[key]) {\n rootObservers[key] = new IntersectionObserver(fireAllObserverCallbacks, __assign({ root: root }, options));\n }\n return rootObservers[key];\n}\nfunction observeIntersection(element, options, callback) {\n var rootInteresectionObserver = initIntersectionObserver(options);\n observerCallbacks.set(element, callback);\n rootInteresectionObserver.observe(element);\n return function () {\n observerCallbacks.delete(element);\n rootInteresectionObserver.unobserve(element);\n };\n}\n\nexport { observeIntersection };\n","import { env } from '../../../utils/process.mjs';\nimport { useRef, useEffect } from 'react';\nimport { AnimationType } from '../../../render/utils/types.mjs';\nimport { warnOnce } from '../../../utils/warn-once.mjs';\nimport { observeIntersection } from './observers.mjs';\n\nfunction useViewport(_a) {\n var visualElement = _a.visualElement, whileInView = _a.whileInView, onViewportEnter = _a.onViewportEnter, onViewportLeave = _a.onViewportLeave, _b = _a.viewport, viewport = _b === void 0 ? {} : _b;\n var state = useRef({\n hasEnteredView: false,\n isInView: false,\n });\n var shouldObserve = Boolean(whileInView || onViewportEnter || onViewportLeave);\n if (viewport.once && state.current.hasEnteredView)\n shouldObserve = false;\n var useObserver = typeof IntersectionObserver === \"undefined\"\n ? useMissingIntersectionObserver\n : useIntersectionObserver;\n useObserver(shouldObserve, state.current, visualElement, viewport);\n}\nvar thresholdNames = {\n some: 0,\n all: 1,\n};\nfunction useIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var root = _a.root, rootMargin = _a.margin, _b = _a.amount, amount = _b === void 0 ? \"some\" : _b, once = _a.once;\n useEffect(function () {\n if (!shouldObserve)\n return;\n var options = {\n root: root === null || root === void 0 ? void 0 : root.current,\n rootMargin: rootMargin,\n threshold: typeof amount === \"number\" ? amount : thresholdNames[amount],\n };\n var intersectionCallback = function (entry) {\n var _a;\n var isIntersecting = entry.isIntersecting;\n /**\n * If there's been no change in the viewport state, early return.\n */\n if (state.isInView === isIntersecting)\n return;\n state.isInView = isIntersecting;\n /**\n * Handle hasEnteredView. If this is only meant to run once, and\n * element isn't visible, early return. Otherwise set hasEnteredView to true.\n */\n if (once && !isIntersecting && state.hasEnteredView) {\n return;\n }\n else if (isIntersecting) {\n state.hasEnteredView = true;\n }\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, isIntersecting);\n /**\n * Use the latest committed props rather than the ones in scope\n * when this observer is created\n */\n var props = visualElement.getProps();\n var callback = isIntersecting\n ? props.onViewportEnter\n : props.onViewportLeave;\n callback === null || callback === void 0 ? void 0 : callback(entry);\n };\n return observeIntersection(visualElement.getInstance(), options, intersectionCallback);\n }, [shouldObserve, root, rootMargin, amount]);\n}\n/**\n * If IntersectionObserver is missing, we activate inView and fire onViewportEnter\n * on mount. This way, the page will be in the state the author expects users\n * to see it in for everyone.\n */\nfunction useMissingIntersectionObserver(shouldObserve, state, visualElement, _a) {\n var _b = _a.fallback, fallback = _b === void 0 ? true : _b;\n useEffect(function () {\n if (!shouldObserve || !fallback)\n return;\n if (env !== \"production\") {\n warnOnce(false, \"IntersectionObserver not available on this device. whileInView animations will trigger on mount.\");\n }\n /**\n * Fire this in an rAF because, at this point, the animation state\n * won't have flushed for the first time and there's certain logic in\n * there that behaves differently on the initial animation.\n *\n * This hook should be quite rarely called so setting this in an rAF\n * is preferred to changing the behaviour of the animation state.\n */\n requestAnimationFrame(function () {\n var _a;\n state.hasEnteredView = true;\n var onViewportEnter = visualElement.getProps().onViewportEnter;\n onViewportEnter === null || onViewportEnter === void 0 ? void 0 : onViewportEnter(null);\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.InView, true);\n });\n }, [shouldObserve]);\n}\n\nexport { useViewport };\n","import { useFocusGesture } from '../../gestures/use-focus-gesture.mjs';\nimport { useHoverGesture } from '../../gestures/use-hover-gesture.mjs';\nimport { useTapGesture } from '../../gestures/use-tap-gesture.mjs';\nimport { useViewport } from './viewport/use-viewport.mjs';\nimport { makeRenderlessComponent } from '../utils/make-renderless-component.mjs';\n\nvar gestureAnimations = {\n inView: makeRenderlessComponent(useViewport),\n tap: makeRenderlessComponent(useTapGesture),\n focus: makeRenderlessComponent(useFocusGesture),\n hover: makeRenderlessComponent(useHoverGesture),\n};\n\nexport { gestureAnimations };\n","import { useRef } from 'react';\nimport { isNodeOrChild } from './utils/is-node-or-child.mjs';\nimport { usePointerEvent, addPointerEvent } from '../events/use-pointer-event.mjs';\nimport { useUnmountEffect } from '../utils/use-unmount-effect.mjs';\nimport { pipe } from 'popmotion';\nimport { AnimationType } from '../render/utils/types.mjs';\nimport { isDragActive } from './drag/utils/lock.mjs';\n\n/**\n * @param handlers -\n * @internal\n */\nfunction useTapGesture(_a) {\n var onTap = _a.onTap, onTapStart = _a.onTapStart, onTapCancel = _a.onTapCancel, whileTap = _a.whileTap, visualElement = _a.visualElement;\n var hasPressListeners = onTap || onTapStart || onTapCancel || whileTap;\n var isPressing = useRef(false);\n var cancelPointerEndListeners = useRef(null);\n /**\n * Only set listener to passive if there are no external listeners.\n */\n var eventOptions = {\n passive: !(onTapStart || onTap || onTapCancel || onPointerDown),\n };\n function removePointerEndListener() {\n var _a;\n (_a = cancelPointerEndListeners.current) === null || _a === void 0 ? void 0 : _a.call(cancelPointerEndListeners);\n cancelPointerEndListeners.current = null;\n }\n function checkPointerEnd() {\n var _a;\n removePointerEndListener();\n isPressing.current = false;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, false);\n return !isDragActive();\n }\n function onPointerUp(event, info) {\n if (!checkPointerEnd())\n return;\n /**\n * We only count this as a tap gesture if the event.target is the same\n * as, or a child of, this component's element\n */\n !isNodeOrChild(visualElement.getInstance(), event.target)\n ? onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info)\n : onTap === null || onTap === void 0 ? void 0 : onTap(event, info);\n }\n function onPointerCancel(event, info) {\n if (!checkPointerEnd())\n return;\n onTapCancel === null || onTapCancel === void 0 ? void 0 : onTapCancel(event, info);\n }\n function onPointerDown(event, info) {\n var _a;\n removePointerEndListener();\n if (isPressing.current)\n return;\n isPressing.current = true;\n cancelPointerEndListeners.current = pipe(addPointerEvent(window, \"pointerup\", onPointerUp, eventOptions), addPointerEvent(window, \"pointercancel\", onPointerCancel, eventOptions));\n /**\n * Ensure we trigger animations before firing event callback\n */\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Tap, true);\n onTapStart === null || onTapStart === void 0 ? void 0 : onTapStart(event, info);\n }\n usePointerEvent(visualElement, \"pointerdown\", hasPressListeners ? onPointerDown : undefined, eventOptions);\n useUnmountEffect(removePointerEndListener);\n}\n\nexport { useTapGesture };\n","import { AnimationType } from '../render/utils/types.mjs';\nimport { useDomEvent } from '../events/use-dom-event.mjs';\n\n/**\n *\n * @param props\n * @param ref\n * @internal\n */\nfunction useFocusGesture(_a) {\n var whileFocus = _a.whileFocus, visualElement = _a.visualElement;\n var onFocus = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, true);\n };\n var onBlur = function () {\n var _a;\n (_a = visualElement.animationState) === null || _a === void 0 ? void 0 : _a.setActive(AnimationType.Focus, false);\n };\n useDomEvent(visualElement, \"focus\", whileFocus ? onFocus : undefined);\n useDomEvent(visualElement, \"blur\", whileFocus ? onBlur : undefined);\n}\n\nexport { useFocusGesture };\n","import { scaleCorrectors } from '../../projection/styles/scale-correction.mjs';\nimport { isTransformProp, isTransformOriginProp } from '../../render/html/utils/transform.mjs';\n\nfunction isForcedMotionValue(key, _a) {\n var layout = _a.layout, layoutId = _a.layoutId;\n return (isTransformProp(key) ||\n isTransformOriginProp(key) ||\n ((layout || layoutId !== undefined) &&\n (!!scaleCorrectors[key] || key === \"opacity\")));\n}\n\nexport { isForcedMotionValue };\n","var makeRenderlessComponent = function (hook) { return function (props) {\n hook(props);\n return null;\n}; };\n\nexport { makeRenderlessComponent };\n","/**\n * Bounding boxes tend to be defined as top, left, right, bottom. For various operations\n * it's easier to consider each axis individually. This function returns a bounding box\n * as a map of single-axis min/max values.\n */\nfunction convertBoundingBoxToBox(_a) {\n var top = _a.top, left = _a.left, right = _a.right, bottom = _a.bottom;\n return {\n x: { min: left, max: right },\n y: { min: top, max: bottom },\n };\n}\nfunction convertBoxToBoundingBox(_a) {\n var x = _a.x, y = _a.y;\n return { top: y.min, right: x.max, bottom: y.max, left: x.min };\n}\n/**\n * Applies a TransformPoint function to a bounding box. TransformPoint is usually a function\n * provided by Framer to allow measured points to be corrected for device scaling. This is used\n * when measuring DOM elements and DOM event points.\n */\nfunction transformBoxPoints(point, transformPoint) {\n if (!transformPoint)\n return point;\n var topLeft = transformPoint({ x: point.left, y: point.top });\n var bottomRight = transformPoint({ x: point.right, y: point.bottom });\n return {\n top: topLeft.y,\n left: topLeft.x,\n bottom: bottomRight.y,\n right: bottomRight.x,\n };\n}\n\nexport { convertBoundingBoxToBox, convertBoxToBoundingBox, transformBoxPoints };\n","import { __read } from 'tslib';\nimport { mix } from 'popmotion';\nimport { hasTransform } from '../utils/has-transform.mjs';\n\n/**\n * Scales a point based on a factor and an originPoint\n */\nfunction scalePoint(point, scale, originPoint) {\n var distanceFromOrigin = point - originPoint;\n var scaled = scale * distanceFromOrigin;\n return originPoint + scaled;\n}\n/**\n * Applies a translate/scale delta to a point\n */\nfunction applyPointDelta(point, translate, scale, originPoint, boxScale) {\n if (boxScale !== undefined) {\n point = scalePoint(point, boxScale, originPoint);\n }\n return scalePoint(point, scale, originPoint) + translate;\n}\n/**\n * Applies a translate/scale delta to an axis\n */\nfunction applyAxisDelta(axis, translate, scale, originPoint, boxScale) {\n if (translate === void 0) { translate = 0; }\n if (scale === void 0) { scale = 1; }\n axis.min = applyPointDelta(axis.min, translate, scale, originPoint, boxScale);\n axis.max = applyPointDelta(axis.max, translate, scale, originPoint, boxScale);\n}\n/**\n * Applies a translate/scale delta to a box\n */\nfunction applyBoxDelta(box, _a) {\n var x = _a.x, y = _a.y;\n applyAxisDelta(box.x, x.translate, x.scale, x.originPoint);\n applyAxisDelta(box.y, y.translate, y.scale, y.originPoint);\n}\n/**\n * Apply a tree of deltas to a box. We do this to calculate the effect of all the transforms\n * in a tree upon our box before then calculating how to project it into our desired viewport-relative box\n *\n * This is the final nested loop within updateLayoutDelta for future refactoring\n */\nfunction applyTreeDeltas(box, treeScale, treePath, isSharedTransition) {\n var _a, _b;\n if (isSharedTransition === void 0) { isSharedTransition = false; }\n var treeLength = treePath.length;\n if (!treeLength)\n return;\n // Reset the treeScale\n treeScale.x = treeScale.y = 1;\n var node;\n var delta;\n for (var i = 0; i < treeLength; i++) {\n node = treePath[i];\n delta = node.projectionDelta;\n if (((_b = (_a = node.instance) === null || _a === void 0 ? void 0 : _a.style) === null || _b === void 0 ? void 0 : _b.display) === \"contents\")\n continue;\n if (isSharedTransition &&\n node.options.layoutScroll &&\n node.scroll &&\n node !== node.root) {\n transformBox(box, { x: -node.scroll.x, y: -node.scroll.y });\n }\n if (delta) {\n // Incoporate each ancestor's scale into a culmulative treeScale for this component\n treeScale.x *= delta.x.scale;\n treeScale.y *= delta.y.scale;\n // Apply each ancestor's calculated delta into this component's recorded layout box\n applyBoxDelta(box, delta);\n }\n if (isSharedTransition && hasTransform(node.latestValues)) {\n transformBox(box, node.latestValues);\n }\n }\n}\nfunction translateAxis(axis, distance) {\n axis.min = axis.min + distance;\n axis.max = axis.max + distance;\n}\n/**\n * Apply a transform to an axis from the latest resolved motion values.\n * This function basically acts as a bridge between a flat motion value map\n * and applyAxisDelta\n */\nfunction transformAxis(axis, transforms, _a) {\n var _b = __read(_a, 3), key = _b[0], scaleKey = _b[1], originKey = _b[2];\n var axisOrigin = transforms[originKey] !== undefined ? transforms[originKey] : 0.5;\n var originPoint = mix(axis.min, axis.max, axisOrigin);\n // Apply the axis delta to the final axis\n applyAxisDelta(axis, transforms[key], transforms[scaleKey], originPoint, transforms.scale);\n}\n/**\n * The names of the motion values we want to apply as translation, scale and origin.\n */\nvar xKeys = [\"x\", \"scaleX\", \"originX\"];\nvar yKeys = [\"y\", \"scaleY\", \"originY\"];\n/**\n * Apply a transform to a box from the latest resolved motion values.\n */\nfunction transformBox(box, transform) {\n transformAxis(box.x, transform, xKeys);\n transformAxis(box.y, transform, yKeys);\n}\n\nexport { applyAxisDelta, applyBoxDelta, applyPointDelta, applyTreeDeltas, scalePoint, transformAxis, transformBox, translateAxis };\n","/**\n * This should only ever be modified on the client otherwise it'll\n * persist through server requests. If we need instanced states we\n * could lazy-init via root.\n */\nvar globalProjectionState = {\n /**\n * Global flag as to whether the tree has animated since the last time\n * we resized the window\n */\n hasAnimatedSinceResize: true,\n /**\n * We set this to true once, on the first update. Any nodes added to the tree beyond that\n * update will be given a `data-projection-id` attribute.\n */\n hasEverUpdated: false,\n};\n\nexport { globalProjectionState };\n","var scaleCorrectors = {};\nfunction addScaleCorrector(correctors) {\n Object.assign(scaleCorrectors, correctors);\n}\n\nexport { addScaleCorrector, scaleCorrectors };\n","function isIdentityScale(scale) {\n return scale === undefined || scale === 1;\n}\nfunction hasScale(_a) {\n var scale = _a.scale, scaleX = _a.scaleX, scaleY = _a.scaleY;\n return (!isIdentityScale(scale) ||\n !isIdentityScale(scaleX) ||\n !isIdentityScale(scaleY));\n}\nfunction hasTransform(values) {\n return (hasScale(values) ||\n hasTranslate(values.x) ||\n hasTranslate(values.y) ||\n values.z ||\n values.rotate ||\n values.rotateX ||\n values.rotateY);\n}\nfunction hasTranslate(value) {\n return value && value !== \"0%\";\n}\n\nexport { hasScale, hasTransform };\n","import { convertBoundingBoxToBox, transformBoxPoints } from '../geometry/conversion.mjs';\nimport { translateAxis } from '../geometry/delta-apply.mjs';\n\nfunction measureViewportBox(instance, transformPoint) {\n return convertBoundingBoxToBox(transformBoxPoints(instance.getBoundingClientRect(), transformPoint));\n}\nfunction measurePageBox(element, rootProjectionNode, transformPagePoint) {\n var viewportBox = measureViewportBox(element, transformPagePoint);\n var scroll = rootProjectionNode.scroll;\n if (scroll) {\n translateAxis(viewportBox.x, scroll.x);\n translateAxis(viewportBox.y, scroll.y);\n }\n return viewportBox;\n}\n\nexport { measurePageBox, measureViewportBox };\n","import { __spreadArray, __read } from 'tslib';\nimport { SubscriptionManager } from '../../utils/subscription-manager.mjs';\n\nvar names = [\n \"LayoutMeasure\",\n \"BeforeLayoutMeasure\",\n \"LayoutUpdate\",\n \"ViewportBoxUpdate\",\n \"Update\",\n \"Render\",\n \"AnimationComplete\",\n \"LayoutAnimationComplete\",\n \"AnimationStart\",\n \"LayoutAnimationStart\",\n \"SetAxisTarget\",\n \"Unmount\",\n];\nfunction createLifecycles() {\n var managers = names.map(function () { return new SubscriptionManager(); });\n var propSubscriptions = {};\n var lifecycles = {\n clearAllListeners: function () { return managers.forEach(function (manager) { return manager.clear(); }); },\n updatePropListeners: function (props) {\n names.forEach(function (name) {\n var _a;\n var on = \"on\" + name;\n var propListener = props[on];\n // Unsubscribe existing subscription\n (_a = propSubscriptions[name]) === null || _a === void 0 ? void 0 : _a.call(propSubscriptions);\n // Add new subscription\n if (propListener) {\n propSubscriptions[name] = lifecycles[on](propListener);\n }\n });\n },\n };\n managers.forEach(function (manager, i) {\n lifecycles[\"on\" + names[i]] = function (handler) { return manager.add(handler); };\n lifecycles[\"notify\" + names[i]] = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return manager.notify.apply(manager, __spreadArray([], __read(args), false));\n };\n });\n return lifecycles;\n}\n\nexport { createLifecycles };\n","import { __assign, __read } from 'tslib';\nimport { number, px } from 'style-value-types';\nimport { isKeyframesTarget } from '../../../animation/utils/is-keyframes-target.mjs';\nimport { invariant } from 'hey-listen';\nimport { transformProps } from '../../html/utils/transform.mjs';\nimport { findDimensionValueType } from '../value-types/dimensions.mjs';\n\nvar positionalKeys = new Set([\n \"width\",\n \"height\",\n \"top\",\n \"left\",\n \"right\",\n \"bottom\",\n \"x\",\n \"y\",\n]);\nvar isPositionalKey = function (key) { return positionalKeys.has(key); };\nvar hasPositionalKey = function (target) {\n return Object.keys(target).some(isPositionalKey);\n};\nvar setAndResetVelocity = function (value, to) {\n // Looks odd but setting it twice doesn't render, it'll just\n // set both prev and current to the latest value\n value.set(to, false);\n value.set(to);\n};\nvar isNumOrPxType = function (v) {\n return v === number || v === px;\n};\nvar BoundingBoxDimension;\n(function (BoundingBoxDimension) {\n BoundingBoxDimension[\"width\"] = \"width\";\n BoundingBoxDimension[\"height\"] = \"height\";\n BoundingBoxDimension[\"left\"] = \"left\";\n BoundingBoxDimension[\"right\"] = \"right\";\n BoundingBoxDimension[\"top\"] = \"top\";\n BoundingBoxDimension[\"bottom\"] = \"bottom\";\n})(BoundingBoxDimension || (BoundingBoxDimension = {}));\nvar getPosFromMatrix = function (matrix, pos) {\n return parseFloat(matrix.split(\", \")[pos]);\n};\nvar getTranslateFromMatrix = function (pos2, pos3) {\n return function (_bbox, _a) {\n var transform = _a.transform;\n if (transform === \"none\" || !transform)\n return 0;\n var matrix3d = transform.match(/^matrix3d\\((.+)\\)$/);\n if (matrix3d) {\n return getPosFromMatrix(matrix3d[1], pos3);\n }\n else {\n var matrix = transform.match(/^matrix\\((.+)\\)$/);\n if (matrix) {\n return getPosFromMatrix(matrix[1], pos2);\n }\n else {\n return 0;\n }\n }\n };\n};\nvar transformKeys = new Set([\"x\", \"y\", \"z\"]);\nvar nonTranslationalTransformKeys = transformProps.filter(function (key) { return !transformKeys.has(key); });\nfunction removeNonTranslationalTransform(visualElement) {\n var removedTransforms = [];\n nonTranslationalTransformKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (value !== undefined) {\n removedTransforms.push([key, value.get()]);\n value.set(key.startsWith(\"scale\") ? 1 : 0);\n }\n });\n // Apply changes to element before measurement\n if (removedTransforms.length)\n visualElement.syncRender();\n return removedTransforms;\n}\nvar positionalValues = {\n // Dimensions\n width: function (_a, _b) {\n var x = _a.x;\n var _c = _b.paddingLeft, paddingLeft = _c === void 0 ? \"0\" : _c, _d = _b.paddingRight, paddingRight = _d === void 0 ? \"0\" : _d;\n return x.max - x.min - parseFloat(paddingLeft) - parseFloat(paddingRight);\n },\n height: function (_a, _b) {\n var y = _a.y;\n var _c = _b.paddingTop, paddingTop = _c === void 0 ? \"0\" : _c, _d = _b.paddingBottom, paddingBottom = _d === void 0 ? \"0\" : _d;\n return y.max - y.min - parseFloat(paddingTop) - parseFloat(paddingBottom);\n },\n top: function (_bbox, _a) {\n var top = _a.top;\n return parseFloat(top);\n },\n left: function (_bbox, _a) {\n var left = _a.left;\n return parseFloat(left);\n },\n bottom: function (_a, _b) {\n var y = _a.y;\n var top = _b.top;\n return parseFloat(top) + (y.max - y.min);\n },\n right: function (_a, _b) {\n var x = _a.x;\n var left = _b.left;\n return parseFloat(left) + (x.max - x.min);\n },\n // Transform\n x: getTranslateFromMatrix(4, 13),\n y: getTranslateFromMatrix(5, 14),\n};\nvar convertChangedValueTypes = function (target, visualElement, changedKeys) {\n var originBbox = visualElement.measureViewportBox();\n var element = visualElement.getInstance();\n var elementComputedStyle = getComputedStyle(element);\n var display = elementComputedStyle.display;\n var origin = {};\n // If the element is currently set to display: \"none\", make it visible before\n // measuring the target bounding box\n if (display === \"none\") {\n visualElement.setStaticValue(\"display\", target.display || \"block\");\n }\n /**\n * Record origins before we render and update styles\n */\n changedKeys.forEach(function (key) {\n origin[key] = positionalValues[key](originBbox, elementComputedStyle);\n });\n // Apply the latest values (as set in checkAndConvertChangedValueTypes)\n visualElement.syncRender();\n var targetBbox = visualElement.measureViewportBox();\n changedKeys.forEach(function (key) {\n // Restore styles to their **calculated computed style**, not their actual\n // originally set style. This allows us to animate between equivalent pixel units.\n var value = visualElement.getValue(key);\n setAndResetVelocity(value, origin[key]);\n target[key] = positionalValues[key](targetBbox, elementComputedStyle);\n });\n return target;\n};\nvar checkAndConvertChangedValueTypes = function (visualElement, target, origin, transitionEnd) {\n if (origin === void 0) { origin = {}; }\n if (transitionEnd === void 0) { transitionEnd = {}; }\n target = __assign({}, target);\n transitionEnd = __assign({}, transitionEnd);\n var targetPositionalKeys = Object.keys(target).filter(isPositionalKey);\n // We want to remove any transform values that could affect the element's bounding box before\n // it's measured. We'll reapply these later.\n var removedTransformValues = [];\n var hasAttemptedToRemoveTransformValues = false;\n var changedValueTypeKeys = [];\n targetPositionalKeys.forEach(function (key) {\n var value = visualElement.getValue(key);\n if (!visualElement.hasValue(key))\n return;\n var from = origin[key];\n var fromType = findDimensionValueType(from);\n var to = target[key];\n var toType;\n // TODO: The current implementation of this basically throws an error\n // if you try and do value conversion via keyframes. There's probably\n // a way of doing this but the performance implications would need greater scrutiny,\n // as it'd be doing multiple resize-remeasure operations.\n if (isKeyframesTarget(to)) {\n var numKeyframes = to.length;\n var fromIndex = to[0] === null ? 1 : 0;\n from = to[fromIndex];\n fromType = findDimensionValueType(from);\n for (var i = fromIndex; i < numKeyframes; i++) {\n if (!toType) {\n toType = findDimensionValueType(to[i]);\n invariant(toType === fromType ||\n (isNumOrPxType(fromType) && isNumOrPxType(toType)), \"Keyframes must be of the same dimension as the current value\");\n }\n else {\n invariant(findDimensionValueType(to[i]) === toType, \"All keyframes must be of the same type\");\n }\n }\n }\n else {\n toType = findDimensionValueType(to);\n }\n if (fromType !== toType) {\n // If they're both just number or px, convert them both to numbers rather than\n // relying on resize/remeasure to convert (which is wasteful in this situation)\n if (isNumOrPxType(fromType) && isNumOrPxType(toType)) {\n var current = value.get();\n if (typeof current === \"string\") {\n value.set(parseFloat(current));\n }\n if (typeof to === \"string\") {\n target[key] = parseFloat(to);\n }\n else if (Array.isArray(to) && toType === px) {\n target[key] = to.map(parseFloat);\n }\n }\n else if ((fromType === null || fromType === void 0 ? void 0 : fromType.transform) &&\n (toType === null || toType === void 0 ? void 0 : toType.transform) &&\n (from === 0 || to === 0)) {\n // If one or the other value is 0, it's safe to coerce it to the\n // type of the other without measurement\n if (from === 0) {\n value.set(toType.transform(from));\n }\n else {\n target[key] = fromType.transform(to);\n }\n }\n else {\n // If we're going to do value conversion via DOM measurements, we first\n // need to remove non-positional transform values that could affect the bbox measurements.\n if (!hasAttemptedToRemoveTransformValues) {\n removedTransformValues =\n removeNonTranslationalTransform(visualElement);\n hasAttemptedToRemoveTransformValues = true;\n }\n changedValueTypeKeys.push(key);\n transitionEnd[key] =\n transitionEnd[key] !== undefined\n ? transitionEnd[key]\n : target[key];\n setAndResetVelocity(value, to);\n }\n }\n });\n if (changedValueTypeKeys.length) {\n var scrollY_1 = changedValueTypeKeys.indexOf(\"height\") >= 0\n ? window.pageYOffset\n : null;\n var convertedTarget = convertChangedValueTypes(target, visualElement, changedValueTypeKeys);\n // If we removed transform values, reapply them before the next render\n if (removedTransformValues.length) {\n removedTransformValues.forEach(function (_a) {\n var _b = __read(_a, 2), key = _b[0], value = _b[1];\n visualElement.getValue(key).set(value);\n });\n }\n // Reapply original values\n visualElement.syncRender();\n // Restore scroll position\n if (scrollY_1 !== null)\n window.scrollTo({ top: scrollY_1 });\n return { target: convertedTarget, transitionEnd: transitionEnd };\n }\n else {\n return { target: target, transitionEnd: transitionEnd };\n }\n};\n/**\n * Convert value types for x/y/width/height/top/left/bottom/right\n *\n * Allows animation between `'auto'` -> `'100%'` or `0` -> `'calc(50% - 10vw)'`\n *\n * @internal\n */\nfunction unitConversion(visualElement, target, origin, transitionEnd) {\n return hasPositionalKey(target)\n ? checkAndConvertChangedValueTypes(visualElement, target, origin, transitionEnd)\n : { target: target, transitionEnd: transitionEnd };\n}\n\nexport { BoundingBoxDimension, positionalValues, unitConversion };\n","import { __assign, __spreadArray, __read } from 'tslib';\nimport sync, { cancelSync } from 'framesync';\nimport { motionValue } from '../value/index.mjs';\nimport { isMotionValue } from '../value/utils/is-motion-value.mjs';\nimport { variantPriorityOrder } from './utils/animation-state.mjs';\nimport { createLifecycles } from './utils/lifecycles.mjs';\nimport { updateMotionValuesFromProps } from './utils/motion-values.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel } from './utils/variants.mjs';\n\nvar visualElement = function (_a) {\n var _b = _a.treeType, treeType = _b === void 0 ? \"\" : _b, build = _a.build, getBaseTarget = _a.getBaseTarget, makeTargetAnimatable = _a.makeTargetAnimatable, measureViewportBox = _a.measureViewportBox, renderInstance = _a.render, readValueFromInstance = _a.readValueFromInstance, removeValueFromRenderState = _a.removeValueFromRenderState, sortNodePosition = _a.sortNodePosition, scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps;\n return function (_a, options) {\n var parent = _a.parent, props = _a.props, presenceId = _a.presenceId, blockInitialAnimation = _a.blockInitialAnimation, visualState = _a.visualState, shouldReduceMotion = _a.shouldReduceMotion;\n if (options === void 0) { options = {}; }\n var isMounted = false;\n var latestValues = visualState.latestValues, renderState = visualState.renderState;\n /**\n * The instance of the render-specific node that will be hydrated by the\n * exposed React ref. So for example, this visual element can host a\n * HTMLElement, plain object, or Three.js object. The functions provided\n * in VisualElementConfig allow us to interface with this instance.\n */\n var instance;\n /**\n * Manages the subscriptions for a visual element's lifecycle, for instance\n * onRender\n */\n var lifecycles = createLifecycles();\n /**\n * A map of all motion values attached to this visual element. Motion\n * values are source of truth for any given animated value. A motion\n * value might be provided externally by the component via props.\n */\n var values = new Map();\n /**\n * A map of every subscription that binds the provided or generated\n * motion values onChange listeners to this visual element.\n */\n var valueSubscriptions = new Map();\n /**\n * A reference to the previously-provided motion values as returned\n * from scrapeMotionValuesFromProps. We use the keys in here to determine\n * if any motion values need to be removed after props are updated.\n */\n var prevMotionValues = {};\n /**\n * When values are removed from all animation props we need to search\n * for a fallback value to animate to. These values are tracked in baseTarget.\n */\n var baseTarget = __assign({}, latestValues);\n // Internal methods ========================\n /**\n * On mount, this will be hydrated with a callback to disconnect\n * this visual element from its parent on unmount.\n */\n var removeFromVariantTree;\n /**\n * Render the element with the latest styles outside of the React\n * render lifecycle\n */\n function render() {\n if (!instance || !isMounted)\n return;\n triggerBuild();\n renderInstance(instance, renderState, props.style, element.projection);\n }\n function triggerBuild() {\n build(element, renderState, latestValues, options, props);\n }\n function update() {\n lifecycles.notifyUpdate(latestValues);\n }\n /**\n *\n */\n function bindToMotionValue(key, value) {\n var removeOnChange = value.onChange(function (latestValue) {\n latestValues[key] = latestValue;\n props.onUpdate && sync.update(update, false, true);\n });\n var removeOnRenderRequest = value.onRenderRequest(element.scheduleRender);\n valueSubscriptions.set(key, function () {\n removeOnChange();\n removeOnRenderRequest();\n });\n }\n /**\n * Any motion values that are provided to the element when created\n * aren't yet bound to the element, as this would technically be impure.\n * However, we iterate through the motion values and set them to the\n * initial values for this component.\n *\n * TODO: This is impure and we should look at changing this to run on mount.\n * Doing so will break some tests but this isn't neccessarily a breaking change,\n * more a reflection of the test.\n */\n var initialMotionValues = scrapeMotionValuesFromProps(props);\n for (var key in initialMotionValues) {\n var value = initialMotionValues[key];\n if (latestValues[key] !== undefined && isMotionValue(value)) {\n value.set(latestValues[key], false);\n }\n }\n /**\n * Determine what role this visual element should take in the variant tree.\n */\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n var element = __assign(__assign({ treeType: treeType, \n /**\n * This is a mirror of the internal instance prop, which keeps\n * VisualElement type-compatible with React's RefObject.\n */\n current: null, \n /**\n * The depth of this visual element within the visual element tree.\n */\n depth: parent ? parent.depth + 1 : 0, parent: parent, children: new Set(), \n /**\n *\n */\n presenceId: presenceId, shouldReduceMotion: shouldReduceMotion, \n /**\n * If this component is part of the variant tree, it should track\n * any children that are also part of the tree. This is essentially\n * a shadow tree to simplify logic around how to stagger over children.\n */\n variantChildren: isVariantNode ? new Set() : undefined, \n /**\n * Whether this instance is visible. This can be changed imperatively\n * by the projection tree, is analogous to CSS's visibility in that\n * hidden elements should take up layout, and needs enacting by the configured\n * render function.\n */\n isVisible: undefined, \n /**\n * Normally, if a component is controlled by a parent's variants, it can\n * rely on that ancestor to trigger animations further down the tree.\n * However, if a component is created after its parent is mounted, the parent\n * won't trigger that mount animation so the child needs to.\n *\n * TODO: This might be better replaced with a method isParentMounted\n */\n manuallyAnimateOnMount: Boolean(parent === null || parent === void 0 ? void 0 : parent.isMounted()), \n /**\n * This can be set by AnimatePresence to force components that mount\n * at the same time as it to mount as if they have initial={false} set.\n */\n blockInitialAnimation: blockInitialAnimation, \n /**\n * Determine whether this component has mounted yet. This is mostly used\n * by variant children to determine whether they need to trigger their\n * own animations on mount.\n */\n isMounted: function () { return Boolean(instance); }, mount: function (newInstance) {\n isMounted = true;\n instance = element.current = newInstance;\n if (element.projection) {\n element.projection.mount(newInstance);\n }\n if (isVariantNode && parent && !isControllingVariants) {\n removeFromVariantTree = parent === null || parent === void 0 ? void 0 : parent.addVariantChild(element);\n }\n values.forEach(function (value, key) { return bindToMotionValue(key, value); });\n parent === null || parent === void 0 ? void 0 : parent.children.add(element);\n element.setProps(props);\n }, \n /**\n *\n */\n unmount: function () {\n var _a;\n (_a = element.projection) === null || _a === void 0 ? void 0 : _a.unmount();\n cancelSync.update(update);\n cancelSync.render(render);\n valueSubscriptions.forEach(function (remove) { return remove(); });\n removeFromVariantTree === null || removeFromVariantTree === void 0 ? void 0 : removeFromVariantTree();\n parent === null || parent === void 0 ? void 0 : parent.children.delete(element);\n lifecycles.clearAllListeners();\n instance = undefined;\n isMounted = false;\n }, \n /**\n * Add a child visual element to our set of children.\n */\n addVariantChild: function (child) {\n var _a;\n var closestVariantNode = element.getClosestVariantNode();\n if (closestVariantNode) {\n (_a = closestVariantNode.variantChildren) === null || _a === void 0 ? void 0 : _a.add(child);\n return function () {\n return closestVariantNode.variantChildren.delete(child);\n };\n }\n }, sortNodePosition: function (other) {\n /**\n * If these nodes aren't even of the same type we can't compare their depth.\n */\n if (!sortNodePosition || treeType !== other.treeType)\n return 0;\n return sortNodePosition(element.getInstance(), other.getInstance());\n }, \n /**\n * Returns the closest variant node in the tree starting from\n * this visual element.\n */\n getClosestVariantNode: function () {\n return isVariantNode ? element : parent === null || parent === void 0 ? void 0 : parent.getClosestVariantNode();\n }, \n /**\n * Expose the latest layoutId prop.\n */\n getLayoutId: function () { return props.layoutId; }, \n /**\n * Returns the current instance.\n */\n getInstance: function () { return instance; }, \n /**\n * Get/set the latest static values.\n */\n getStaticValue: function (key) { return latestValues[key]; }, setStaticValue: function (key, value) { return (latestValues[key] = value); }, \n /**\n * Returns the latest motion value state. Currently only used to take\n * a snapshot of the visual element - perhaps this can return the whole\n * visual state\n */\n getLatestValues: function () { return latestValues; }, \n /**\n * Set the visiblity of the visual element. If it's changed, schedule\n * a render to reflect these changes.\n */\n setVisibility: function (visibility) {\n if (element.isVisible === visibility)\n return;\n element.isVisible = visibility;\n element.scheduleRender();\n }, \n /**\n * Make a target animatable by Popmotion. For instance, if we're\n * trying to animate width from 100px to 100vw we need to measure 100vw\n * in pixels to determine what we really need to animate to. This is also\n * pluggable to support Framer's custom value types like Color,\n * and CSS variables.\n */\n makeTargetAnimatable: function (target, canMutate) {\n if (canMutate === void 0) { canMutate = true; }\n return makeTargetAnimatable(element, target, props, canMutate);\n }, \n /**\n * Measure the current viewport box with or without transforms.\n * Only measures axis-aligned boxes, rotate and skew must be manually\n * removed with a re-render to work.\n */\n measureViewportBox: function () {\n return measureViewportBox(instance, props);\n }, \n // Motion values ========================\n /**\n * Add a motion value and bind it to this visual element.\n */\n addValue: function (key, value) {\n // Remove existing value if it exists\n if (element.hasValue(key))\n element.removeValue(key);\n values.set(key, value);\n latestValues[key] = value.get();\n bindToMotionValue(key, value);\n }, \n /**\n * Remove a motion value and unbind any active subscriptions.\n */\n removeValue: function (key) {\n var _a;\n values.delete(key);\n (_a = valueSubscriptions.get(key)) === null || _a === void 0 ? void 0 : _a();\n valueSubscriptions.delete(key);\n delete latestValues[key];\n removeValueFromRenderState(key, renderState);\n }, \n /**\n * Check whether we have a motion value for this key\n */\n hasValue: function (key) { return values.has(key); }, \n /**\n * Get a motion value for this key. If called with a default\n * value, we'll create one if none exists.\n */\n getValue: function (key, defaultValue) {\n var value = values.get(key);\n if (value === undefined && defaultValue !== undefined) {\n value = motionValue(defaultValue);\n element.addValue(key, value);\n }\n return value;\n }, \n /**\n * Iterate over our motion values.\n */\n forEachValue: function (callback) { return values.forEach(callback); }, \n /**\n * If we're trying to animate to a previously unencountered value,\n * we need to check for it in our state and as a last resort read it\n * directly from the instance (which might have performance implications).\n */\n readValue: function (key) {\n var _a;\n return (_a = latestValues[key]) !== null && _a !== void 0 ? _a : readValueFromInstance(instance, key, options);\n }, \n /**\n * Set the base target to later animate back to. This is currently\n * only hydrated on creation and when we first read a value.\n */\n setBaseTarget: function (key, value) {\n baseTarget[key] = value;\n }, \n /**\n * Find the base target for a value thats been removed from all animation\n * props.\n */\n getBaseTarget: function (key) {\n if (getBaseTarget) {\n var target = getBaseTarget(props, key);\n if (target !== undefined && !isMotionValue(target))\n return target;\n }\n return baseTarget[key];\n } }, lifecycles), { \n /**\n * Build the renderer state based on the latest visual state.\n */\n build: function () {\n triggerBuild();\n return renderState;\n }, \n /**\n * Schedule a render on the next animation frame.\n */\n scheduleRender: function () {\n sync.render(render, false, true);\n }, \n /**\n * Synchronously fire render. It's prefered that we batch renders but\n * in many circumstances, like layout measurement, we need to run this\n * synchronously. However in those instances other measures should be taken\n * to batch reads/writes.\n */\n syncRender: render, \n /**\n * Update the provided props. Ensure any newly-added motion values are\n * added to our map, old ones removed, and listeners updated.\n */\n setProps: function (newProps) {\n if (newProps.transformTemplate || props.transformTemplate) {\n element.scheduleRender();\n }\n props = newProps;\n lifecycles.updatePropListeners(newProps);\n prevMotionValues = updateMotionValuesFromProps(element, scrapeMotionValuesFromProps(props), prevMotionValues);\n }, getProps: function () { return props; }, \n // Variants ==============================\n /**\n * Returns the variant definition with a given name.\n */\n getVariant: function (name) { var _a; return (_a = props.variants) === null || _a === void 0 ? void 0 : _a[name]; }, \n /**\n * Returns the defined default transition on this component.\n */\n getDefaultTransition: function () { return props.transition; }, getTransformPagePoint: function () {\n return props.transformPagePoint;\n }, \n /**\n * Used by child variant nodes to get the closest ancestor variant props.\n */\n getVariantContext: function (startAtParent) {\n if (startAtParent === void 0) { startAtParent = false; }\n if (startAtParent)\n return parent === null || parent === void 0 ? void 0 : parent.getVariantContext();\n if (!isControllingVariants) {\n var context_1 = (parent === null || parent === void 0 ? void 0 : parent.getVariantContext()) || {};\n if (props.initial !== undefined) {\n context_1.initial = props.initial;\n }\n return context_1;\n }\n var context = {};\n for (var i = 0; i < numVariantProps; i++) {\n var name_1 = variantProps[i];\n var prop = props[name_1];\n if (isVariantLabel(prop) || prop === false) {\n context[name_1] = prop;\n }\n }\n return context;\n } });\n return element;\n };\n};\nvar variantProps = __spreadArray([\"initial\"], __read(variantPriorityOrder), false);\nvar numVariantProps = variantProps.length;\n\nexport { visualElement };\n","import { warnOnce } from '../../utils/warn-once.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\n\nfunction updateMotionValuesFromProps(element, next, prev) {\n var _a;\n for (var key in next) {\n var nextValue = next[key];\n var prevValue = prev[key];\n if (isMotionValue(nextValue)) {\n /**\n * If this is a motion value found in props or style, we want to add it\n * to our visual element's motion value map.\n */\n element.addValue(key, nextValue);\n /**\n * Check the version of the incoming motion value with this version\n * and warn against mismatches.\n */\n if (process.env.NODE_ENV === \"development\") {\n warnOnce(nextValue.version === \"6.5.1\", \"Attempting to mix Framer Motion versions \".concat(nextValue.version, \" with 6.5.1 may not work as expected.\"));\n }\n }\n else if (isMotionValue(prevValue)) {\n /**\n * If we're swapping to a new motion value, create a new motion value\n * from that\n */\n element.addValue(key, motionValue(nextValue));\n }\n else if (prevValue !== nextValue) {\n /**\n * If this is a flat value that has changed, update the motion value\n * or create one if it doesn't exist. We only want to do this if we're\n * not handling the value with our animation state.\n */\n if (element.hasValue(key)) {\n var existingValue = element.getValue(key);\n // TODO: Only update values that aren't being animated or even looked at\n !existingValue.hasAnimated && existingValue.set(nextValue);\n }\n else {\n element.addValue(key, motionValue((_a = element.getStaticValue(key)) !== null && _a !== void 0 ? _a : nextValue));\n }\n }\n }\n // Handle removed values\n for (var key in prev) {\n if (next[key] === undefined)\n element.removeValue(key);\n }\n return next;\n}\n\nexport { updateMotionValuesFromProps };\n","import { resolveCSSVariables } from './css-variables-conversion.mjs';\nimport { unitConversion } from './unit-conversion.mjs';\n\n/**\n * Parse a DOM variant to make it animatable. This involves resolving CSS variables\n * and ensuring animations like \"20%\" => \"calc(50vw)\" are performed in pixels.\n */\nvar parseDomVariant = function (visualElement, target, origin, transitionEnd) {\n var resolved = resolveCSSVariables(visualElement, target, transitionEnd);\n target = resolved.target;\n transitionEnd = resolved.transitionEnd;\n return unitConversion(visualElement, target, origin, transitionEnd);\n};\n\nexport { parseDomVariant };\n","import { __rest, __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { getOrigin, checkTargetForNewValues } from '../utils/setters.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { isCSSVariable } from '../dom/utils/is-css-variable.mjs';\nimport { parseDomVariant } from '../dom/utils/parse-dom-variant.mjs';\nimport { isTransformProp } from './utils/transform.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { renderHTML } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\nimport { measureViewportBox } from '../../projection/utils/measure.mjs';\n\nfunction getComputedStyle(element) {\n return window.getComputedStyle(element);\n}\nvar htmlConfig = {\n treeType: \"dom\",\n readValueFromInstance: function (domElement, key) {\n if (isTransformProp(key)) {\n var defaultType = getDefaultValueType(key);\n return defaultType ? defaultType.default || 0 : 0;\n }\n else {\n var computedStyle = getComputedStyle(domElement);\n return ((isCSSVariable(key)\n ? computedStyle.getPropertyValue(key)\n : computedStyle[key]) || 0);\n }\n },\n sortNodePosition: function (a, b) {\n /**\n * compareDocumentPosition returns a bitmask, by using the bitwise &\n * we're returning true if 2 in that bitmask is set to true. 2 is set\n * to true if b preceeds a.\n */\n return a.compareDocumentPosition(b) & 2 ? 1 : -1;\n },\n getBaseTarget: function (props, key) {\n var _a;\n return (_a = props.style) === null || _a === void 0 ? void 0 : _a[key];\n },\n measureViewportBox: function (element, _a) {\n var transformPagePoint = _a.transformPagePoint;\n return measureViewportBox(element, transformPagePoint);\n },\n /**\n * Reset the transform on the current Element. This is called as part\n * of a batched process across the entire layout tree. To remove this write\n * cycle it'd be interesting to see if it's possible to \"undo\" all the current\n * layout transforms up the tree in the same way this.getBoundingBoxWithoutTransforms\n * works\n */\n resetTransform: function (element, domElement, props) {\n var transformTemplate = props.transformTemplate;\n domElement.style.transform = transformTemplate\n ? transformTemplate({}, \"\")\n : \"none\";\n // Ensure that whatever happens next, we restore our transform on the next frame\n element.scheduleRender();\n },\n restoreTransform: function (instance, mutableState) {\n instance.style.transform = mutableState.style.transform;\n },\n removeValueFromRenderState: function (key, _a) {\n var vars = _a.vars, style = _a.style;\n delete vars[key];\n delete style[key];\n },\n /**\n * Ensure that HTML and Framer-specific value types like `px`->`%` and `Color`\n * can be animated by Motion.\n */\n makeTargetAnimatable: function (element, _a, _b, isMounted) {\n var transformValues = _b.transformValues;\n if (isMounted === void 0) { isMounted = true; }\n var transition = _a.transition, transitionEnd = _a.transitionEnd, target = __rest(_a, [\"transition\", \"transitionEnd\"]);\n var origin = getOrigin(target, transition || {}, element);\n /**\n * If Framer has provided a function to convert `Color` etc value types, convert them\n */\n if (transformValues) {\n if (transitionEnd)\n transitionEnd = transformValues(transitionEnd);\n if (target)\n target = transformValues(target);\n if (origin)\n origin = transformValues(origin);\n }\n if (isMounted) {\n checkTargetForNewValues(element, target, origin);\n var parsed = parseDomVariant(element, target, origin, transitionEnd);\n transitionEnd = parsed.transitionEnd;\n target = parsed.target;\n }\n return __assign({ transition: transition, transitionEnd: transitionEnd }, target);\n },\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n build: function (element, renderState, latestValues, options, props) {\n if (element.isVisible !== undefined) {\n renderState.style.visibility = element.isVisible\n ? \"visible\"\n : \"hidden\";\n }\n buildHTMLStyles(renderState, latestValues, options, props.transformTemplate);\n },\n render: renderHTML,\n};\nvar htmlVisualElement = visualElement(htmlConfig);\n\nexport { getComputedStyle, htmlConfig, htmlVisualElement };\n","import { __assign } from 'tslib';\nimport { visualElement } from '../index.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { htmlConfig } from '../html/visual-element.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { camelToDash } from '../dom/utils/camel-to-dash.mjs';\nimport { camelCaseAttributes } from './utils/camel-case-attrs.mjs';\nimport { isTransformProp } from '../html/utils/transform.mjs';\nimport { renderSVG } from './utils/render.mjs';\nimport { getDefaultValueType } from '../dom/value-types/defaults.mjs';\n\nvar svgVisualElement = visualElement(__assign(__assign({}, htmlConfig), { getBaseTarget: function (props, key) {\n return props[key];\n }, readValueFromInstance: function (domElement, key) {\n var _a;\n if (isTransformProp(key)) {\n return ((_a = getDefaultValueType(key)) === null || _a === void 0 ? void 0 : _a.default) || 0;\n }\n key = !camelCaseAttributes.has(key) ? camelToDash(key) : key;\n return domElement.getAttribute(key);\n }, scrapeMotionValuesFromProps: scrapeMotionValuesFromProps, build: function (_element, renderState, latestValues, options, props) {\n buildSVGAttrs(renderState, latestValues, options, props.transformTemplate);\n }, render: renderSVG }));\n\nexport { svgVisualElement };\n","import { htmlVisualElement } from '../html/visual-element.mjs';\nimport { svgVisualElement } from '../svg/visual-element.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\n\nvar createDomVisualElement = function (Component, options) {\n return isSVGComponent(Component)\n ? svgVisualElement(options, { enableHardwareAcceleration: false })\n : htmlVisualElement(options, { enableHardwareAcceleration: true });\n};\n\nexport { createDomVisualElement };\n","import { __assign } from 'tslib';\nimport { animations } from '../../motion/features/animations.mjs';\nimport { gestureAnimations } from '../../motion/features/gestures.mjs';\nimport { createDomVisualElement } from './create-visual-element.mjs';\n\n/**\n * @public\n */\nvar domAnimation = __assign(__assign({ renderer: createDomVisualElement }, animations), gestureAnimations);\n\nexport { domAnimation };\n","import { createMotionProxy } from './motion-proxy.mjs';\nimport { createDomMotionConfig } from './utils/create-config.mjs';\n\n/**\n * @public\n */\nvar m = createMotionProxy(createDomMotionConfig);\n\nexport { m };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { useContext } from 'react';\nimport { env } from '../../utils/process.mjs';\nimport { featureDefinitions } from './definitions.mjs';\nimport { invariant } from 'hey-listen';\nimport { LazyContext } from '../../context/LazyContext.mjs';\n\nvar featureNames = Object.keys(featureDefinitions);\nvar numFeatures = featureNames.length;\n/**\n * Load features via renderless components based on the provided MotionProps.\n */\nfunction useFeatures(props, visualElement, preloadedFeatures) {\n var features = [];\n var lazyContext = useContext(LazyContext);\n if (!visualElement)\n return null;\n /**\n * If we're in development mode, check to make sure we're not rendering a motion component\n * as a child of LazyMotion, as this will break the file-size benefits of using it.\n */\n if (env !== \"production\" && preloadedFeatures && lazyContext.strict) {\n invariant(false, \"You have rendered a `motion` component within a `LazyMotion` component. This will break tree shaking. Import and render a `m` component instead.\");\n }\n for (var i = 0; i < numFeatures; i++) {\n var name_1 = featureNames[i];\n var _a = featureDefinitions[name_1], isEnabled = _a.isEnabled, Component = _a.Component;\n /**\n * It might be possible in the future to use this moment to\n * dynamically request functionality. In initial tests this\n * was producing a lot of duplication amongst bundles.\n */\n if (isEnabled(props) && Component) {\n features.push(React.createElement(Component, __assign({ key: name_1 }, props, { visualElement: visualElement })));\n }\n }\n return features;\n}\n\nexport { useFeatures };\n","import { __read } from 'tslib';\nimport { useState, useContext } from 'react';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { isBrowser } from './is-browser.mjs';\n\n// Does this device prefer reduced motion? Returns `null` server-side.\nvar prefersReducedMotion = { current: null };\nvar hasDetected = false;\nfunction initPrefersReducedMotion() {\n hasDetected = true;\n if (!isBrowser)\n return;\n if (window.matchMedia) {\n var motionMediaQuery_1 = window.matchMedia(\"(prefers-reduced-motion)\");\n var setReducedMotionPreferences = function () {\n return (prefersReducedMotion.current = motionMediaQuery_1.matches);\n };\n motionMediaQuery_1.addListener(setReducedMotionPreferences);\n setReducedMotionPreferences();\n }\n else {\n prefersReducedMotion.current = false;\n }\n}\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * \n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasDetected && initPrefersReducedMotion();\n var _a = __read(useState(prefersReducedMotion.current), 1), shouldReduceMotion = _a[0];\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\nfunction useReducedMotionConfig() {\n var reducedMotionPreference = useReducedMotion();\n var reducedMotion = useContext(MotionConfigContext).reducedMotion;\n if (reducedMotion === \"never\") {\n return false;\n }\n else if (reducedMotion === \"always\") {\n return true;\n }\n else {\n return reducedMotionPreference;\n }\n}\n\nexport { useReducedMotion, useReducedMotionConfig };\n","import { useContext, useRef, useEffect } from 'react';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { useVisualElementContext } from '../../context/MotionContext/index.mjs';\nimport { useIsomorphicLayoutEffect } from '../../utils/use-isomorphic-effect.mjs';\nimport { LazyContext } from '../../context/LazyContext.mjs';\nimport { useReducedMotionConfig } from '../../utils/use-reduced-motion.mjs';\n\nfunction useVisualElement(Component, visualState, props, createVisualElement) {\n var lazyContext = useContext(LazyContext);\n var parent = useVisualElementContext();\n var presenceContext = useContext(PresenceContext);\n var shouldReduceMotion = useReducedMotionConfig();\n var visualElementRef = useRef(undefined);\n /**\n * If we haven't preloaded a renderer, check to see if we have one lazy-loaded\n */\n if (!createVisualElement)\n createVisualElement = lazyContext.renderer;\n if (!visualElementRef.current && createVisualElement) {\n visualElementRef.current = createVisualElement(Component, {\n visualState: visualState,\n parent: parent,\n props: props,\n presenceId: presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.id,\n blockInitialAnimation: (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false,\n shouldReduceMotion: shouldReduceMotion,\n });\n }\n var visualElement = visualElementRef.current;\n useIsomorphicLayoutEffect(function () {\n visualElement === null || visualElement === void 0 ? void 0 : visualElement.syncRender();\n });\n useEffect(function () {\n var _a;\n (_a = visualElement === null || visualElement === void 0 ? void 0 : visualElement.animationState) === null || _a === void 0 ? void 0 : _a.animateChanges();\n });\n useIsomorphicLayoutEffect(function () { return function () { return visualElement === null || visualElement === void 0 ? void 0 : visualElement.notifyUnmount(); }; }, []);\n return visualElement;\n}\n\nexport { useVisualElement };\n","import { useMemo, useContext } from 'react';\nimport { MotionContext } from './index.mjs';\nimport { getCurrentTreeVariants } from './utils.mjs';\n\nfunction useCreateMotionContext(props) {\n var _a = getCurrentTreeVariants(props, useContext(MotionContext)), initial = _a.initial, animate = _a.animate;\n return useMemo(function () { return ({ initial: initial, animate: animate }); }, [variantLabelsAsDependency(initial), variantLabelsAsDependency(animate)]);\n}\nfunction variantLabelsAsDependency(prop) {\n return Array.isArray(prop) ? prop.join(\" \") : prop;\n}\n\nexport { useCreateMotionContext };\n","import { checkIfControllingVariants, isVariantLabel } from '../../render/utils/variants.mjs';\n\nfunction getCurrentTreeVariants(props, context) {\n if (checkIfControllingVariants(props)) {\n var initial = props.initial, animate = props.animate;\n return {\n initial: initial === false || isVariantLabel(initial)\n ? initial\n : undefined,\n animate: isVariantLabel(animate) ? animate : undefined,\n };\n }\n return props.inherit !== false ? context : {};\n}\n\nexport { getCurrentTreeVariants };\n","import { useConstant } from '../../utils/use-constant.mjs';\nimport { globalProjectionState } from './state.mjs';\n\nvar id = 1;\nfunction useProjectionId() {\n return useConstant(function () {\n if (globalProjectionState.hasEverUpdated) {\n return id++;\n }\n });\n}\n\nexport { useProjectionId };\n","import { __extends } from 'tslib';\nimport React__default from 'react';\n\nvar VisualElementHandler = /** @class */ (function (_super) {\n __extends(VisualElementHandler, _super);\n function VisualElementHandler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * Update visual element props as soon as we know this update is going to be commited.\n */\n VisualElementHandler.prototype.getSnapshotBeforeUpdate = function () {\n this.updateProps();\n return null;\n };\n VisualElementHandler.prototype.componentDidUpdate = function () { };\n VisualElementHandler.prototype.updateProps = function () {\n var _a = this.props, visualElement = _a.visualElement, props = _a.props;\n if (visualElement)\n visualElement.setProps(props);\n };\n VisualElementHandler.prototype.render = function () {\n return this.props.children;\n };\n return VisualElementHandler;\n}(React__default.Component));\n\nexport { VisualElementHandler };\n","import { __assign } from 'tslib';\nimport * as React from 'react';\nimport { forwardRef, useContext } from 'react';\nimport { useFeatures } from './features/use-features.mjs';\nimport { MotionConfigContext } from '../context/MotionConfigContext.mjs';\nimport { MotionContext } from '../context/MotionContext/index.mjs';\nimport { useVisualElement } from './utils/use-visual-element.mjs';\nimport { useMotionRef } from './utils/use-motion-ref.mjs';\nimport { useCreateMotionContext } from '../context/MotionContext/create.mjs';\nimport { loadFeatures, featureDefinitions } from './features/definitions.mjs';\nimport { isBrowser } from '../utils/is-browser.mjs';\nimport { useProjectionId } from '../projection/node/id.mjs';\nimport { LayoutGroupContext } from '../context/LayoutGroupContext.mjs';\nimport { useProjection } from './features/use-projection.mjs';\nimport { VisualElementHandler } from './utils/VisualElementHandler.mjs';\n\n/**\n * Create a `motion` component.\n *\n * This function accepts a Component argument, which can be either a string (ie \"div\"\n * for `motion.div`), or an actual React component.\n *\n * Alongside this is a config option which provides a way of rendering the provided\n * component \"offline\", or outside the React render cycle.\n */\nfunction createMotionComponent(_a) {\n var preloadedFeatures = _a.preloadedFeatures, createVisualElement = _a.createVisualElement, projectionNodeConstructor = _a.projectionNodeConstructor, useRender = _a.useRender, useVisualState = _a.useVisualState, Component = _a.Component;\n preloadedFeatures && loadFeatures(preloadedFeatures);\n function MotionComponent(props, externalRef) {\n var layoutId = useLayoutId(props);\n props = __assign(__assign({}, props), { layoutId: layoutId });\n /**\n * If we're rendering in a static environment, we only visually update the component\n * as a result of a React-rerender rather than interactions or animations. This\n * means we don't need to load additional memory structures like VisualElement,\n * or any gesture/animation features.\n */\n var config = useContext(MotionConfigContext);\n var features = null;\n var context = useCreateMotionContext(props);\n /**\n * Create a unique projection ID for this component. If a new component is added\n * during a layout animation we'll use this to query the DOM and hydrate its ref early, allowing\n * us to measure it as soon as any layout effect flushes pending layout animations.\n *\n * Performance note: It'd be better not to have to search the DOM for these elements.\n * For newly-entering components it could be enough to only correct treeScale, in which\n * case we could mount in a scale-correction mode. This wouldn't be enough for\n * shared element transitions however. Perhaps for those we could revert to a root node\n * that gets forceRendered and layout animations are triggered on its layout effect.\n */\n var projectionId = config.isStatic ? undefined : useProjectionId();\n /**\n *\n */\n var visualState = useVisualState(props, config.isStatic);\n if (!config.isStatic && isBrowser) {\n /**\n * Create a VisualElement for this component. A VisualElement provides a common\n * interface to renderer-specific APIs (ie DOM/Three.js etc) as well as\n * providing a way of rendering to these APIs outside of the React render loop\n * for more performant animations and interactions\n */\n context.visualElement = useVisualElement(Component, visualState, __assign(__assign({}, config), props), createVisualElement);\n useProjection(projectionId, props, context.visualElement, projectionNodeConstructor ||\n featureDefinitions.projectionNodeConstructor);\n /**\n * Load Motion gesture and animation features. These are rendered as renderless\n * components so each feature can optionally make use of React lifecycle methods.\n */\n features = useFeatures(props, context.visualElement, preloadedFeatures);\n }\n /**\n * The mount order and hierarchy is specific to ensure our element ref\n * is hydrated by the time features fire their effects.\n */\n return (React.createElement(VisualElementHandler, { visualElement: context.visualElement, props: __assign(__assign({}, config), props) },\n features,\n React.createElement(MotionContext.Provider, { value: context }, useRender(Component, props, projectionId, useMotionRef(visualState, context.visualElement, externalRef), visualState, config.isStatic, context.visualElement))));\n }\n return forwardRef(MotionComponent);\n}\nfunction useLayoutId(_a) {\n var _b;\n var layoutId = _a.layoutId;\n var layoutGroupId = (_b = useContext(LayoutGroupContext)) === null || _b === void 0 ? void 0 : _b.id;\n return layoutGroupId && layoutId !== undefined\n ? layoutGroupId + \"-\" + layoutId\n : layoutId;\n}\n\nexport { createMotionComponent };\n","import { isRefObject } from '../../utils/is-ref-object.mjs';\nimport { useContext } from 'react';\nimport { SwitchLayoutGroupContext } from '../../context/SwitchLayoutGroupContext.mjs';\n\nfunction useProjection(projectionId, _a, visualElement, ProjectionNodeConstructor) {\n var _b;\n var layoutId = _a.layoutId, layout = _a.layout, drag = _a.drag, dragConstraints = _a.dragConstraints, layoutScroll = _a.layoutScroll;\n var initialPromotionConfig = useContext(SwitchLayoutGroupContext);\n if (!ProjectionNodeConstructor ||\n !visualElement ||\n (visualElement === null || visualElement === void 0 ? void 0 : visualElement.projection)) {\n return;\n }\n visualElement.projection = new ProjectionNodeConstructor(projectionId, visualElement.getLatestValues(), (_b = visualElement.parent) === null || _b === void 0 ? void 0 : _b.projection);\n visualElement.projection.setOptions({\n layoutId: layoutId,\n layout: layout,\n alwaysMeasureLayout: Boolean(drag) || (dragConstraints && isRefObject(dragConstraints)),\n visualElement: visualElement,\n scheduleRender: function () { return visualElement.scheduleRender(); },\n /**\n * TODO: Update options in an effect. This could be tricky as it'll be too late\n * to update by the time layout animations run.\n * We also need to fix this safeToRemove by linking it up to the one returned by usePresence,\n * ensuring it gets called if there's no potential layout animations.\n *\n */\n animationType: typeof layout === \"string\" ? layout : \"both\",\n initialPromotionConfig: initialPromotionConfig,\n layoutScroll: layoutScroll,\n });\n}\n\nexport { useProjection };\n","import { useCallback } from 'react';\nimport { isRefObject } from '../../utils/is-ref-object.mjs';\n\n/**\n * Creates a ref function that, when called, hydrates the provided\n * external ref and VisualElement.\n */\nfunction useMotionRef(visualState, visualElement, externalRef) {\n return useCallback(function (instance) {\n var _a;\n instance && ((_a = visualState.mount) === null || _a === void 0 ? void 0 : _a.call(visualState, instance));\n if (visualElement) {\n instance\n ? visualElement.mount(instance)\n : visualElement.unmount();\n }\n if (externalRef) {\n if (typeof externalRef === \"function\") {\n externalRef(instance);\n }\n else if (isRefObject(externalRef)) {\n externalRef.current = instance;\n }\n }\n }, \n /**\n * Only pass a new ref callback to React if we've received a visual element\n * factory. Otherwise we'll be mounting/remounting every time externalRef\n * or other dependencies change.\n */\n [visualElement]);\n}\n\nexport { useMotionRef };\n","import { createMotionComponent } from '../../motion/index.mjs';\n\n/**\n * Convert any React component into a `motion` component. The provided component\n * **must** use `React.forwardRef` to the underlying DOM component you want to animate.\n *\n * ```jsx\n * const Component = React.forwardRef((props, ref) => {\n * return
\n * })\n *\n * const MotionComponent = motion(Component)\n * ```\n *\n * @public\n */\nfunction createMotionProxy(createConfig) {\n function custom(Component, customMotionComponentConfig) {\n if (customMotionComponentConfig === void 0) { customMotionComponentConfig = {}; }\n return createMotionComponent(createConfig(Component, customMotionComponentConfig));\n }\n if (typeof Proxy === \"undefined\") {\n return custom;\n }\n /**\n * A cache of generated `motion` components, e.g `motion.div`, `motion.input` etc.\n * Rather than generating them anew every render.\n */\n var componentCache = new Map();\n return new Proxy(custom, {\n /**\n * Called when `motion` is referenced with a prop: `motion.div`, `motion.input` etc.\n * The prop name is passed through as `key` and we can use that to generate a `motion`\n * DOM component with that name.\n */\n get: function (_target, key) {\n /**\n * If this element doesn't exist in the component cache, create it and cache.\n */\n if (!componentCache.has(key)) {\n componentCache.set(key, custom(key));\n }\n return componentCache.get(key);\n },\n });\n}\n\nexport { createMotionProxy };\n","var CAMEL_CASE_PATTERN = /([a-z])([A-Z])/g;\nvar REPLACE_TEMPLATE = \"$1-$2\";\n/**\n * Convert camelCase to dash-case properties.\n */\nvar camelToDash = function (str) {\n return str.replace(CAMEL_CASE_PATTERN, REPLACE_TEMPLATE).toLowerCase();\n};\n\nexport { camelToDash };\n","var createHtmlRenderState = function () { return ({\n style: {},\n transform: {},\n transformKeys: [],\n transformOrigin: {},\n vars: {},\n}); };\n\nexport { createHtmlRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { isForcedMotionValue } from '../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../value/utils/is-motion-value.mjs';\nimport { buildHTMLStyles } from './utils/build-styles.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nfunction copyRawValuesOnly(target, source, props) {\n for (var key in source) {\n if (!isMotionValue(source[key]) && !isForcedMotionValue(key, props)) {\n target[key] = source[key];\n }\n }\n}\nfunction useInitialMotionValues(_a, visualState, isStatic) {\n var transformTemplate = _a.transformTemplate;\n return useMemo(function () {\n var state = createHtmlRenderState();\n buildHTMLStyles(state, visualState, { enableHardwareAcceleration: !isStatic }, transformTemplate);\n var vars = state.vars, style = state.style;\n return __assign(__assign({}, vars), style);\n }, [visualState]);\n}\nfunction useStyle(props, visualState, isStatic) {\n var styleProp = props.style || {};\n var style = {};\n /**\n * Copy non-Motion Values straight into style\n */\n copyRawValuesOnly(style, styleProp, props);\n Object.assign(style, useInitialMotionValues(props, visualState, isStatic));\n if (props.transformValues) {\n style = props.transformValues(style);\n }\n return style;\n}\nfunction useHTMLProps(props, visualState, isStatic) {\n // The `any` isn't ideal but it is the type of createElement props argument\n var htmlProps = {};\n var style = useStyle(props, visualState, isStatic);\n if (Boolean(props.drag) && props.dragListener !== false) {\n // Disable the ghost element when a user drags\n htmlProps.draggable = false;\n // Disable text selection\n style.userSelect =\n style.WebkitUserSelect =\n style.WebkitTouchCallout =\n \"none\";\n // Disable scrolling on the draggable direction\n style.touchAction =\n props.drag === true\n ? \"none\"\n : \"pan-\".concat(props.drag === \"x\" ? \"y\" : \"x\");\n }\n htmlProps.style = style;\n return htmlProps;\n}\n\nexport { copyRawValuesOnly, useHTMLProps, useStyle };\n","/**\n * A list of all valid MotionProps.\n *\n * @privateRemarks\n * This doesn't throw if a `MotionProp` name is missing - it should.\n */\nvar validMotionProps = new Set([\n \"initial\",\n \"animate\",\n \"exit\",\n \"style\",\n \"variants\",\n \"transition\",\n \"transformTemplate\",\n \"transformValues\",\n \"custom\",\n \"inherit\",\n \"layout\",\n \"layoutId\",\n \"layoutDependency\",\n \"onLayoutAnimationStart\",\n \"onLayoutAnimationComplete\",\n \"onLayoutMeasure\",\n \"onBeforeLayoutMeasure\",\n \"onAnimationStart\",\n \"onAnimationComplete\",\n \"onUpdate\",\n \"onDragStart\",\n \"onDrag\",\n \"onDragEnd\",\n \"onMeasureDragConstraints\",\n \"onDirectionLock\",\n \"onDragTransitionEnd\",\n \"drag\",\n \"dragControls\",\n \"dragListener\",\n \"dragConstraints\",\n \"dragDirectionLock\",\n \"dragSnapToOrigin\",\n \"_dragX\",\n \"_dragY\",\n \"dragElastic\",\n \"dragMomentum\",\n \"dragPropagation\",\n \"dragTransition\",\n \"whileDrag\",\n \"onPan\",\n \"onPanStart\",\n \"onPanEnd\",\n \"onPanSessionStart\",\n \"onTap\",\n \"onTapStart\",\n \"onTapCancel\",\n \"onHoverStart\",\n \"onHoverEnd\",\n \"whileFocus\",\n \"whileTap\",\n \"whileHover\",\n \"whileInView\",\n \"onViewportEnter\",\n \"onViewportLeave\",\n \"viewport\",\n \"layoutScroll\",\n]);\n/**\n * Check whether a prop name is a valid `MotionProp` key.\n *\n * @param key - Name of the property to check\n * @returns `true` is key is a valid `MotionProp`.\n *\n * @public\n */\nfunction isValidMotionProp(key) {\n return validMotionProps.has(key);\n}\n\nexport { isValidMotionProp };\n","import { isValidMotionProp } from '../../../motion/utils/valid-prop.mjs';\n\nvar shouldForward = function (key) { return !isValidMotionProp(key); };\nfunction loadExternalIsValidProp(isValidProp) {\n if (!isValidProp)\n return;\n // Explicitly filter our events\n shouldForward = function (key) {\n return key.startsWith(\"on\") ? !isValidMotionProp(key) : isValidProp(key);\n };\n}\n/**\n * Emotion and Styled Components both allow users to pass through arbitrary props to their components\n * to dynamically generate CSS. They both use the `@emotion/is-prop-valid` package to determine which\n * of these should be passed to the underlying DOM node.\n *\n * However, when styling a Motion component `styled(motion.div)`, both packages pass through *all* props\n * as it's seen as an arbitrary component rather than a DOM node. Motion only allows arbitrary props\n * passed through the `custom` prop so it doesn't *need* the payload or computational overhead of\n * `@emotion/is-prop-valid`, however to fix this problem we need to use it.\n *\n * By making it an optionalDependency we can offer this functionality only in the situations where it's\n * actually required.\n */\ntry {\n /**\n * We attempt to import this package but require won't be defined in esm environments, in that case\n * isPropValid will have to be provided via `MotionContext`. In a 6.0.0 this should probably be removed\n * in favour of explicit injection.\n */\n loadExternalIsValidProp(require(\"@emotion/is-prop-valid\").default);\n}\ncatch (_a) {\n // We don't need to actually do anything here - the fallback is the existing `isPropValid`.\n}\nfunction filterProps(props, isDom, forwardMotionProps) {\n var filteredProps = {};\n for (var key in props) {\n if (shouldForward(key) ||\n (forwardMotionProps === true && isValidMotionProp(key)) ||\n (!isDom && !isValidMotionProp(key)) ||\n // If trying to use native HTML drag events, forward drag listeners\n (props[\"draggable\"] && key.startsWith(\"onDrag\"))) {\n filteredProps[key] = props[key];\n }\n }\n return filteredProps;\n}\n\nexport { filterProps, loadExternalIsValidProp };\n","import { __assign } from 'tslib';\nimport { createHtmlRenderState } from '../../html/utils/create-render-state.mjs';\n\nvar createSvgRenderState = function () { return (__assign(__assign({}, createHtmlRenderState()), { attrs: {} })); };\n\nexport { createSvgRenderState };\n","import { __assign } from 'tslib';\nimport { useMemo } from 'react';\nimport { copyRawValuesOnly } from '../html/use-props.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\n\nfunction useSVGProps(props, visualState) {\n var visualProps = useMemo(function () {\n var state = createSvgRenderState();\n buildSVGAttrs(state, visualState, { enableHardwareAcceleration: false }, props.transformTemplate);\n return __assign(__assign({}, state.attrs), { style: __assign({}, state.style) });\n }, [visualState]);\n if (props.style) {\n var rawStyles = {};\n copyRawValuesOnly(rawStyles, props.style, props);\n visualProps.style = __assign(__assign({}, rawStyles), visualProps.style);\n }\n return visualProps;\n}\n\nexport { useSVGProps };\n","import { __assign } from 'tslib';\nimport { createElement } from 'react';\nimport { useHTMLProps } from '../html/use-props.mjs';\nimport { filterProps } from './utils/filter-props.mjs';\nimport { isSVGComponent } from './utils/is-svg-component.mjs';\nimport { useSVGProps } from '../svg/use-props.mjs';\n\nfunction createUseRender(forwardMotionProps) {\n if (forwardMotionProps === void 0) { forwardMotionProps = false; }\n var useRender = function (Component, props, projectionId, ref, _a, isStatic) {\n var latestValues = _a.latestValues;\n var useVisualProps = isSVGComponent(Component)\n ? useSVGProps\n : useHTMLProps;\n var visualProps = useVisualProps(props, latestValues, isStatic);\n var filteredProps = filterProps(props, typeof Component === \"string\", forwardMotionProps);\n var elementProps = __assign(__assign(__assign({}, filteredProps), visualProps), { ref: ref });\n if (projectionId) {\n elementProps[\"data-projection-id\"] = projectionId;\n }\n return createElement(Component, elementProps);\n };\n return useRender;\n}\n\nexport { createUseRender };\n","import { __rest } from 'tslib';\nimport { useContext } from 'react';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { PresenceContext } from '../../context/PresenceContext.mjs';\nimport { checkIfControllingVariants, checkIfVariantNode, resolveVariantFromProps } from '../../render/utils/variants.mjs';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { resolveMotionValue } from '../../value/utils/resolve-motion-value.mjs';\nimport { MotionContext } from '../../context/MotionContext/index.mjs';\n\nfunction makeState(_a, props, context, presenceContext) {\n var scrapeMotionValuesFromProps = _a.scrapeMotionValuesFromProps, createRenderState = _a.createRenderState, onMount = _a.onMount;\n var state = {\n latestValues: makeLatestValues(props, context, presenceContext, scrapeMotionValuesFromProps),\n renderState: createRenderState(),\n };\n if (onMount) {\n state.mount = function (instance) { return onMount(props, instance, state); };\n }\n return state;\n}\nvar makeUseVisualState = function (config) {\n return function (props, isStatic) {\n var context = useContext(MotionContext);\n var presenceContext = useContext(PresenceContext);\n return isStatic\n ? makeState(config, props, context, presenceContext)\n : useConstant(function () {\n return makeState(config, props, context, presenceContext);\n });\n };\n};\nfunction makeLatestValues(props, context, presenceContext, scrapeMotionValues) {\n var values = {};\n var blockInitialAnimation = (presenceContext === null || presenceContext === void 0 ? void 0 : presenceContext.initial) === false;\n var motionValues = scrapeMotionValues(props);\n for (var key in motionValues) {\n values[key] = resolveMotionValue(motionValues[key]);\n }\n var initial = props.initial, animate = props.animate;\n var isControllingVariants = checkIfControllingVariants(props);\n var isVariantNode = checkIfVariantNode(props);\n if (context &&\n isVariantNode &&\n !isControllingVariants &&\n props.inherit !== false) {\n initial !== null && initial !== void 0 ? initial : (initial = context.initial);\n animate !== null && animate !== void 0 ? animate : (animate = context.animate);\n }\n var initialAnimationIsBlocked = blockInitialAnimation || initial === false;\n var variantToSet = initialAnimationIsBlocked ? animate : initial;\n if (variantToSet &&\n typeof variantToSet !== \"boolean\" &&\n !isAnimationControls(variantToSet)) {\n var list = Array.isArray(variantToSet) ? variantToSet : [variantToSet];\n list.forEach(function (definition) {\n var resolved = resolveVariantFromProps(props, definition);\n if (!resolved)\n return;\n var transitionEnd = resolved.transitionEnd; resolved.transition; var target = __rest(resolved, [\"transitionEnd\", \"transition\"]);\n for (var key in target) {\n var valueTarget = target[key];\n if (Array.isArray(valueTarget)) {\n /**\n * Take final keyframe if the initial animation is blocked because\n * we want to initialise at the end of that blocked animation.\n */\n var index = initialAnimationIsBlocked\n ? valueTarget.length - 1\n : 0;\n valueTarget = valueTarget[index];\n }\n if (valueTarget !== null) {\n values[key] = valueTarget;\n }\n }\n for (var key in transitionEnd)\n values[key] = transitionEnd[key];\n });\n }\n return values;\n}\n\nexport { makeUseVisualState };\n","import { renderSVG } from './utils/render.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { createSvgRenderState } from './utils/create-render-state.mjs';\nimport { buildSVGAttrs } from './utils/build-attrs.mjs';\n\nvar svgMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createSvgRenderState,\n onMount: function (props, instance, _a) {\n var renderState = _a.renderState, latestValues = _a.latestValues;\n try {\n renderState.dimensions =\n typeof instance.getBBox ===\n \"function\"\n ? instance.getBBox()\n : instance.getBoundingClientRect();\n }\n catch (e) {\n // Most likely trying to measure an unrendered element under Firefox\n renderState.dimensions = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n }\n buildSVGAttrs(renderState, latestValues, { enableHardwareAcceleration: false }, props.transformTemplate);\n renderSVG(instance, renderState);\n },\n }),\n};\n\nexport { svgMotionConfig };\n","import { makeUseVisualState } from '../../motion/utils/use-visual-state.mjs';\nimport { scrapeMotionValuesFromProps } from './utils/scrape-motion-values.mjs';\nimport { createHtmlRenderState } from './utils/create-render-state.mjs';\n\nvar htmlMotionConfig = {\n useVisualState: makeUseVisualState({\n scrapeMotionValuesFromProps: scrapeMotionValuesFromProps,\n createRenderState: createHtmlRenderState,\n }),\n};\n\nexport { htmlMotionConfig };\n","import { __assign } from 'tslib';\nimport { isSVGComponent } from './is-svg-component.mjs';\nimport { createUseRender } from '../use-render.mjs';\nimport { svgMotionConfig } from '../../svg/config-motion.mjs';\nimport { htmlMotionConfig } from '../../html/config-motion.mjs';\n\nfunction createDomMotionConfig(Component, _a, preloadedFeatures, createVisualElement, projectionNodeConstructor) {\n var _b = _a.forwardMotionProps, forwardMotionProps = _b === void 0 ? false : _b;\n var baseConfig = isSVGComponent(Component)\n ? svgMotionConfig\n : htmlMotionConfig;\n return __assign(__assign({}, baseConfig), { preloadedFeatures: preloadedFeatures, useRender: createUseRender(forwardMotionProps), createVisualElement: createVisualElement, projectionNodeConstructor: projectionNodeConstructor, Component: Component });\n}\n\nexport { createDomMotionConfig };\n","import { __rest, __assign, __read } from 'tslib';\nimport { invariant } from 'hey-listen';\n\nfunction isCSSVariable(value) {\n return typeof value === \"string\" && value.startsWith(\"var(--\");\n}\n/**\n * Parse Framer's special CSS variable format into a CSS token and a fallback.\n *\n * ```\n * `var(--foo, #fff)` => [`--foo`, '#fff']\n * ```\n *\n * @param current\n */\nvar cssVariableRegex = /var\\((--[a-zA-Z0-9-_]+),? ?([a-zA-Z0-9 ()%#.,-]+)?\\)/;\nfunction parseCSSVariable(current) {\n var match = cssVariableRegex.exec(current);\n if (!match)\n return [,];\n var _a = __read(match, 3), token = _a[1], fallback = _a[2];\n return [token, fallback];\n}\nvar maxDepth = 4;\nfunction getVariableValue(current, element, depth) {\n if (depth === void 0) { depth = 1; }\n invariant(depth <= maxDepth, \"Max CSS variable fallback depth detected in property \\\"\".concat(current, \"\\\". This may indicate a circular fallback dependency.\"));\n var _a = __read(parseCSSVariable(current), 2), token = _a[0], fallback = _a[1];\n // No CSS variable detected\n if (!token)\n return;\n // Attempt to read this CSS variable off the element\n var resolved = window.getComputedStyle(element).getPropertyValue(token);\n if (resolved) {\n return resolved.trim();\n }\n else if (isCSSVariable(fallback)) {\n // The fallback might itself be a CSS variable, in which case we attempt to resolve it too.\n return getVariableValue(fallback, element, depth + 1);\n }\n else {\n return fallback;\n }\n}\n/**\n * Resolve CSS variables from\n *\n * @internal\n */\nfunction resolveCSSVariables(visualElement, _a, transitionEnd) {\n var _b;\n var target = __rest(_a, []);\n var element = visualElement.getInstance();\n if (!(element instanceof Element))\n return { target: target, transitionEnd: transitionEnd };\n // If `transitionEnd` isn't `undefined`, clone it. We could clone `target` and `transitionEnd`\n // only if they change but I think this reads clearer and this isn't a performance-critical path.\n if (transitionEnd) {\n transitionEnd = __assign({}, transitionEnd);\n }\n // Go through existing `MotionValue`s and ensure any existing CSS variables are resolved\n visualElement.forEachValue(function (value) {\n var current = value.get();\n if (!isCSSVariable(current))\n return;\n var resolved = getVariableValue(current, element);\n if (resolved)\n value.set(resolved);\n });\n // Cycle through every target property and resolve CSS variables. Currently\n // we only read single-var properties like `var(--foo)`, not `calc(var(--foo) + 20px)`\n for (var key in target) {\n var current = target[key];\n if (!isCSSVariable(current))\n continue;\n var resolved = getVariableValue(current, element);\n if (!resolved)\n continue;\n // Clone target if it hasn't already been\n target[key] = resolved;\n // If the user hasn't already set this key on `transitionEnd`, set it to the unresolved\n // CSS variable. This will ensure that after the animation the component will reflect\n // changes in the value of the CSS variable.\n if (transitionEnd)\n (_b = transitionEnd[key]) !== null && _b !== void 0 ? _b : (transitionEnd[key] = current);\n }\n return { target: target, transitionEnd: transitionEnd };\n}\n\nexport { cssVariableRegex, parseCSSVariable, resolveCSSVariables };\n","/**\n * Returns true if the provided key is a CSS variable\n */\nfunction isCSSVariable(key) {\n return key.startsWith(\"--\");\n}\n\nexport { isCSSVariable };\n","/**\n * We keep these listed seperately as we use the lowercase tag names as part\n * of the runtime bundle to detect SVG components\n */\nvar lowercaseSVGElements = [\n \"animate\",\n \"circle\",\n \"defs\",\n \"desc\",\n \"ellipse\",\n \"g\",\n \"image\",\n \"line\",\n \"filter\",\n \"marker\",\n \"mask\",\n \"metadata\",\n \"path\",\n \"pattern\",\n \"polygon\",\n \"polyline\",\n \"rect\",\n \"stop\",\n \"svg\",\n \"switch\",\n \"symbol\",\n \"text\",\n \"tspan\",\n \"use\",\n \"view\",\n];\n\nexport { lowercaseSVGElements };\n","import { lowercaseSVGElements } from '../../svg/lowercase-elements.mjs';\n\nfunction isSVGComponent(Component) {\n if (\n /**\n * If it's not a string, it's a custom React component. Currently we only support\n * HTML custom React components.\n */\n typeof Component !== \"string\" ||\n /**\n * If it contains a dash, the element is a custom HTML webcomponent.\n */\n Component.includes(\"-\")) {\n return false;\n }\n else if (\n /**\n * If it's in our list of lowercase SVG tags, it's an SVG component\n */\n lowercaseSVGElements.indexOf(Component) > -1 ||\n /**\n * If it contains a capital letter, it's an SVG component\n */\n /[A-Z]/.test(Component)) {\n return true;\n }\n return false;\n}\n\nexport { isSVGComponent };\n","import { filter, complex } from 'style-value-types';\nimport { getDefaultValueType } from './defaults.mjs';\n\nfunction getAnimatableNone(key, value) {\n var _a;\n var defaultValueType = getDefaultValueType(key);\n if (defaultValueType !== filter)\n defaultValueType = complex;\n // If value is not recognised as animatable, ie \"none\", create an animatable version origin based on the target\n return (_a = defaultValueType.getAnimatableNone) === null || _a === void 0 ? void 0 : _a.call(defaultValueType, value);\n}\n\nexport { getAnimatableNone };\n","import { __assign } from 'tslib';\nimport { color, filter } from 'style-value-types';\nimport { numberValueTypes } from './number.mjs';\n\n/**\n * A map of default value types for common values\n */\nvar defaultValueTypes = __assign(__assign({}, numberValueTypes), { \n // Color props\n color: color, backgroundColor: color, outlineColor: color, fill: color, stroke: color, \n // Border props\n borderColor: color, borderTopColor: color, borderRightColor: color, borderBottomColor: color, borderLeftColor: color, filter: filter, WebkitFilter: filter });\n/**\n * Gets the default ValueType for the provided value key\n */\nvar getDefaultValueType = function (key) { return defaultValueTypes[key]; };\n\nexport { defaultValueTypes, getDefaultValueType };\n","import { number, px, percent, degrees, vw, vh } from 'style-value-types';\nimport { testValueType } from './test.mjs';\nimport { auto } from './type-auto.mjs';\n\n/**\n * A list of value types commonly used for dimensions\n */\nvar dimensionValueTypes = [number, px, percent, degrees, vw, vh, auto];\n/**\n * Tests a dimensional value against the list of dimension ValueTypes\n */\nvar findDimensionValueType = function (v) {\n return dimensionValueTypes.find(testValueType(v));\n};\n\nexport { dimensionValueTypes, findDimensionValueType };\n","/**\n * ValueType for \"auto\"\n */\nvar auto = {\n test: function (v) { return v === \"auto\"; },\n parse: function (v) { return v; },\n};\n\nexport { auto };\n","import { __assign } from 'tslib';\nimport { number } from 'style-value-types';\n\nvar int = __assign(__assign({}, number), { transform: Math.round });\n\nexport { int };\n","import { px, degrees, scale, alpha, progressPercentage } from 'style-value-types';\nimport { int } from './type-int.mjs';\n\nvar numberValueTypes = {\n // Border props\n borderWidth: px,\n borderTopWidth: px,\n borderRightWidth: px,\n borderBottomWidth: px,\n borderLeftWidth: px,\n borderRadius: px,\n radius: px,\n borderTopLeftRadius: px,\n borderTopRightRadius: px,\n borderBottomRightRadius: px,\n borderBottomLeftRadius: px,\n // Positioning props\n width: px,\n maxWidth: px,\n height: px,\n maxHeight: px,\n size: px,\n top: px,\n right: px,\n bottom: px,\n left: px,\n // Spacing props\n padding: px,\n paddingTop: px,\n paddingRight: px,\n paddingBottom: px,\n paddingLeft: px,\n margin: px,\n marginTop: px,\n marginRight: px,\n marginBottom: px,\n marginLeft: px,\n // Transform props\n rotate: degrees,\n rotateX: degrees,\n rotateY: degrees,\n rotateZ: degrees,\n scale: scale,\n scaleX: scale,\n scaleY: scale,\n scaleZ: scale,\n skew: degrees,\n skewX: degrees,\n skewY: degrees,\n distance: px,\n translateX: px,\n translateY: px,\n translateZ: px,\n x: px,\n y: px,\n z: px,\n perspective: px,\n transformPerspective: px,\n opacity: alpha,\n originX: progressPercentage,\n originY: progressPercentage,\n originZ: px,\n // Misc\n zIndex: int,\n // SVG\n fillOpacity: alpha,\n strokeOpacity: alpha,\n numOctaves: int,\n};\n\nexport { numberValueTypes };\n","/**\n * Tests a provided value against a ValueType\n */\nvar testValueType = function (v) { return function (type) { return type.test(v); }; };\n\nexport { testValueType };\n","import { sortTransformProps } from './transform.mjs';\n\nvar translateAlias = {\n x: \"translateX\",\n y: \"translateY\",\n z: \"translateZ\",\n transformPerspective: \"perspective\",\n};\n/**\n * Build a CSS transform style from individual x/y/scale etc properties.\n *\n * This outputs with a default order of transforms/scales/rotations, this can be customised by\n * providing a transformTemplate function.\n */\nfunction buildTransform(_a, _b, transformIsDefault, transformTemplate) {\n var transform = _a.transform, transformKeys = _a.transformKeys;\n var _c = _b.enableHardwareAcceleration, enableHardwareAcceleration = _c === void 0 ? true : _c, _d = _b.allowTransformNone, allowTransformNone = _d === void 0 ? true : _d;\n // The transform string we're going to build into.\n var transformString = \"\";\n // Transform keys into their default order - this will determine the output order.\n transformKeys.sort(sortTransformProps);\n // Track whether the defined transform has a defined z so we don't add a\n // second to enable hardware acceleration\n var transformHasZ = false;\n // Loop over each transform and build them into transformString\n var numTransformKeys = transformKeys.length;\n for (var i = 0; i < numTransformKeys; i++) {\n var key = transformKeys[i];\n transformString += \"\".concat(translateAlias[key] || key, \"(\").concat(transform[key], \") \");\n if (key === \"z\")\n transformHasZ = true;\n }\n if (!transformHasZ && enableHardwareAcceleration) {\n transformString += \"translateZ(0)\";\n }\n else {\n transformString = transformString.trim();\n }\n // If we have a custom `transform` template, pass our transform values and\n // generated transformString to that before returning\n if (transformTemplate) {\n transformString = transformTemplate(transform, transformIsDefault ? \"\" : transformString);\n }\n else if (allowTransformNone && transformIsDefault) {\n transformString = \"none\";\n }\n return transformString;\n}\n/**\n * Build a transformOrigin style. Uses the same defaults as the browser for\n * undefined origins.\n */\nfunction buildTransformOrigin(_a) {\n var _b = _a.originX, originX = _b === void 0 ? \"50%\" : _b, _c = _a.originY, originY = _c === void 0 ? \"50%\" : _c, _d = _a.originZ, originZ = _d === void 0 ? 0 : _d;\n return \"\".concat(originX, \" \").concat(originY, \" \").concat(originZ);\n}\n\nexport { buildTransform, buildTransformOrigin };\n","/**\n * Provided a value and a ValueType, returns the value as that value type.\n */\nvar getValueAsType = function (value, type) {\n return type && typeof value === \"number\"\n ? type.transform(value)\n : value;\n};\n\nexport { getValueAsType };\n","import { buildTransform, buildTransformOrigin } from './build-transform.mjs';\nimport { isCSSVariable } from '../../dom/utils/is-css-variable.mjs';\nimport { isTransformProp, isTransformOriginProp } from './transform.mjs';\nimport { getValueAsType } from '../../dom/value-types/get-as-type.mjs';\nimport { numberValueTypes } from '../../dom/value-types/number.mjs';\n\nfunction buildHTMLStyles(state, latestValues, options, transformTemplate) {\n var _a;\n var style = state.style, vars = state.vars, transform = state.transform, transformKeys = state.transformKeys, transformOrigin = state.transformOrigin;\n // Empty the transformKeys array. As we're throwing out refs to its items\n // this might not be as cheap as suspected. Maybe using the array as a buffer\n // with a manual incrementation would be better.\n transformKeys.length = 0;\n // Track whether we encounter any transform or transformOrigin values.\n var hasTransform = false;\n var hasTransformOrigin = false;\n // Does the calculated transform essentially equal \"none\"?\n var transformIsNone = true;\n /**\n * Loop over all our latest animated values and decide whether to handle them\n * as a style or CSS variable.\n *\n * Transforms and transform origins are kept seperately for further processing.\n */\n for (var key in latestValues) {\n var value = latestValues[key];\n /**\n * If this is a CSS variable we don't do any further processing.\n */\n if (isCSSVariable(key)) {\n vars[key] = value;\n continue;\n }\n // Convert the value to its default value type, ie 0 -> \"0px\"\n var valueType = numberValueTypes[key];\n var valueAsType = getValueAsType(value, valueType);\n if (isTransformProp(key)) {\n // If this is a transform, flag to enable further transform processing\n hasTransform = true;\n transform[key] = valueAsType;\n transformKeys.push(key);\n // If we already know we have a non-default transform, early return\n if (!transformIsNone)\n continue;\n // Otherwise check to see if this is a default transform\n if (value !== ((_a = valueType.default) !== null && _a !== void 0 ? _a : 0))\n transformIsNone = false;\n }\n else if (isTransformOriginProp(key)) {\n transformOrigin[key] = valueAsType;\n // If this is a transform origin, flag and enable further transform-origin processing\n hasTransformOrigin = true;\n }\n else {\n style[key] = valueAsType;\n }\n }\n if (hasTransform) {\n style.transform = buildTransform(state, options, transformIsNone, transformTemplate);\n }\n else if (transformTemplate) {\n style.transform = transformTemplate({}, \"\");\n }\n else if (!latestValues.transform && style.transform) {\n style.transform = \"none\";\n }\n if (hasTransformOrigin) {\n style.transformOrigin = buildTransformOrigin(transformOrigin);\n }\n}\n\nexport { buildHTMLStyles };\n","function renderHTML(element, _a, styleProp, projection) {\n var style = _a.style, vars = _a.vars;\n Object.assign(element.style, style, projection && projection.getProjectionStyles(styleProp));\n // Loop over any CSS variables and assign those.\n for (var key in vars) {\n element.style.setProperty(key, vars[key]);\n }\n}\n\nexport { renderHTML };\n","import { isForcedMotionValue } from '../../../motion/utils/is-forced-motion-value.mjs';\nimport { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var style = props.style;\n var newValues = {};\n for (var key in style) {\n if (isMotionValue(style[key]) || isForcedMotionValue(key, props)) {\n newValues[key] = style[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","/**\n * A list of all transformable axes. We'll use this list to generated a version\n * of each axes for each transform.\n */\nvar transformAxes = [\"\", \"X\", \"Y\", \"Z\"];\n/**\n * An ordered array of each transformable value. By default, transform values\n * will be sorted to this order.\n */\nvar order = [\"translate\", \"scale\", \"rotate\", \"skew\"];\n/**\n * Generate a list of every possible transform key.\n */\nvar transformProps = [\"transformPerspective\", \"x\", \"y\", \"z\"];\norder.forEach(function (operationKey) {\n return transformAxes.forEach(function (axesKey) {\n return transformProps.push(operationKey + axesKey);\n });\n});\n/**\n * A function to use with Array.sort to sort transform keys by their default order.\n */\nfunction sortTransformProps(a, b) {\n return transformProps.indexOf(a) - transformProps.indexOf(b);\n}\n/**\n * A quick lookup for transform props.\n */\nvar transformPropSet = new Set(transformProps);\nfunction isTransformProp(key) {\n return transformPropSet.has(key);\n}\n/**\n * A quick lookup for transform origin props\n */\nvar transformOriginProps = new Set([\"originX\", \"originY\", \"originZ\"]);\nfunction isTransformOriginProp(key) {\n return transformOriginProps.has(key);\n}\n\nexport { isTransformOriginProp, isTransformProp, sortTransformProps, transformAxes, transformProps };\n","import { px } from 'style-value-types';\n\nfunction calcOrigin(origin, offset, size) {\n return typeof origin === \"string\"\n ? origin\n : px.transform(offset + size * origin);\n}\n/**\n * The SVG transform origin defaults are different to CSS and is less intuitive,\n * so we use the measured dimensions of the SVG to reconcile these.\n */\nfunction calcSVGTransformOrigin(dimensions, originX, originY) {\n var pxOriginX = calcOrigin(originX, dimensions.x, dimensions.width);\n var pxOriginY = calcOrigin(originY, dimensions.y, dimensions.height);\n return \"\".concat(pxOriginX, \" \").concat(pxOriginY);\n}\n\nexport { calcSVGTransformOrigin };\n","import { px } from 'style-value-types';\n\nvar dashKeys = {\n offset: \"stroke-dashoffset\",\n array: \"stroke-dasharray\",\n};\nvar camelKeys = {\n offset: \"strokeDashoffset\",\n array: \"strokeDasharray\",\n};\n/**\n * Build SVG path properties. Uses the path's measured length to convert\n * our custom pathLength, pathSpacing and pathOffset into stroke-dashoffset\n * and stroke-dasharray attributes.\n *\n * This function is mutative to reduce per-frame GC.\n */\nfunction buildSVGPath(attrs, length, spacing, offset, useDashCase) {\n if (spacing === void 0) { spacing = 1; }\n if (offset === void 0) { offset = 0; }\n if (useDashCase === void 0) { useDashCase = true; }\n // Normalise path length by setting SVG attribute pathLength to 1\n attrs.pathLength = 1;\n // We use dash case when setting attributes directly to the DOM node and camel case\n // when defining props on a React component.\n var keys = useDashCase ? dashKeys : camelKeys;\n // Build the dash offset\n attrs[keys.offset] = px.transform(-offset);\n // Build the dash array\n var pathLength = px.transform(length);\n var pathSpacing = px.transform(spacing);\n attrs[keys.array] = \"\".concat(pathLength, \" \").concat(pathSpacing);\n}\n\nexport { buildSVGPath };\n","import { __rest } from 'tslib';\nimport { buildHTMLStyles } from '../../html/utils/build-styles.mjs';\nimport { calcSVGTransformOrigin } from './transform-origin.mjs';\nimport { buildSVGPath } from './path.mjs';\n\n/**\n * Build SVG visual attrbutes, like cx and style.transform\n */\nfunction buildSVGAttrs(state, _a, options, transformTemplate) {\n var attrX = _a.attrX, attrY = _a.attrY, originX = _a.originX, originY = _a.originY, pathLength = _a.pathLength, _b = _a.pathSpacing, pathSpacing = _b === void 0 ? 1 : _b, _c = _a.pathOffset, pathOffset = _c === void 0 ? 0 : _c, \n // This is object creation, which we try to avoid per-frame.\n latest = __rest(_a, [\"attrX\", \"attrY\", \"originX\", \"originY\", \"pathLength\", \"pathSpacing\", \"pathOffset\"]);\n buildHTMLStyles(state, latest, options, transformTemplate);\n state.attrs = state.style;\n state.style = {};\n var attrs = state.attrs, style = state.style, dimensions = state.dimensions;\n /**\n * However, we apply transforms as CSS transforms. So if we detect a transform we take it from attrs\n * and copy it into style.\n */\n if (attrs.transform) {\n if (dimensions)\n style.transform = attrs.transform;\n delete attrs.transform;\n }\n // Parse transformOrigin\n if (dimensions &&\n (originX !== undefined || originY !== undefined || style.transform)) {\n style.transformOrigin = calcSVGTransformOrigin(dimensions, originX !== undefined ? originX : 0.5, originY !== undefined ? originY : 0.5);\n }\n // Treat x/y not as shortcuts but as actual attributes\n if (attrX !== undefined)\n attrs.x = attrX;\n if (attrY !== undefined)\n attrs.y = attrY;\n // Build SVG path if one has been defined\n if (pathLength !== undefined) {\n buildSVGPath(attrs, pathLength, pathSpacing, pathOffset, false);\n }\n}\n\nexport { buildSVGAttrs };\n","/**\n * A set of attribute names that are always read/written as camel case.\n */\nvar camelCaseAttributes = new Set([\n \"baseFrequency\",\n \"diffuseConstant\",\n \"kernelMatrix\",\n \"kernelUnitLength\",\n \"keySplines\",\n \"keyTimes\",\n \"limitingConeAngle\",\n \"markerHeight\",\n \"markerWidth\",\n \"numOctaves\",\n \"targetX\",\n \"targetY\",\n \"surfaceScale\",\n \"specularConstant\",\n \"specularExponent\",\n \"stdDeviation\",\n \"tableValues\",\n \"viewBox\",\n \"gradientTransform\",\n \"pathLength\",\n]);\n\nexport { camelCaseAttributes };\n","import { camelToDash } from '../../dom/utils/camel-to-dash.mjs';\nimport { renderHTML } from '../../html/utils/render.mjs';\nimport { camelCaseAttributes } from './camel-case-attrs.mjs';\n\nfunction renderSVG(element, renderState, _styleProp, projection) {\n renderHTML(element, renderState, undefined, projection);\n for (var key in renderState.attrs) {\n element.setAttribute(!camelCaseAttributes.has(key) ? camelToDash(key) : key, renderState.attrs[key]);\n }\n}\n\nexport { renderSVG };\n","import { isMotionValue } from '../../../value/utils/is-motion-value.mjs';\nimport { scrapeMotionValuesFromProps as scrapeMotionValuesFromProps$1 } from '../../html/utils/scrape-motion-values.mjs';\n\nfunction scrapeMotionValuesFromProps(props) {\n var newValues = scrapeMotionValuesFromProps$1(props);\n for (var key in props) {\n if (isMotionValue(props[key])) {\n var targetKey = key === \"x\" || key === \"y\" ? \"attr\" + key.toUpperCase() : key;\n newValues[targetKey] = props[key];\n }\n }\n return newValues;\n}\n\nexport { scrapeMotionValuesFromProps };\n","function shallowCompare(next, prev) {\n if (!Array.isArray(prev))\n return false;\n var prevLength = prev.length;\n if (prevLength !== next.length)\n return false;\n for (var i = 0; i < prevLength; i++) {\n if (prev[i] !== next[i])\n return false;\n }\n return true;\n}\n\nexport { shallowCompare };\n","import { __read, __rest, __assign } from 'tslib';\nimport { startAnimation } from '../../animation/utils/transitions.mjs';\nimport { setTarget } from './setters.mjs';\nimport { resolveVariant } from './variants.mjs';\nimport { isTransformProp } from '../html/utils/transform.mjs';\n\nfunction animateVisualElement(visualElement, definition, options) {\n if (options === void 0) { options = {}; }\n visualElement.notifyAnimationStart(definition);\n var animation;\n if (Array.isArray(definition)) {\n var animations = definition.map(function (variant) {\n return animateVariant(visualElement, variant, options);\n });\n animation = Promise.all(animations);\n }\n else if (typeof definition === \"string\") {\n animation = animateVariant(visualElement, definition, options);\n }\n else {\n var resolvedDefinition = typeof definition === \"function\"\n ? resolveVariant(visualElement, definition, options.custom)\n : definition;\n animation = animateTarget(visualElement, resolvedDefinition, options);\n }\n return animation.then(function () {\n return visualElement.notifyAnimationComplete(definition);\n });\n}\nfunction animateVariant(visualElement, variant, options) {\n var _a;\n if (options === void 0) { options = {}; }\n var resolved = resolveVariant(visualElement, variant, options.custom);\n var _b = (resolved || {}).transition, transition = _b === void 0 ? visualElement.getDefaultTransition() || {} : _b;\n if (options.transitionOverride) {\n transition = options.transitionOverride;\n }\n /**\n * If we have a variant, create a callback that runs it as an animation.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getAnimation = resolved\n ? function () { return animateTarget(visualElement, resolved, options); }\n : function () { return Promise.resolve(); };\n /**\n * If we have children, create a callback that runs all their animations.\n * Otherwise, we resolve a Promise immediately for a composable no-op.\n */\n var getChildAnimations = ((_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.size)\n ? function (forwardDelay) {\n if (forwardDelay === void 0) { forwardDelay = 0; }\n var _a = transition.delayChildren, delayChildren = _a === void 0 ? 0 : _a, staggerChildren = transition.staggerChildren, staggerDirection = transition.staggerDirection;\n return animateChildren(visualElement, variant, delayChildren + forwardDelay, staggerChildren, staggerDirection, options);\n }\n : function () { return Promise.resolve(); };\n /**\n * If the transition explicitly defines a \"when\" option, we need to resolve either\n * this animation or all children animations before playing the other.\n */\n var when = transition.when;\n if (when) {\n var _c = __read(when === \"beforeChildren\"\n ? [getAnimation, getChildAnimations]\n : [getChildAnimations, getAnimation], 2), first = _c[0], last = _c[1];\n return first().then(last);\n }\n else {\n return Promise.all([getAnimation(), getChildAnimations(options.delay)]);\n }\n}\n/**\n * @internal\n */\nfunction animateTarget(visualElement, definition, _a) {\n var _b;\n var _c = _a === void 0 ? {} : _a, _d = _c.delay, delay = _d === void 0 ? 0 : _d, transitionOverride = _c.transitionOverride, type = _c.type;\n var _e = visualElement.makeTargetAnimatable(definition), _f = _e.transition, transition = _f === void 0 ? visualElement.getDefaultTransition() : _f, transitionEnd = _e.transitionEnd, target = __rest(_e, [\"transition\", \"transitionEnd\"]);\n if (transitionOverride)\n transition = transitionOverride;\n var animations = [];\n var animationTypeState = type && ((_b = visualElement.animationState) === null || _b === void 0 ? void 0 : _b.getState()[type]);\n for (var key in target) {\n var value = visualElement.getValue(key);\n var valueTarget = target[key];\n if (!value ||\n valueTarget === undefined ||\n (animationTypeState &&\n shouldBlockAnimation(animationTypeState, key))) {\n continue;\n }\n var valueTransition = __assign({ delay: delay }, transition);\n /**\n * Make animation instant if this is a transform prop and we should reduce motion.\n */\n if (visualElement.shouldReduceMotion && isTransformProp(key)) {\n valueTransition = __assign(__assign({}, valueTransition), { type: false, delay: 0 });\n }\n var animation = startAnimation(key, value, valueTarget, valueTransition);\n animations.push(animation);\n }\n return Promise.all(animations).then(function () {\n transitionEnd && setTarget(visualElement, transitionEnd);\n });\n}\nfunction animateChildren(visualElement, variant, delayChildren, staggerChildren, staggerDirection, options) {\n if (delayChildren === void 0) { delayChildren = 0; }\n if (staggerChildren === void 0) { staggerChildren = 0; }\n if (staggerDirection === void 0) { staggerDirection = 1; }\n var animations = [];\n var maxStaggerDuration = (visualElement.variantChildren.size - 1) * staggerChildren;\n var generateStaggerDuration = staggerDirection === 1\n ? function (i) {\n if (i === void 0) { i = 0; }\n return i * staggerChildren;\n }\n : function (i) {\n if (i === void 0) { i = 0; }\n return maxStaggerDuration - i * staggerChildren;\n };\n Array.from(visualElement.variantChildren)\n .sort(sortByTreeOrder)\n .forEach(function (child, i) {\n animations.push(animateVariant(child, variant, __assign(__assign({}, options), { delay: delayChildren + generateStaggerDuration(i) })).then(function () { return child.notifyAnimationComplete(variant); }));\n });\n return Promise.all(animations);\n}\nfunction stopAnimation(visualElement) {\n visualElement.forEachValue(function (value) { return value.stop(); });\n}\nfunction sortByTreeOrder(a, b) {\n return a.sortNodePosition(b);\n}\n/**\n * Decide whether we should block this animation. Previously, we achieved this\n * just by checking whether the key was listed in protectedKeys, but this\n * posed problems if an animation was triggered by afterChildren and protectedKeys\n * had been set to true in the meantime.\n */\nfunction shouldBlockAnimation(_a, key) {\n var protectedKeys = _a.protectedKeys, needsAnimating = _a.needsAnimating;\n var shouldBlock = protectedKeys.hasOwnProperty(key) && needsAnimating[key] !== true;\n needsAnimating[key] = false;\n return shouldBlock;\n}\n\nexport { animateVisualElement, sortByTreeOrder, stopAnimation };\n","import { __spreadArray, __read, __assign, __rest } from 'tslib';\nimport { isAnimationControls } from '../../animation/utils/is-animation-controls.mjs';\nimport { isKeyframesTarget } from '../../animation/utils/is-keyframes-target.mjs';\nimport { shallowCompare } from '../../utils/shallow-compare.mjs';\nimport { animateVisualElement } from './animation.mjs';\nimport { AnimationType } from './types.mjs';\nimport { isVariantLabels, resolveVariant, isVariantLabel } from './variants.mjs';\n\nvar variantPriorityOrder = [\n AnimationType.Animate,\n AnimationType.InView,\n AnimationType.Focus,\n AnimationType.Hover,\n AnimationType.Tap,\n AnimationType.Drag,\n AnimationType.Exit,\n];\nvar reversePriorityOrder = __spreadArray([], __read(variantPriorityOrder), false).reverse();\nvar numAnimationTypes = variantPriorityOrder.length;\nfunction animateList(visualElement) {\n return function (animations) {\n return Promise.all(animations.map(function (_a) {\n var animation = _a.animation, options = _a.options;\n return animateVisualElement(visualElement, animation, options);\n }));\n };\n}\nfunction createAnimationState(visualElement) {\n var animate = animateList(visualElement);\n var state = createState();\n var allAnimatedKeys = {};\n var isInitialRender = true;\n /**\n * This function will be used to reduce the animation definitions for\n * each active animation type into an object of resolved values for it.\n */\n var buildResolvedTypeValues = function (acc, definition) {\n var resolved = resolveVariant(visualElement, definition);\n if (resolved) {\n resolved.transition; var transitionEnd = resolved.transitionEnd, target = __rest(resolved, [\"transition\", \"transitionEnd\"]);\n acc = __assign(__assign(__assign({}, acc), target), transitionEnd);\n }\n return acc;\n };\n function isAnimated(key) {\n return allAnimatedKeys[key] !== undefined;\n }\n /**\n * This just allows us to inject mocked animation functions\n * @internal\n */\n function setAnimateFunction(makeAnimator) {\n animate = makeAnimator(visualElement);\n }\n /**\n * When we receive new props, we need to:\n * 1. Create a list of protected keys for each type. This is a directory of\n * value keys that are currently being \"handled\" by types of a higher priority\n * so that whenever an animation is played of a given type, these values are\n * protected from being animated.\n * 2. Determine if an animation type needs animating.\n * 3. Determine if any values have been removed from a type and figure out\n * what to animate those to.\n */\n function animateChanges(options, changedActiveType) {\n var _a;\n var props = visualElement.getProps();\n var context = visualElement.getVariantContext(true) || {};\n /**\n * A list of animations that we'll build into as we iterate through the animation\n * types. This will get executed at the end of the function.\n */\n var animations = [];\n /**\n * Keep track of which values have been removed. Then, as we hit lower priority\n * animation types, we can check if they contain removed values and animate to that.\n */\n var removedKeys = new Set();\n /**\n * A dictionary of all encountered keys. This is an object to let us build into and\n * copy it without iteration. Each time we hit an animation type we set its protected\n * keys - the keys its not allowed to animate - to the latest version of this object.\n */\n var encounteredKeys = {};\n /**\n * If a variant has been removed at a given index, and this component is controlling\n * variant animations, we want to ensure lower-priority variants are forced to animate.\n */\n var removedVariantIndex = Infinity;\n var _loop_1 = function (i) {\n var type = reversePriorityOrder[i];\n var typeState = state[type];\n var prop = (_a = props[type]) !== null && _a !== void 0 ? _a : context[type];\n var propIsVariant = isVariantLabel(prop);\n /**\n * If this type has *just* changed isActive status, set activeDelta\n * to that status. Otherwise set to null.\n */\n var activeDelta = type === changedActiveType ? typeState.isActive : null;\n if (activeDelta === false)\n removedVariantIndex = i;\n /**\n * If this prop is an inherited variant, rather than been set directly on the\n * component itself, we want to make sure we allow the parent to trigger animations.\n *\n * TODO: Can probably change this to a !isControllingVariants check\n */\n var isInherited = prop === context[type] && prop !== props[type] && propIsVariant;\n /**\n *\n */\n if (isInherited &&\n isInitialRender &&\n visualElement.manuallyAnimateOnMount) {\n isInherited = false;\n }\n /**\n * Set all encountered keys so far as the protected keys for this type. This will\n * be any key that has been animated or otherwise handled by active, higher-priortiy types.\n */\n typeState.protectedKeys = __assign({}, encounteredKeys);\n // Check if we can skip analysing this prop early\n if (\n // If it isn't active and hasn't *just* been set as inactive\n (!typeState.isActive && activeDelta === null) ||\n // If we didn't and don't have any defined prop for this animation type\n (!prop && !typeState.prevProp) ||\n // Or if the prop doesn't define an animation\n isAnimationControls(prop) ||\n typeof prop === \"boolean\") {\n return \"continue\";\n }\n /**\n * As we go look through the values defined on this type, if we detect\n * a changed value or a value that was removed in a higher priority, we set\n * this to true and add this prop to the animation list.\n */\n var variantDidChange = checkVariantsDidChange(typeState.prevProp, prop);\n var shouldAnimateType = variantDidChange ||\n // If we're making this variant active, we want to always make it active\n (type === changedActiveType &&\n typeState.isActive &&\n !isInherited &&\n propIsVariant) ||\n // If we removed a higher-priority variant (i is in reverse order)\n (i > removedVariantIndex && propIsVariant);\n /**\n * As animations can be set as variant lists, variants or target objects, we\n * coerce everything to an array if it isn't one already\n */\n var definitionList = Array.isArray(prop) ? prop : [prop];\n /**\n * Build an object of all the resolved values. We'll use this in the subsequent\n * animateChanges calls to determine whether a value has changed.\n */\n var resolvedValues = definitionList.reduce(buildResolvedTypeValues, {});\n if (activeDelta === false)\n resolvedValues = {};\n /**\n * Now we need to loop through all the keys in the prev prop and this prop,\n * and decide:\n * 1. If the value has changed, and needs animating\n * 2. If it has been removed, and needs adding to the removedKeys set\n * 3. If it has been removed in a higher priority type and needs animating\n * 4. If it hasn't been removed in a higher priority but hasn't changed, and\n * needs adding to the type's protectedKeys list.\n */\n var _b = typeState.prevResolvedValues, prevResolvedValues = _b === void 0 ? {} : _b;\n var allKeys = __assign(__assign({}, prevResolvedValues), resolvedValues);\n var markToAnimate = function (key) {\n shouldAnimateType = true;\n removedKeys.delete(key);\n typeState.needsAnimating[key] = true;\n };\n for (var key in allKeys) {\n var next = resolvedValues[key];\n var prev = prevResolvedValues[key];\n // If we've already handled this we can just skip ahead\n if (encounteredKeys.hasOwnProperty(key))\n continue;\n /**\n * If the value has changed, we probably want to animate it.\n */\n if (next !== prev) {\n /**\n * If both values are keyframes, we need to shallow compare them to\n * detect whether any value has changed. If it has, we animate it.\n */\n if (isKeyframesTarget(next) && isKeyframesTarget(prev)) {\n if (!shallowCompare(next, prev) || variantDidChange) {\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we want to ensure it doesn't animate by\n * adding it to the list of protected keys.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n else if (next !== undefined) {\n // If next is defined and doesn't equal prev, it needs animating\n markToAnimate(key);\n }\n else {\n // If it's undefined, it's been removed.\n removedKeys.add(key);\n }\n }\n else if (next !== undefined && removedKeys.has(key)) {\n /**\n * If next hasn't changed and it isn't undefined, we want to check if it's\n * been removed by a higher priority\n */\n markToAnimate(key);\n }\n else {\n /**\n * If it hasn't changed, we add it to the list of protected values\n * to ensure it doesn't get animated.\n */\n typeState.protectedKeys[key] = true;\n }\n }\n /**\n * Update the typeState so next time animateChanges is called we can compare the\n * latest prop and resolvedValues to these.\n */\n typeState.prevProp = prop;\n typeState.prevResolvedValues = resolvedValues;\n /**\n *\n */\n if (typeState.isActive) {\n encounteredKeys = __assign(__assign({}, encounteredKeys), resolvedValues);\n }\n if (isInitialRender && visualElement.blockInitialAnimation) {\n shouldAnimateType = false;\n }\n /**\n * If this is an inherited prop we want to hard-block animations\n * TODO: Test as this should probably still handle animations triggered\n * by removed values?\n */\n if (shouldAnimateType && !isInherited) {\n animations.push.apply(animations, __spreadArray([], __read(definitionList.map(function (animation) { return ({\n animation: animation,\n options: __assign({ type: type }, options),\n }); })), false));\n }\n };\n /**\n * Iterate through all animation types in reverse priority order. For each, we want to\n * detect which values it's handling and whether or not they've changed (and therefore\n * need to be animated). If any values have been removed, we want to detect those in\n * lower priority props and flag for animation.\n */\n for (var i = 0; i < numAnimationTypes; i++) {\n _loop_1(i);\n }\n allAnimatedKeys = __assign({}, encounteredKeys);\n /**\n * If there are some removed value that haven't been dealt with,\n * we need to create a new animation that falls back either to the value\n * defined in the style prop, or the last read value.\n */\n if (removedKeys.size) {\n var fallbackAnimation_1 = {};\n removedKeys.forEach(function (key) {\n var fallbackTarget = visualElement.getBaseTarget(key);\n if (fallbackTarget !== undefined) {\n fallbackAnimation_1[key] = fallbackTarget;\n }\n });\n animations.push({ animation: fallbackAnimation_1 });\n }\n var shouldAnimate = Boolean(animations.length);\n if (isInitialRender &&\n props.initial === false &&\n !visualElement.manuallyAnimateOnMount) {\n shouldAnimate = false;\n }\n isInitialRender = false;\n return shouldAnimate ? animate(animations) : Promise.resolve();\n }\n /**\n * Change whether a certain animation type is active.\n */\n function setActive(type, isActive, options) {\n var _a;\n // If the active state hasn't changed, we can safely do nothing here\n if (state[type].isActive === isActive)\n return Promise.resolve();\n // Propagate active change to children\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) { var _a; return (_a = child.animationState) === null || _a === void 0 ? void 0 : _a.setActive(type, isActive); });\n state[type].isActive = isActive;\n var animations = animateChanges(options, type);\n for (var key in state) {\n state[key].protectedKeys = {};\n }\n return animations;\n }\n return {\n isAnimated: isAnimated,\n animateChanges: animateChanges,\n setActive: setActive,\n setAnimateFunction: setAnimateFunction,\n getState: function () { return state; },\n };\n}\nfunction checkVariantsDidChange(prev, next) {\n if (typeof next === \"string\") {\n return next !== prev;\n }\n else if (isVariantLabels(next)) {\n return !shallowCompare(next, prev);\n }\n return false;\n}\nfunction createTypeState(isActive) {\n if (isActive === void 0) { isActive = false; }\n return {\n isActive: isActive,\n protectedKeys: {},\n needsAnimating: {},\n prevResolvedValues: {},\n };\n}\nfunction createState() {\n var _a;\n return _a = {},\n _a[AnimationType.Animate] = createTypeState(true),\n _a[AnimationType.InView] = createTypeState(),\n _a[AnimationType.Hover] = createTypeState(),\n _a[AnimationType.Tap] = createTypeState(),\n _a[AnimationType.Drag] = createTypeState(),\n _a[AnimationType.Focus] = createTypeState(),\n _a[AnimationType.Exit] = createTypeState(),\n _a;\n}\n\nexport { checkVariantsDidChange, createAnimationState, variantPriorityOrder };\n","/**\n * Check if the value is a zero value string like \"0px\" or \"0%\"\n */\nvar isZeroValueString = function (v) { return /^0[^.\\s]+$/.test(v); };\n\nexport { isZeroValueString };\n","import { __spreadArray, __read } from 'tslib';\nimport { color, complex } from 'style-value-types';\nimport { dimensionValueTypes } from './dimensions.mjs';\nimport { testValueType } from './test.mjs';\n\n/**\n * A list of all ValueTypes\n */\nvar valueTypes = __spreadArray(__spreadArray([], __read(dimensionValueTypes), false), [color, complex], false);\n/**\n * Tests a value against the list of ValueTypes\n */\nvar findValueType = function (v) { return valueTypes.find(testValueType(v)); };\n\nexport { findValueType };\n","import { __rest, __assign, __spreadArray, __read } from 'tslib';\nimport { complex } from 'style-value-types';\nimport { isNumericalString } from '../../utils/is-numerical-string.mjs';\nimport { isZeroValueString } from '../../utils/is-zero-value-string.mjs';\nimport { resolveFinalValueInKeyframes } from '../../utils/resolve-value.mjs';\nimport { motionValue } from '../../value/index.mjs';\nimport { getAnimatableNone } from '../dom/value-types/animatable-none.mjs';\nimport { findValueType } from '../dom/value-types/find.mjs';\nimport { resolveVariant } from './variants.mjs';\n\n/**\n * Set VisualElement's MotionValue, creating a new MotionValue for it if\n * it doesn't exist.\n */\nfunction setMotionValue(visualElement, key, value) {\n if (visualElement.hasValue(key)) {\n visualElement.getValue(key).set(value);\n }\n else {\n visualElement.addValue(key, motionValue(value));\n }\n}\nfunction setTarget(visualElement, definition) {\n var resolved = resolveVariant(visualElement, definition);\n var _a = resolved ? visualElement.makeTargetAnimatable(resolved, false) : {}, _b = _a.transitionEnd, transitionEnd = _b === void 0 ? {} : _b; _a.transition; var target = __rest(_a, [\"transitionEnd\", \"transition\"]);\n target = __assign(__assign({}, target), transitionEnd);\n for (var key in target) {\n var value = resolveFinalValueInKeyframes(target[key]);\n setMotionValue(visualElement, key, value);\n }\n}\nfunction setVariants(visualElement, variantLabels) {\n var reversedLabels = __spreadArray([], __read(variantLabels), false).reverse();\n reversedLabels.forEach(function (key) {\n var _a;\n var variant = visualElement.getVariant(key);\n variant && setTarget(visualElement, variant);\n (_a = visualElement.variantChildren) === null || _a === void 0 ? void 0 : _a.forEach(function (child) {\n setVariants(child, variantLabels);\n });\n });\n}\nfunction setValues(visualElement, definition) {\n if (Array.isArray(definition)) {\n return setVariants(visualElement, definition);\n }\n else if (typeof definition === \"string\") {\n return setVariants(visualElement, [definition]);\n }\n else {\n setTarget(visualElement, definition);\n }\n}\nfunction checkTargetForNewValues(visualElement, target, origin) {\n var _a, _b, _c;\n var _d;\n var newValueKeys = Object.keys(target).filter(function (key) { return !visualElement.hasValue(key); });\n var numNewValues = newValueKeys.length;\n if (!numNewValues)\n return;\n for (var i = 0; i < numNewValues; i++) {\n var key = newValueKeys[i];\n var targetValue = target[key];\n var value = null;\n /**\n * If the target is a series of keyframes, we can use the first value\n * in the array. If this first value is null, we'll still need to read from the DOM.\n */\n if (Array.isArray(targetValue)) {\n value = targetValue[0];\n }\n /**\n * If the target isn't keyframes, or the first keyframe was null, we need to\n * first check if an origin value was explicitly defined in the transition as \"from\",\n * if not read the value from the DOM. As an absolute fallback, take the defined target value.\n */\n if (value === null) {\n value = (_b = (_a = origin[key]) !== null && _a !== void 0 ? _a : visualElement.readValue(key)) !== null && _b !== void 0 ? _b : target[key];\n }\n /**\n * If value is still undefined or null, ignore it. Preferably this would throw,\n * but this was causing issues in Framer.\n */\n if (value === undefined || value === null)\n continue;\n if (typeof value === \"string\" &&\n (isNumericalString(value) || isZeroValueString(value))) {\n // If this is a number read as a string, ie \"0\" or \"200\", convert it to a number\n value = parseFloat(value);\n }\n else if (!findValueType(value) && complex.test(targetValue)) {\n value = getAnimatableNone(key, targetValue);\n }\n visualElement.addValue(key, motionValue(value));\n (_c = (_d = origin)[key]) !== null && _c !== void 0 ? _c : (_d[key] = value);\n visualElement.setBaseTarget(key, value);\n }\n}\nfunction getOriginFromTransition(key, transition) {\n if (!transition)\n return;\n var valueTransition = transition[key] || transition[\"default\"] || transition;\n return valueTransition.from;\n}\nfunction getOrigin(target, transition, visualElement) {\n var _a, _b;\n var origin = {};\n for (var key in target) {\n origin[key] =\n (_a = getOriginFromTransition(key, transition)) !== null && _a !== void 0 ? _a : (_b = visualElement.getValue(key)) === null || _b === void 0 ? void 0 : _b.get();\n }\n return origin;\n}\n\nexport { checkTargetForNewValues, getOrigin, getOriginFromTransition, setTarget, setValues };\n","/**\n * Check if value is a numerical string, ie a string that is purely a number eg \"100\" or \"-100.1\"\n */\nvar isNumericalString = function (v) { return /^\\-?\\d*\\.?\\d+$/.test(v); };\n\nexport { isNumericalString };\n","var AnimationType;\n(function (AnimationType) {\n AnimationType[\"Animate\"] = \"animate\";\n AnimationType[\"Hover\"] = \"whileHover\";\n AnimationType[\"Tap\"] = \"whileTap\";\n AnimationType[\"Drag\"] = \"whileDrag\";\n AnimationType[\"Focus\"] = \"whileFocus\";\n AnimationType[\"InView\"] = \"whileInView\";\n AnimationType[\"Exit\"] = \"exit\";\n})(AnimationType || (AnimationType = {}));\n\nexport { AnimationType };\n","/**\n * Decides if the supplied variable is an array of variant labels\n */\nfunction isVariantLabels(v) {\n return Array.isArray(v);\n}\n/**\n * Decides if the supplied variable is variant label\n */\nfunction isVariantLabel(v) {\n return typeof v === \"string\" || isVariantLabels(v);\n}\n/**\n * Creates an object containing the latest state of every MotionValue on a VisualElement\n */\nfunction getCurrent(visualElement) {\n var current = {};\n visualElement.forEachValue(function (value, key) { return (current[key] = value.get()); });\n return current;\n}\n/**\n * Creates an object containing the latest velocity of every MotionValue on a VisualElement\n */\nfunction getVelocity(visualElement) {\n var velocity = {};\n visualElement.forEachValue(function (value, key) { return (velocity[key] = value.getVelocity()); });\n return velocity;\n}\nfunction resolveVariantFromProps(props, definition, custom, currentValues, currentVelocity) {\n var _a;\n if (currentValues === void 0) { currentValues = {}; }\n if (currentVelocity === void 0) { currentVelocity = {}; }\n /**\n * If the variant definition is a function, resolve.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n }\n /**\n * If the variant definition is a variant label, or\n * the function returned a variant label, resolve.\n */\n if (typeof definition === \"string\") {\n definition = (_a = props.variants) === null || _a === void 0 ? void 0 : _a[definition];\n }\n /**\n * At this point we've resolved both functions and variant labels,\n * but the resolved variant label might itself have been a function.\n * If so, resolve. This can only have returned a valid target object.\n */\n if (typeof definition === \"function\") {\n definition = definition(custom !== null && custom !== void 0 ? custom : props.custom, currentValues, currentVelocity);\n }\n return definition;\n}\nfunction resolveVariant(visualElement, definition, custom) {\n var props = visualElement.getProps();\n return resolveVariantFromProps(props, definition, custom !== null && custom !== void 0 ? custom : props.custom, getCurrent(visualElement), getVelocity(visualElement));\n}\nfunction checkIfControllingVariants(props) {\n var _a;\n return (typeof ((_a = props.animate) === null || _a === void 0 ? void 0 : _a.start) === \"function\" ||\n isVariantLabel(props.initial) ||\n isVariantLabel(props.animate) ||\n isVariantLabel(props.whileHover) ||\n isVariantLabel(props.whileDrag) ||\n isVariantLabel(props.whileTap) ||\n isVariantLabel(props.whileFocus) ||\n isVariantLabel(props.exit));\n}\nfunction checkIfVariantNode(props) {\n return Boolean(checkIfControllingVariants(props) || props.variants);\n}\n\nexport { checkIfControllingVariants, checkIfVariantNode, isVariantLabel, isVariantLabels, resolveVariant, resolveVariantFromProps };\n","import { __read } from 'tslib';\n\nfunction addUniqueItem(arr, item) {\n arr.indexOf(item) === -1 && arr.push(item);\n}\nfunction removeItem(arr, item) {\n var index = arr.indexOf(item);\n index > -1 && arr.splice(index, 1);\n}\n// Adapted from array-move\nfunction moveItem(_a, fromIndex, toIndex) {\n var _b = __read(_a), arr = _b.slice(0);\n var startIndex = fromIndex < 0 ? arr.length + fromIndex : fromIndex;\n if (startIndex >= 0 && startIndex < arr.length) {\n var endIndex = toIndex < 0 ? arr.length + toIndex : toIndex;\n var _c = __read(arr.splice(fromIndex, 1), 1), item = _c[0];\n arr.splice(endIndex, 0, item);\n }\n return arr;\n}\n\nexport { addUniqueItem, moveItem, removeItem };\n","var isBrowser = typeof document !== \"undefined\";\n\nexport { isBrowser };\n","function isRefObject(ref) {\n return (typeof ref === \"object\" &&\n Object.prototype.hasOwnProperty.call(ref, \"current\"));\n}\n\nexport { isRefObject };\n","/**\n * Browser-safe usage of process\n */\nvar defaultEnvironment = \"production\";\nvar env = typeof process === \"undefined\" || process.env === undefined\n ? defaultEnvironment\n : process.env.NODE_ENV || defaultEnvironment;\n\nexport { env };\n","import { isKeyframesTarget } from '../animation/utils/is-keyframes-target.mjs';\n\nvar isCustomValue = function (v) {\n return Boolean(v && typeof v === \"object\" && v.mix && v.toValue);\n};\nvar resolveFinalValueInKeyframes = function (v) {\n // TODO maybe throw if v.length - 1 is placeholder token?\n return isKeyframesTarget(v) ? v[v.length - 1] || 0 : v;\n};\n\nexport { isCustomValue, resolveFinalValueInKeyframes };\n","import { addUniqueItem, removeItem } from './array.mjs';\n\nvar SubscriptionManager = /** @class */ (function () {\n function SubscriptionManager() {\n this.subscriptions = [];\n }\n SubscriptionManager.prototype.add = function (handler) {\n var _this = this;\n addUniqueItem(this.subscriptions, handler);\n return function () { return removeItem(_this.subscriptions, handler); };\n };\n SubscriptionManager.prototype.notify = function (a, b, c) {\n var numSubscriptions = this.subscriptions.length;\n if (!numSubscriptions)\n return;\n if (numSubscriptions === 1) {\n /**\n * If there's only a single handler we can just call it without invoking a loop.\n */\n this.subscriptions[0](a, b, c);\n }\n else {\n for (var i = 0; i < numSubscriptions; i++) {\n /**\n * Check whether the handler exists before firing as it's possible\n * the subscriptions were modified during this loop running.\n */\n var handler = this.subscriptions[i];\n handler && handler(a, b, c);\n }\n }\n };\n SubscriptionManager.prototype.getSize = function () {\n return this.subscriptions.length;\n };\n SubscriptionManager.prototype.clear = function () {\n this.subscriptions.length = 0;\n };\n return SubscriptionManager;\n}());\n\nexport { SubscriptionManager };\n","/**\n * Converts seconds to milliseconds\n *\n * @param seconds - Time in seconds.\n * @return milliseconds - Converted time in milliseconds.\n */\nvar secondsToMilliseconds = function (seconds) { return seconds * 1000; };\n\nexport { secondsToMilliseconds };\n","import { useRef } from 'react';\n\n/**\n * Creates a constant value over the lifecycle of a component.\n *\n * Even if `useMemo` is provided an empty array as its final argument, it doesn't offer\n * a guarantee that it won't re-run for performance reasons later on. By using `useConstant`\n * you can ensure that initialisers don't execute twice or more.\n */\nfunction useConstant(init) {\n var ref = useRef(null);\n if (ref.current === null) {\n ref.current = init();\n }\n return ref.current;\n}\n\nexport { useConstant };\n","import { useConstant } from './use-constant.mjs';\n\nvar counter = 0;\nvar incrementId = function () { return counter++; };\nvar useId = function () { return useConstant(incrementId); };\n/**\n * Ideally we'd use the following code to support React 18 optionally.\n * But this fairly fails in Webpack (otherwise treeshaking wouldn't work at all).\n * Need to come up with a different way of figuring this out.\n */\n// export const useId = (React as any).useId\n// ? (React as any).useId\n// : () => useConstant(incrementId)\n\nexport { useId };\n","import { useLayoutEffect, useEffect } from 'react';\nimport { isBrowser } from './is-browser.mjs';\n\nvar useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;\n\nexport { useIsomorphicLayoutEffect };\n","import { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(function () { return function () { return callback(); }; }, []);\n}\n\nexport { useUnmountEffect };\n","import sync, { getFrameData } from 'framesync';\nimport { velocityPerSecond } from 'popmotion';\nimport { SubscriptionManager } from '../utils/subscription-manager.mjs';\n\nvar isFloat = function (value) {\n return !isNaN(parseFloat(value));\n};\n/**\n * `MotionValue` is used to track the state and velocity of motion values.\n *\n * @public\n */\nvar MotionValue = /** @class */ (function () {\n /**\n * @param init - The initiating value\n * @param config - Optional configuration options\n *\n * - `transformer`: A function to transform incoming values with.\n *\n * @internal\n */\n function MotionValue(init) {\n var _this = this;\n /**\n * This will be replaced by the build step with the latest version number.\n * When MotionValues are provided to motion components, warn if versions are mixed.\n */\n this.version = \"6.5.1\";\n /**\n * Duration, in milliseconds, since last updating frame.\n *\n * @internal\n */\n this.timeDelta = 0;\n /**\n * Timestamp of the last time this `MotionValue` was updated.\n *\n * @internal\n */\n this.lastUpdated = 0;\n /**\n * Functions to notify when the `MotionValue` updates.\n *\n * @internal\n */\n this.updateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the velocity updates.\n *\n * @internal\n */\n this.velocityUpdateSubscribers = new SubscriptionManager();\n /**\n * Functions to notify when the `MotionValue` updates and `render` is set to `true`.\n *\n * @internal\n */\n this.renderSubscribers = new SubscriptionManager();\n /**\n * Tracks whether this value can output a velocity. Currently this is only true\n * if the value is numerical, but we might be able to widen the scope here and support\n * other value types.\n *\n * @internal\n */\n this.canTrackVelocity = false;\n this.updateAndNotify = function (v, render) {\n if (render === void 0) { render = true; }\n _this.prev = _this.current;\n _this.current = v;\n // Update timestamp\n var _a = getFrameData(), delta = _a.delta, timestamp = _a.timestamp;\n if (_this.lastUpdated !== timestamp) {\n _this.timeDelta = delta;\n _this.lastUpdated = timestamp;\n sync.postRender(_this.scheduleVelocityCheck);\n }\n // Update update subscribers\n if (_this.prev !== _this.current) {\n _this.updateSubscribers.notify(_this.current);\n }\n // Update velocity subscribers\n if (_this.velocityUpdateSubscribers.getSize()) {\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n // Update render subscribers\n if (render) {\n _this.renderSubscribers.notify(_this.current);\n }\n };\n /**\n * Schedule a velocity check for the next frame.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.scheduleVelocityCheck = function () { return sync.postRender(_this.velocityCheck); };\n /**\n * Updates `prev` with `current` if the value hasn't been updated this frame.\n * This ensures velocity calculations return `0`.\n *\n * This is an instanced and bound function to prevent generating a new\n * function once per frame.\n *\n * @internal\n */\n this.velocityCheck = function (_a) {\n var timestamp = _a.timestamp;\n if (timestamp !== _this.lastUpdated) {\n _this.prev = _this.current;\n _this.velocityUpdateSubscribers.notify(_this.getVelocity());\n }\n };\n this.hasAnimated = false;\n this.prev = this.current = init;\n this.canTrackVelocity = isFloat(this.current);\n }\n /**\n * Adds a function that will be notified when the `MotionValue` is updated.\n *\n * It returns a function that, when called, will cancel the subscription.\n *\n * When calling `onChange` inside a React component, it should be wrapped with the\n * `useEffect` hook. As it returns an unsubscribe function, this should be returned\n * from the `useEffect` function to ensure you don't add duplicate subscribers..\n *\n * ```jsx\n * export const MyComponent = () => {\n * const x = useMotionValue(0)\n * const y = useMotionValue(0)\n * const opacity = useMotionValue(1)\n *\n * useEffect(() => {\n * function updateOpacity() {\n * const maxXY = Math.max(x.get(), y.get())\n * const newOpacity = transform(maxXY, [0, 100], [1, 0])\n * opacity.set(newOpacity)\n * }\n *\n * const unsubscribeX = x.onChange(updateOpacity)\n * const unsubscribeY = y.onChange(updateOpacity)\n *\n * return () => {\n * unsubscribeX()\n * unsubscribeY()\n * }\n * }, [])\n *\n * return \n * }\n * ```\n *\n * @privateRemarks\n *\n * We could look into a `useOnChange` hook if the above lifecycle management proves confusing.\n *\n * ```jsx\n * useOnChange(x, () => {})\n * ```\n *\n * @param subscriber - A function that receives the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @public\n */\n MotionValue.prototype.onChange = function (subscription) {\n return this.updateSubscribers.add(subscription);\n };\n MotionValue.prototype.clearListeners = function () {\n this.updateSubscribers.clear();\n };\n /**\n * Adds a function that will be notified when the `MotionValue` requests a render.\n *\n * @param subscriber - A function that's provided the latest value.\n * @returns A function that, when called, will cancel this subscription.\n *\n * @internal\n */\n MotionValue.prototype.onRenderRequest = function (subscription) {\n // Render immediately\n subscription(this.get());\n return this.renderSubscribers.add(subscription);\n };\n /**\n * Attaches a passive effect to the `MotionValue`.\n *\n * @internal\n */\n MotionValue.prototype.attach = function (passiveEffect) {\n this.passiveEffect = passiveEffect;\n };\n /**\n * Sets the state of the `MotionValue`.\n *\n * @remarks\n *\n * ```jsx\n * const x = useMotionValue(0)\n * x.set(10)\n * ```\n *\n * @param latest - Latest value to set.\n * @param render - Whether to notify render subscribers. Defaults to `true`\n *\n * @public\n */\n MotionValue.prototype.set = function (v, render) {\n if (render === void 0) { render = true; }\n if (!render || !this.passiveEffect) {\n this.updateAndNotify(v, render);\n }\n else {\n this.passiveEffect(v, this.updateAndNotify);\n }\n };\n /**\n * Returns the latest state of `MotionValue`\n *\n * @returns - The latest state of `MotionValue`\n *\n * @public\n */\n MotionValue.prototype.get = function () {\n return this.current;\n };\n /**\n * @public\n */\n MotionValue.prototype.getPrevious = function () {\n return this.prev;\n };\n /**\n * Returns the latest velocity of `MotionValue`\n *\n * @returns - The latest velocity of `MotionValue`. Returns `0` if the state is non-numerical.\n *\n * @public\n */\n MotionValue.prototype.getVelocity = function () {\n // This could be isFloat(this.prev) && isFloat(this.current), but that would be wasteful\n return this.canTrackVelocity\n ? // These casts could be avoided if parseFloat would be typed better\n velocityPerSecond(parseFloat(this.current) -\n parseFloat(this.prev), this.timeDelta)\n : 0;\n };\n /**\n * Registers a new animation to control this `MotionValue`. Only one\n * animation can drive a `MotionValue` at one time.\n *\n * ```jsx\n * value.start()\n * ```\n *\n * @param animation - A function that starts the provided animation\n *\n * @internal\n */\n MotionValue.prototype.start = function (animation) {\n var _this = this;\n this.stop();\n return new Promise(function (resolve) {\n _this.hasAnimated = true;\n _this.stopAnimation = animation(resolve);\n }).then(function () { return _this.clearAnimation(); });\n };\n /**\n * Stop the currently active animation.\n *\n * @public\n */\n MotionValue.prototype.stop = function () {\n if (this.stopAnimation)\n this.stopAnimation();\n this.clearAnimation();\n };\n /**\n * Returns `true` if this value is currently animating.\n *\n * @public\n */\n MotionValue.prototype.isAnimating = function () {\n return !!this.stopAnimation;\n };\n MotionValue.prototype.clearAnimation = function () {\n this.stopAnimation = null;\n };\n /**\n * Destroy and clean up subscribers to this `MotionValue`.\n *\n * The `MotionValue` hooks like `useMotionValue` and `useTransform` automatically\n * handle the lifecycle of the returned `MotionValue`, so this method is only necessary if you've manually\n * created a `MotionValue` via the `motionValue` function.\n *\n * @public\n */\n MotionValue.prototype.destroy = function () {\n this.updateSubscribers.clear();\n this.renderSubscribers.clear();\n this.stop();\n };\n return MotionValue;\n}());\nfunction motionValue(init) {\n return new MotionValue(init);\n}\n\nexport { MotionValue, motionValue };\n","var isMotionValue = function (value) {\n return Boolean(value !== null && typeof value === \"object\" && value.getVelocity);\n};\n\nexport { isMotionValue };\n","import { isCustomValue } from '../../utils/resolve-value.mjs';\nimport { isMotionValue } from './is-motion-value.mjs';\n\n/**\n * If the provided value is a MotionValue, this returns the actual value, otherwise just the value itself\n *\n * TODO: Remove and move to library\n */\nfunction resolveMotionValue(value) {\n var unwrappedValue = isMotionValue(value) ? value.get() : value;\n return isCustomValue(unwrappedValue)\n ? unwrappedValue.toValue()\n : unwrappedValue;\n}\n\nexport { resolveMotionValue };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 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;\n return g = { next: verb(0), \"throw\": verb(1), \"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 = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\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;\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 }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\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 function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\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","const defaultTimestep = (1 / 60) * 1000;\nconst getCurrentTime = typeof performance !== \"undefined\"\n ? () => performance.now()\n : () => Date.now();\nconst onNextFrame = typeof window !== \"undefined\"\n ? (callback) => window.requestAnimationFrame(callback)\n : (callback) => setTimeout(() => callback(getCurrentTime()), defaultTimestep);\n\nexport { defaultTimestep, onNextFrame };\n","import { onNextFrame, defaultTimestep } from './on-next-frame.mjs';\nimport { createRenderStep } from './create-render-step.mjs';\n\nconst maxElapsed = 40;\nlet useDefaultElapsed = true;\nlet runNextFrame = false;\nlet isProcessing = false;\nconst frame = {\n delta: 0,\n timestamp: 0,\n};\nconst stepsOrder = [\n \"read\",\n \"update\",\n \"preRender\",\n \"render\",\n \"postRender\",\n];\nconst steps = stepsOrder.reduce((acc, key) => {\n acc[key] = createRenderStep(() => (runNextFrame = true));\n return acc;\n}, {});\nconst sync = stepsOrder.reduce((acc, key) => {\n const step = steps[key];\n acc[key] = (process, keepAlive = false, immediate = false) => {\n if (!runNextFrame)\n startLoop();\n return step.schedule(process, keepAlive, immediate);\n };\n return acc;\n}, {});\nconst cancelSync = stepsOrder.reduce((acc, key) => {\n acc[key] = steps[key].cancel;\n return acc;\n}, {});\nconst flushSync = stepsOrder.reduce((acc, key) => {\n acc[key] = () => steps[key].process(frame);\n return acc;\n}, {});\nconst processStep = (stepId) => steps[stepId].process(frame);\nconst processFrame = (timestamp) => {\n runNextFrame = false;\n frame.delta = useDefaultElapsed\n ? defaultTimestep\n : Math.max(Math.min(timestamp - frame.timestamp, maxElapsed), 1);\n frame.timestamp = timestamp;\n isProcessing = true;\n stepsOrder.forEach(processStep);\n isProcessing = false;\n if (runNextFrame) {\n useDefaultElapsed = false;\n onNextFrame(processFrame);\n }\n};\nconst startLoop = () => {\n runNextFrame = true;\n useDefaultElapsed = true;\n if (!isProcessing)\n onNextFrame(processFrame);\n};\nconst getFrameData = () => frame;\n\nexport default sync;\nexport { cancelSync, flushSync, getFrameData };\n","function createRenderStep(runNextFrame) {\n let toRun = [];\n let toRunNextFrame = [];\n let numToRun = 0;\n let isProcessing = false;\n let flushNextFrame = false;\n const toKeepAlive = new WeakSet();\n const step = {\n schedule: (callback, keepAlive = false, immediate = false) => {\n const addToCurrentFrame = immediate && isProcessing;\n const buffer = addToCurrentFrame ? toRun : toRunNextFrame;\n if (keepAlive)\n toKeepAlive.add(callback);\n if (buffer.indexOf(callback) === -1) {\n buffer.push(callback);\n if (addToCurrentFrame && isProcessing)\n numToRun = toRun.length;\n }\n return callback;\n },\n cancel: (callback) => {\n const index = toRunNextFrame.indexOf(callback);\n if (index !== -1)\n toRunNextFrame.splice(index, 1);\n toKeepAlive.delete(callback);\n },\n process: (frameData) => {\n if (isProcessing) {\n flushNextFrame = true;\n return;\n }\n isProcessing = true;\n [toRun, toRunNextFrame] = [toRunNextFrame, toRun];\n toRunNextFrame.length = 0;\n numToRun = toRun.length;\n if (numToRun) {\n for (let i = 0; i < numToRun; i++) {\n const callback = toRun[i];\n callback(frameData);\n if (toKeepAlive.has(callback)) {\n step.schedule(callback);\n runNextFrame();\n }\n }\n }\n isProcessing = false;\n if (flushNextFrame) {\n flushNextFrame = false;\n step.process(frameData);\n }\n },\n };\n return step;\n}\n\nexport { createRenderStep };\n","export function devAssert(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(message);\n }\n}\n","const MAX_ARRAY_LENGTH = 10;\nconst MAX_RECURSIVE_DEPTH = 2;\n/**\n * Used to print values in error messages.\n */\n\nexport function inspect(value) {\n return formatValue(value, []);\n}\n\nfunction formatValue(value, seenValues) {\n switch (typeof value) {\n case 'string':\n return JSON.stringify(value);\n\n case 'function':\n return value.name ? `[function ${value.name}]` : '[function]';\n\n case 'object':\n return formatObjectValue(value, seenValues);\n\n default:\n return String(value);\n }\n}\n\nfunction formatObjectValue(value, previouslySeenValues) {\n if (value === null) {\n return 'null';\n }\n\n if (previouslySeenValues.includes(value)) {\n return '[Circular]';\n }\n\n const seenValues = [...previouslySeenValues, value];\n\n if (isJSONable(value)) {\n const jsonValue = value.toJSON(); // check for infinite recursion\n\n if (jsonValue !== value) {\n return typeof jsonValue === 'string'\n ? jsonValue\n : formatValue(jsonValue, seenValues);\n }\n } else if (Array.isArray(value)) {\n return formatArray(value, seenValues);\n }\n\n return formatObject(value, seenValues);\n}\n\nfunction isJSONable(value) {\n return typeof value.toJSON === 'function';\n}\n\nfunction formatObject(object, seenValues) {\n const entries = Object.entries(object);\n\n if (entries.length === 0) {\n return '{}';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[' + getObjectTag(object) + ']';\n }\n\n const properties = entries.map(\n ([key, value]) => key + ': ' + formatValue(value, seenValues),\n );\n return '{ ' + properties.join(', ') + ' }';\n}\n\nfunction formatArray(array, seenValues) {\n if (array.length === 0) {\n return '[]';\n }\n\n if (seenValues.length > MAX_RECURSIVE_DEPTH) {\n return '[Array]';\n }\n\n const len = Math.min(MAX_ARRAY_LENGTH, array.length);\n const remaining = array.length - len;\n const items = [];\n\n for (let i = 0; i < len; ++i) {\n items.push(formatValue(array[i], seenValues));\n }\n\n if (remaining === 1) {\n items.push('... 1 more item');\n } else if (remaining > 1) {\n items.push(`... ${remaining} more items`);\n }\n\n return '[' + items.join(', ') + ']';\n}\n\nfunction getObjectTag(object) {\n const tag = Object.prototype.toString\n .call(object)\n .replace(/^\\[object /, '')\n .replace(/]$/, '');\n\n if (tag === 'Object' && typeof object.constructor === 'function') {\n const name = object.constructor.name;\n\n if (typeof name === 'string' && name !== '') {\n return name;\n }\n }\n\n return tag;\n}\n","/**\n * Contains a range of UTF-8 character offsets and token references that\n * identify the region of the source from which the AST derived.\n */\nexport class Location {\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The Token at which this Node begins.\n */\n\n /**\n * The Token at which this Node ends.\n */\n\n /**\n * The Source document the AST represents.\n */\n constructor(startToken, endToken, source) {\n this.start = startToken.start;\n this.end = endToken.end;\n this.startToken = startToken;\n this.endToken = endToken;\n this.source = source;\n }\n\n get [Symbol.toStringTag]() {\n return 'Location';\n }\n\n toJSON() {\n return {\n start: this.start,\n end: this.end,\n };\n }\n}\n/**\n * Represents a range of characters represented by a lexical token\n * within a Source.\n */\n\nexport class Token {\n /**\n * The kind of Token.\n */\n\n /**\n * The character offset at which this Node begins.\n */\n\n /**\n * The character offset at which this Node ends.\n */\n\n /**\n * The 1-indexed line number on which this Token appears.\n */\n\n /**\n * The 1-indexed column number at which this Token begins.\n */\n\n /**\n * For non-punctuation tokens, represents the interpreted value of the token.\n *\n * Note: is undefined for punctuation tokens, but typed as string for\n * convenience in the parser.\n */\n\n /**\n * Tokens exist as nodes in a double-linked-list amongst all tokens\n * including ignored tokens. is always the first node and \n * the last.\n */\n constructor(kind, start, end, line, column, value) {\n this.kind = kind;\n this.start = start;\n this.end = end;\n this.line = line;\n this.column = column; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n\n this.value = value;\n this.prev = null;\n this.next = null;\n }\n\n get [Symbol.toStringTag]() {\n return 'Token';\n }\n\n toJSON() {\n return {\n kind: this.kind,\n value: this.value,\n line: this.line,\n column: this.column,\n };\n }\n}\n/**\n * The list of all possible AST node types.\n */\n\n/**\n * @internal\n */\nexport const QueryDocumentKeys = {\n Name: [],\n Document: ['definitions'],\n OperationDefinition: [\n 'name',\n 'variableDefinitions',\n 'directives',\n 'selectionSet',\n ],\n VariableDefinition: ['variable', 'type', 'defaultValue', 'directives'],\n Variable: ['name'],\n SelectionSet: ['selections'],\n Field: ['alias', 'name', 'arguments', 'directives', 'selectionSet'],\n Argument: ['name', 'value'],\n FragmentSpread: ['name', 'directives'],\n InlineFragment: ['typeCondition', 'directives', 'selectionSet'],\n FragmentDefinition: [\n 'name', // Note: fragment variable definitions are deprecated and will removed in v17.0.0\n 'variableDefinitions',\n 'typeCondition',\n 'directives',\n 'selectionSet',\n ],\n IntValue: [],\n FloatValue: [],\n StringValue: [],\n BooleanValue: [],\n NullValue: [],\n EnumValue: [],\n ListValue: ['values'],\n ObjectValue: ['fields'],\n ObjectField: ['name', 'value'],\n Directive: ['name', 'arguments'],\n NamedType: ['name'],\n ListType: ['type'],\n NonNullType: ['type'],\n SchemaDefinition: ['description', 'directives', 'operationTypes'],\n OperationTypeDefinition: ['type'],\n ScalarTypeDefinition: ['description', 'name', 'directives'],\n ObjectTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n FieldDefinition: ['description', 'name', 'arguments', 'type', 'directives'],\n InputValueDefinition: [\n 'description',\n 'name',\n 'type',\n 'defaultValue',\n 'directives',\n ],\n InterfaceTypeDefinition: [\n 'description',\n 'name',\n 'interfaces',\n 'directives',\n 'fields',\n ],\n UnionTypeDefinition: ['description', 'name', 'directives', 'types'],\n EnumTypeDefinition: ['description', 'name', 'directives', 'values'],\n EnumValueDefinition: ['description', 'name', 'directives'],\n InputObjectTypeDefinition: ['description', 'name', 'directives', 'fields'],\n DirectiveDefinition: ['description', 'name', 'arguments', 'locations'],\n SchemaExtension: ['directives', 'operationTypes'],\n ScalarTypeExtension: ['name', 'directives'],\n ObjectTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n InterfaceTypeExtension: ['name', 'interfaces', 'directives', 'fields'],\n UnionTypeExtension: ['name', 'directives', 'types'],\n EnumTypeExtension: ['name', 'directives', 'values'],\n InputObjectTypeExtension: ['name', 'directives', 'fields'],\n};\nconst kindValues = new Set(Object.keys(QueryDocumentKeys));\n/**\n * @internal\n */\n\nexport function isNode(maybeNode) {\n const maybeKind =\n maybeNode === null || maybeNode === void 0 ? void 0 : maybeNode.kind;\n return typeof maybeKind === 'string' && kindValues.has(maybeKind);\n}\n/** Name */\n\nvar OperationTypeNode;\n\n(function (OperationTypeNode) {\n OperationTypeNode['QUERY'] = 'query';\n OperationTypeNode['MUTATION'] = 'mutation';\n OperationTypeNode['SUBSCRIPTION'] = 'subscription';\n})(OperationTypeNode || (OperationTypeNode = {}));\n\nexport { OperationTypeNode };\n","import { isWhiteSpace } from './characterClasses.mjs';\n/**\n * Produces the value of a block string from its parsed raw value, similar to\n * CoffeeScript's block string, Python's docstring trim or Ruby's strip_heredoc.\n *\n * This implements the GraphQL spec's BlockStringValue() static algorithm.\n *\n * @internal\n */\n\nexport function dedentBlockStringLines(lines) {\n var _firstNonEmptyLine2;\n\n let commonIndent = Number.MAX_SAFE_INTEGER;\n let firstNonEmptyLine = null;\n let lastNonEmptyLine = -1;\n\n for (let i = 0; i < lines.length; ++i) {\n var _firstNonEmptyLine;\n\n const line = lines[i];\n const indent = leadingWhitespace(line);\n\n if (indent === line.length) {\n continue; // skip empty lines\n }\n\n firstNonEmptyLine =\n (_firstNonEmptyLine = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine !== void 0\n ? _firstNonEmptyLine\n : i;\n lastNonEmptyLine = i;\n\n if (i !== 0 && indent < commonIndent) {\n commonIndent = indent;\n }\n }\n\n return lines // Remove common indentation from all lines but first.\n .map((line, i) => (i === 0 ? line : line.slice(commonIndent))) // Remove leading and trailing blank lines.\n .slice(\n (_firstNonEmptyLine2 = firstNonEmptyLine) !== null &&\n _firstNonEmptyLine2 !== void 0\n ? _firstNonEmptyLine2\n : 0,\n lastNonEmptyLine + 1,\n );\n}\n\nfunction leadingWhitespace(str) {\n let i = 0;\n\n while (i < str.length && isWhiteSpace(str.charCodeAt(i))) {\n ++i;\n }\n\n return i;\n}\n/**\n * @internal\n */\n\nexport function isPrintableAsBlockString(value) {\n if (value === '') {\n return true; // empty string is printable\n }\n\n let isEmptyLine = true;\n let hasIndent = false;\n let hasCommonIndent = true;\n let seenNonEmptyLine = false;\n\n for (let i = 0; i < value.length; ++i) {\n switch (value.codePointAt(i)) {\n case 0x0000:\n case 0x0001:\n case 0x0002:\n case 0x0003:\n case 0x0004:\n case 0x0005:\n case 0x0006:\n case 0x0007:\n case 0x0008:\n case 0x000b:\n case 0x000c:\n case 0x000e:\n case 0x000f:\n return false;\n // Has non-printable characters\n\n case 0x000d:\n // \\r\n return false;\n // Has \\r or \\r\\n which will be replaced as \\n\n\n case 10:\n // \\n\n if (isEmptyLine && !seenNonEmptyLine) {\n return false; // Has leading new line\n }\n\n seenNonEmptyLine = true;\n isEmptyLine = true;\n hasIndent = false;\n break;\n\n case 9: // \\t\n\n case 32:\n // \n hasIndent || (hasIndent = isEmptyLine);\n break;\n\n default:\n hasCommonIndent && (hasCommonIndent = hasIndent);\n isEmptyLine = false;\n }\n }\n\n if (isEmptyLine) {\n return false; // Has trailing empty lines\n }\n\n if (hasCommonIndent && seenNonEmptyLine) {\n return false; // Has internal indent\n }\n\n return true;\n}\n/**\n * Print a block string in the indented block form by adding a leading and\n * trailing blank line. However, if a block string starts with whitespace and is\n * a single-line, adding a leading blank line would strip that whitespace.\n *\n * @internal\n */\n\nexport function printBlockString(value, options) {\n const escapedValue = value.replace(/\"\"\"/g, '\\\\\"\"\"'); // Expand a block string's raw value into independent lines.\n\n const lines = escapedValue.split(/\\r\\n|[\\n\\r]/g);\n const isSingleLine = lines.length === 1; // If common indentation is found we can fix some of those cases by adding leading new line\n\n const forceLeadingNewLine =\n lines.length > 1 &&\n lines\n .slice(1)\n .every((line) => line.length === 0 || isWhiteSpace(line.charCodeAt(0))); // Trailing triple quotes just looks confusing but doesn't force trailing new line\n\n const hasTrailingTripleQuotes = escapedValue.endsWith('\\\\\"\"\"'); // Trailing quote (single or double) or slash forces trailing new line\n\n const hasTrailingQuote = value.endsWith('\"') && !hasTrailingTripleQuotes;\n const hasTrailingSlash = value.endsWith('\\\\');\n const forceTrailingNewline = hasTrailingQuote || hasTrailingSlash;\n const printAsMultipleLines =\n !(options !== null && options !== void 0 && options.minimize) && // add leading and trailing new lines only if it improves readability\n (!isSingleLine ||\n value.length > 70 ||\n forceTrailingNewline ||\n forceLeadingNewLine ||\n hasTrailingTripleQuotes);\n let result = ''; // Format a multi-line block quote to account for leading space.\n\n const skipLeadingNewLine = isSingleLine && isWhiteSpace(value.charCodeAt(0));\n\n if ((printAsMultipleLines && !skipLeadingNewLine) || forceLeadingNewLine) {\n result += '\\n';\n }\n\n result += escapedValue;\n\n if (printAsMultipleLines || forceTrailingNewline) {\n result += '\\n';\n }\n\n return '\"\"\"' + result + '\"\"\"';\n}\n","/**\n * ```\n * WhiteSpace ::\n * - \"Horizontal Tab (U+0009)\"\n * - \"Space (U+0020)\"\n * ```\n * @internal\n */\nexport function isWhiteSpace(code) {\n return code === 0x0009 || code === 0x0020;\n}\n/**\n * ```\n * Digit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * ```\n * @internal\n */\n\nexport function isDigit(code) {\n return code >= 0x0030 && code <= 0x0039;\n}\n/**\n * ```\n * Letter :: one of\n * - `A` `B` `C` `D` `E` `F` `G` `H` `I` `J` `K` `L` `M`\n * - `N` `O` `P` `Q` `R` `S` `T` `U` `V` `W` `X` `Y` `Z`\n * - `a` `b` `c` `d` `e` `f` `g` `h` `i` `j` `k` `l` `m`\n * - `n` `o` `p` `q` `r` `s` `t` `u` `v` `w` `x` `y` `z`\n * ```\n * @internal\n */\n\nexport function isLetter(code) {\n return (\n (code >= 0x0061 && code <= 0x007a) || // A-Z\n (code >= 0x0041 && code <= 0x005a) // a-z\n );\n}\n/**\n * ```\n * NameStart ::\n * - Letter\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameStart(code) {\n return isLetter(code) || code === 0x005f;\n}\n/**\n * ```\n * NameContinue ::\n * - Letter\n * - Digit\n * - `_`\n * ```\n * @internal\n */\n\nexport function isNameContinue(code) {\n return isLetter(code) || isDigit(code) || code === 0x005f;\n}\n","/**\n * The set of allowed kind values for AST nodes.\n */\nvar Kind;\n\n(function (Kind) {\n Kind['NAME'] = 'Name';\n Kind['DOCUMENT'] = 'Document';\n Kind['OPERATION_DEFINITION'] = 'OperationDefinition';\n Kind['VARIABLE_DEFINITION'] = 'VariableDefinition';\n Kind['SELECTION_SET'] = 'SelectionSet';\n Kind['FIELD'] = 'Field';\n Kind['ARGUMENT'] = 'Argument';\n Kind['FRAGMENT_SPREAD'] = 'FragmentSpread';\n Kind['INLINE_FRAGMENT'] = 'InlineFragment';\n Kind['FRAGMENT_DEFINITION'] = 'FragmentDefinition';\n Kind['VARIABLE'] = 'Variable';\n Kind['INT'] = 'IntValue';\n Kind['FLOAT'] = 'FloatValue';\n Kind['STRING'] = 'StringValue';\n Kind['BOOLEAN'] = 'BooleanValue';\n Kind['NULL'] = 'NullValue';\n Kind['ENUM'] = 'EnumValue';\n Kind['LIST'] = 'ListValue';\n Kind['OBJECT'] = 'ObjectValue';\n Kind['OBJECT_FIELD'] = 'ObjectField';\n Kind['DIRECTIVE'] = 'Directive';\n Kind['NAMED_TYPE'] = 'NamedType';\n Kind['LIST_TYPE'] = 'ListType';\n Kind['NON_NULL_TYPE'] = 'NonNullType';\n Kind['SCHEMA_DEFINITION'] = 'SchemaDefinition';\n Kind['OPERATION_TYPE_DEFINITION'] = 'OperationTypeDefinition';\n Kind['SCALAR_TYPE_DEFINITION'] = 'ScalarTypeDefinition';\n Kind['OBJECT_TYPE_DEFINITION'] = 'ObjectTypeDefinition';\n Kind['FIELD_DEFINITION'] = 'FieldDefinition';\n Kind['INPUT_VALUE_DEFINITION'] = 'InputValueDefinition';\n Kind['INTERFACE_TYPE_DEFINITION'] = 'InterfaceTypeDefinition';\n Kind['UNION_TYPE_DEFINITION'] = 'UnionTypeDefinition';\n Kind['ENUM_TYPE_DEFINITION'] = 'EnumTypeDefinition';\n Kind['ENUM_VALUE_DEFINITION'] = 'EnumValueDefinition';\n Kind['INPUT_OBJECT_TYPE_DEFINITION'] = 'InputObjectTypeDefinition';\n Kind['DIRECTIVE_DEFINITION'] = 'DirectiveDefinition';\n Kind['SCHEMA_EXTENSION'] = 'SchemaExtension';\n Kind['SCALAR_TYPE_EXTENSION'] = 'ScalarTypeExtension';\n Kind['OBJECT_TYPE_EXTENSION'] = 'ObjectTypeExtension';\n Kind['INTERFACE_TYPE_EXTENSION'] = 'InterfaceTypeExtension';\n Kind['UNION_TYPE_EXTENSION'] = 'UnionTypeExtension';\n Kind['ENUM_TYPE_EXTENSION'] = 'EnumTypeExtension';\n Kind['INPUT_OBJECT_TYPE_EXTENSION'] = 'InputObjectTypeExtension';\n})(Kind || (Kind = {}));\n\nexport { Kind };\n/**\n * The enum type representing the possible kind values of AST nodes.\n *\n * @deprecated Please use `Kind`. Will be remove in v17.\n */\n","export function invariant(condition, message) {\n const booleanCondition = Boolean(condition);\n\n if (!booleanCondition) {\n throw new Error(\n message != null ? message : 'Unexpected invariant triggered.',\n );\n }\n}\n","import { invariant } from '../jsutils/invariant.mjs';\nconst LineRegExp = /\\r\\n|[\\n\\r]/g;\n/**\n * Represents a location in a Source.\n */\n\n/**\n * Takes a Source and a UTF-8 character offset, and returns the corresponding\n * line and column as a SourceLocation.\n */\nexport function getLocation(source, position) {\n let lastLineStart = 0;\n let line = 1;\n\n for (const match of source.body.matchAll(LineRegExp)) {\n typeof match.index === 'number' || invariant(false);\n\n if (match.index >= position) {\n break;\n }\n\n lastLineStart = match.index + match[0].length;\n line += 1;\n }\n\n return {\n line,\n column: position + 1 - lastLineStart,\n };\n}\n","import { getLocation } from './location.mjs';\n\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\nexport function printLocation(location) {\n return printSourceLocation(\n location.source,\n getLocation(location.source, location.start),\n );\n}\n/**\n * Render a helpful description of the location in the GraphQL Source document.\n */\n\nexport function printSourceLocation(source, sourceLocation) {\n const firstLineColumnOffset = source.locationOffset.column - 1;\n const body = ''.padStart(firstLineColumnOffset) + source.body;\n const lineIndex = sourceLocation.line - 1;\n const lineOffset = source.locationOffset.line - 1;\n const lineNum = sourceLocation.line + lineOffset;\n const columnOffset = sourceLocation.line === 1 ? firstLineColumnOffset : 0;\n const columnNum = sourceLocation.column + columnOffset;\n const locationStr = `${source.name}:${lineNum}:${columnNum}\\n`;\n const lines = body.split(/\\r\\n|[\\n\\r]/g);\n const locationLine = lines[lineIndex]; // Special case for minified documents\n\n if (locationLine.length > 120) {\n const subLineIndex = Math.floor(columnNum / 80);\n const subLineColumnNum = columnNum % 80;\n const subLines = [];\n\n for (let i = 0; i < locationLine.length; i += 80) {\n subLines.push(locationLine.slice(i, i + 80));\n }\n\n return (\n locationStr +\n printPrefixedLines([\n [`${lineNum} |`, subLines[0]],\n ...subLines.slice(1, subLineIndex + 1).map((subLine) => ['|', subLine]),\n ['|', '^'.padStart(subLineColumnNum)],\n ['|', subLines[subLineIndex + 1]],\n ])\n );\n }\n\n return (\n locationStr +\n printPrefixedLines([\n // Lines specified like this: [\"prefix\", \"string\"],\n [`${lineNum - 1} |`, lines[lineIndex - 1]],\n [`${lineNum} |`, locationLine],\n ['|', '^'.padStart(columnNum)],\n [`${lineNum + 1} |`, lines[lineIndex + 1]],\n ])\n );\n}\n\nfunction printPrefixedLines(lines) {\n const existingLines = lines.filter(([_, line]) => line !== undefined);\n const padLen = Math.max(...existingLines.map(([prefix]) => prefix.length));\n return existingLines\n .map(([prefix, line]) => prefix.padStart(padLen) + (line ? ' ' + line : ''))\n .join('\\n');\n}\n","import { isObjectLike } from '../jsutils/isObjectLike.mjs';\nimport { getLocation } from '../language/location.mjs';\nimport {\n printLocation,\n printSourceLocation,\n} from '../language/printLocation.mjs';\n\nfunction toNormalizedOptions(args) {\n const firstArg = args[0];\n\n if (firstArg == null || 'kind' in firstArg || 'length' in firstArg) {\n return {\n nodes: firstArg,\n source: args[1],\n positions: args[2],\n path: args[3],\n originalError: args[4],\n extensions: args[5],\n };\n }\n\n return firstArg;\n}\n/**\n * A GraphQLError describes an Error found during the parse, validate, or\n * execute phases of performing a GraphQL operation. In addition to a message\n * and stack trace, it also includes information about the locations in a\n * GraphQL document and/or execution result that correspond to the Error.\n */\n\nexport class GraphQLError extends Error {\n /**\n * An array of `{ line, column }` locations within the source GraphQL document\n * which correspond to this error.\n *\n * Errors during validation often contain multiple locations, for example to\n * point out two things with the same name. Errors during execution include a\n * single location, the field which produced the error.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array describing the JSON-path into the execution response which\n * corresponds to this error. Only included for errors during execution.\n *\n * Enumerable, and appears in the result of JSON.stringify().\n */\n\n /**\n * An array of GraphQL AST Nodes corresponding to this error.\n */\n\n /**\n * The source GraphQL document for the first location of this error.\n *\n * Note that if this Error represents more than one node, the source may not\n * represent nodes after the first node.\n */\n\n /**\n * An array of character offsets within the source GraphQL document\n * which correspond to this error.\n */\n\n /**\n * The original error thrown from a field resolver during execution.\n */\n\n /**\n * Extension fields to add to the formatted error.\n */\n\n /**\n * @deprecated Please use the `GraphQLErrorOptions` constructor overload instead.\n */\n constructor(message, ...rawArgs) {\n var _this$nodes, _nodeLocations$, _ref;\n\n const { nodes, source, positions, path, originalError, extensions } =\n toNormalizedOptions(rawArgs);\n super(message);\n this.name = 'GraphQLError';\n this.path = path !== null && path !== void 0 ? path : undefined;\n this.originalError =\n originalError !== null && originalError !== void 0\n ? originalError\n : undefined; // Compute list of blame nodes.\n\n this.nodes = undefinedIfEmpty(\n Array.isArray(nodes) ? nodes : nodes ? [nodes] : undefined,\n );\n const nodeLocations = undefinedIfEmpty(\n (_this$nodes = this.nodes) === null || _this$nodes === void 0\n ? void 0\n : _this$nodes.map((node) => node.loc).filter((loc) => loc != null),\n ); // Compute locations in the source for the given nodes/positions.\n\n this.source =\n source !== null && source !== void 0\n ? source\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : (_nodeLocations$ = nodeLocations[0]) === null ||\n _nodeLocations$ === void 0\n ? void 0\n : _nodeLocations$.source;\n this.positions =\n positions !== null && positions !== void 0\n ? positions\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => loc.start);\n this.locations =\n positions && source\n ? positions.map((pos) => getLocation(source, pos))\n : nodeLocations === null || nodeLocations === void 0\n ? void 0\n : nodeLocations.map((loc) => getLocation(loc.source, loc.start));\n const originalExtensions = isObjectLike(\n originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions,\n )\n ? originalError === null || originalError === void 0\n ? void 0\n : originalError.extensions\n : undefined;\n this.extensions =\n (_ref =\n extensions !== null && extensions !== void 0\n ? extensions\n : originalExtensions) !== null && _ref !== void 0\n ? _ref\n : Object.create(null); // Only properties prescribed by the spec should be enumerable.\n // Keep the rest as non-enumerable.\n\n Object.defineProperties(this, {\n message: {\n writable: true,\n enumerable: true,\n },\n name: {\n enumerable: false,\n },\n nodes: {\n enumerable: false,\n },\n source: {\n enumerable: false,\n },\n positions: {\n enumerable: false,\n },\n originalError: {\n enumerable: false,\n },\n }); // Include (non-enumerable) stack trace.\n\n /* c8 ignore start */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n\n if (\n originalError !== null &&\n originalError !== void 0 &&\n originalError.stack\n ) {\n Object.defineProperty(this, 'stack', {\n value: originalError.stack,\n writable: true,\n configurable: true,\n });\n } else if (Error.captureStackTrace) {\n Error.captureStackTrace(this, GraphQLError);\n } else {\n Object.defineProperty(this, 'stack', {\n value: Error().stack,\n writable: true,\n configurable: true,\n });\n }\n /* c8 ignore stop */\n }\n\n get [Symbol.toStringTag]() {\n return 'GraphQLError';\n }\n\n toString() {\n let output = this.message;\n\n if (this.nodes) {\n for (const node of this.nodes) {\n if (node.loc) {\n output += '\\n\\n' + printLocation(node.loc);\n }\n }\n } else if (this.source && this.locations) {\n for (const location of this.locations) {\n output += '\\n\\n' + printSourceLocation(this.source, location);\n }\n }\n\n return output;\n }\n\n toJSON() {\n const formattedError = {\n message: this.message,\n };\n\n if (this.locations != null) {\n formattedError.locations = this.locations;\n }\n\n if (this.path != null) {\n formattedError.path = this.path;\n }\n\n if (this.extensions != null && Object.keys(this.extensions).length > 0) {\n formattedError.extensions = this.extensions;\n }\n\n return formattedError;\n }\n}\n\nfunction undefinedIfEmpty(array) {\n return array === undefined || array.length === 0 ? undefined : array;\n}\n/**\n * See: https://spec.graphql.org/draft/#sec-Errors\n */\n\n/**\n * Prints a GraphQLError to a string, representing useful location information\n * about the error's position in the source.\n *\n * @deprecated Please use `error.toString` instead. Will be removed in v17\n */\nexport function printError(error) {\n return error.toString();\n}\n/**\n * Given a GraphQLError, format it according to the rules described by the\n * Response Format, Errors section of the GraphQL Specification.\n *\n * @deprecated Please use `error.toJSON` instead. Will be removed in v17\n */\n\nexport function formatError(error) {\n return error.toJSON();\n}\n","/**\n * Return true if `value` is object-like. A value is object-like if it's not\n * `null` and has a `typeof` result of \"object\".\n */\nexport function isObjectLike(value) {\n return typeof value == 'object' && value !== null;\n}\n","import { GraphQLError } from './GraphQLError.mjs';\n/**\n * Produces a GraphQLError representing a syntax error, containing useful\n * descriptive information about the syntax error's position in the source.\n */\n\nexport function syntaxError(source, position, description) {\n return new GraphQLError(`Syntax Error: ${description}`, {\n source,\n positions: [position],\n });\n}\n","/**\n * The set of allowed directive location values.\n */\nvar DirectiveLocation;\n\n(function (DirectiveLocation) {\n DirectiveLocation['QUERY'] = 'QUERY';\n DirectiveLocation['MUTATION'] = 'MUTATION';\n DirectiveLocation['SUBSCRIPTION'] = 'SUBSCRIPTION';\n DirectiveLocation['FIELD'] = 'FIELD';\n DirectiveLocation['FRAGMENT_DEFINITION'] = 'FRAGMENT_DEFINITION';\n DirectiveLocation['FRAGMENT_SPREAD'] = 'FRAGMENT_SPREAD';\n DirectiveLocation['INLINE_FRAGMENT'] = 'INLINE_FRAGMENT';\n DirectiveLocation['VARIABLE_DEFINITION'] = 'VARIABLE_DEFINITION';\n DirectiveLocation['SCHEMA'] = 'SCHEMA';\n DirectiveLocation['SCALAR'] = 'SCALAR';\n DirectiveLocation['OBJECT'] = 'OBJECT';\n DirectiveLocation['FIELD_DEFINITION'] = 'FIELD_DEFINITION';\n DirectiveLocation['ARGUMENT_DEFINITION'] = 'ARGUMENT_DEFINITION';\n DirectiveLocation['INTERFACE'] = 'INTERFACE';\n DirectiveLocation['UNION'] = 'UNION';\n DirectiveLocation['ENUM'] = 'ENUM';\n DirectiveLocation['ENUM_VALUE'] = 'ENUM_VALUE';\n DirectiveLocation['INPUT_OBJECT'] = 'INPUT_OBJECT';\n DirectiveLocation['INPUT_FIELD_DEFINITION'] = 'INPUT_FIELD_DEFINITION';\n})(DirectiveLocation || (DirectiveLocation = {}));\n\nexport { DirectiveLocation };\n/**\n * The enum type representing the directive location values.\n *\n * @deprecated Please use `DirectiveLocation`. Will be remove in v17.\n */\n","/**\n * An exported enum describing the different kinds of tokens that the\n * lexer emits.\n */\nvar TokenKind;\n\n(function (TokenKind) {\n TokenKind['SOF'] = '';\n TokenKind['EOF'] = '';\n TokenKind['BANG'] = '!';\n TokenKind['DOLLAR'] = '$';\n TokenKind['AMP'] = '&';\n TokenKind['PAREN_L'] = '(';\n TokenKind['PAREN_R'] = ')';\n TokenKind['SPREAD'] = '...';\n TokenKind['COLON'] = ':';\n TokenKind['EQUALS'] = '=';\n TokenKind['AT'] = '@';\n TokenKind['BRACKET_L'] = '[';\n TokenKind['BRACKET_R'] = ']';\n TokenKind['BRACE_L'] = '{';\n TokenKind['PIPE'] = '|';\n TokenKind['BRACE_R'] = '}';\n TokenKind['NAME'] = 'Name';\n TokenKind['INT'] = 'Int';\n TokenKind['FLOAT'] = 'Float';\n TokenKind['STRING'] = 'String';\n TokenKind['BLOCK_STRING'] = 'BlockString';\n TokenKind['COMMENT'] = 'Comment';\n})(TokenKind || (TokenKind = {}));\n\nexport { TokenKind };\n/**\n * The enum type representing the token kinds values.\n *\n * @deprecated Please use `TokenKind`. Will be remove in v17.\n */\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Token } from './ast.mjs';\nimport { dedentBlockStringLines } from './blockString.mjs';\nimport { isDigit, isNameContinue, isNameStart } from './characterClasses.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Given a Source object, creates a Lexer for that source.\n * A Lexer is a stateful stream generator in that every time\n * it is advanced, it returns the next token in the Source. Assuming the\n * source lexes, the final Token emitted by the lexer will be of kind\n * EOF, after which the lexer will repeatedly return the same EOF token\n * whenever called.\n */\n\nexport class Lexer {\n /**\n * The previously focused non-ignored token.\n */\n\n /**\n * The currently focused non-ignored token.\n */\n\n /**\n * The (1-indexed) line containing the current token.\n */\n\n /**\n * The character offset at which the current line begins.\n */\n constructor(source) {\n const startOfFileToken = new Token(TokenKind.SOF, 0, 0, 0, 0);\n this.source = source;\n this.lastToken = startOfFileToken;\n this.token = startOfFileToken;\n this.line = 1;\n this.lineStart = 0;\n }\n\n get [Symbol.toStringTag]() {\n return 'Lexer';\n }\n /**\n * Advances the token stream to the next non-ignored token.\n */\n\n advance() {\n this.lastToken = this.token;\n const token = (this.token = this.lookahead());\n return token;\n }\n /**\n * Looks ahead and returns the next non-ignored token, but does not change\n * the state of Lexer.\n */\n\n lookahead() {\n let token = this.token;\n\n if (token.kind !== TokenKind.EOF) {\n do {\n if (token.next) {\n token = token.next;\n } else {\n // Read the next token and form a link in the token linked-list.\n const nextToken = readNextToken(this, token.end); // @ts-expect-error next is only mutable during parsing.\n\n token.next = nextToken; // @ts-expect-error prev is only mutable during parsing.\n\n nextToken.prev = token;\n token = nextToken;\n }\n } while (token.kind === TokenKind.COMMENT);\n }\n\n return token;\n }\n}\n/**\n * @internal\n */\n\nexport function isPunctuatorTokenKind(kind) {\n return (\n kind === TokenKind.BANG ||\n kind === TokenKind.DOLLAR ||\n kind === TokenKind.AMP ||\n kind === TokenKind.PAREN_L ||\n kind === TokenKind.PAREN_R ||\n kind === TokenKind.SPREAD ||\n kind === TokenKind.COLON ||\n kind === TokenKind.EQUALS ||\n kind === TokenKind.AT ||\n kind === TokenKind.BRACKET_L ||\n kind === TokenKind.BRACKET_R ||\n kind === TokenKind.BRACE_L ||\n kind === TokenKind.PIPE ||\n kind === TokenKind.BRACE_R\n );\n}\n/**\n * A Unicode scalar value is any Unicode code point except surrogate code\n * points. In other words, the inclusive ranges of values 0x0000 to 0xD7FF and\n * 0xE000 to 0x10FFFF.\n *\n * SourceCharacter ::\n * - \"Any Unicode scalar value\"\n */\n\nfunction isUnicodeScalarValue(code) {\n return (\n (code >= 0x0000 && code <= 0xd7ff) || (code >= 0xe000 && code <= 0x10ffff)\n );\n}\n/**\n * The GraphQL specification defines source text as a sequence of unicode scalar\n * values (which Unicode defines to exclude surrogate code points). However\n * JavaScript defines strings as a sequence of UTF-16 code units which may\n * include surrogates. A surrogate pair is a valid source character as it\n * encodes a supplementary code point (above U+FFFF), but unpaired surrogate\n * code points are not valid source characters.\n */\n\nfunction isSupplementaryCodePoint(body, location) {\n return (\n isLeadingSurrogate(body.charCodeAt(location)) &&\n isTrailingSurrogate(body.charCodeAt(location + 1))\n );\n}\n\nfunction isLeadingSurrogate(code) {\n return code >= 0xd800 && code <= 0xdbff;\n}\n\nfunction isTrailingSurrogate(code) {\n return code >= 0xdc00 && code <= 0xdfff;\n}\n/**\n * Prints the code point (or end of file reference) at a given location in a\n * source for use in error messages.\n *\n * Printable ASCII is printed quoted, while other points are printed in Unicode\n * code point form (ie. U+1234).\n */\n\nfunction printCodePointAt(lexer, location) {\n const code = lexer.source.body.codePointAt(location);\n\n if (code === undefined) {\n return TokenKind.EOF;\n } else if (code >= 0x0020 && code <= 0x007e) {\n // Printable ASCII\n const char = String.fromCodePoint(code);\n return char === '\"' ? \"'\\\"'\" : `\"${char}\"`;\n } // Unicode code point\n\n return 'U+' + code.toString(16).toUpperCase().padStart(4, '0');\n}\n/**\n * Create a token with line and column location information.\n */\n\nfunction createToken(lexer, kind, start, end, value) {\n const line = lexer.line;\n const col = 1 + start - lexer.lineStart;\n return new Token(kind, start, end, line, col, value);\n}\n/**\n * Gets the next token from the source starting at the given position.\n *\n * This skips over whitespace until it finds the next lexable token, then lexes\n * punctuators immediately or calls the appropriate helper function for more\n * complicated tokens.\n */\n\nfunction readNextToken(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // SourceCharacter\n\n switch (code) {\n // Ignored ::\n // - UnicodeBOM\n // - WhiteSpace\n // - LineTerminator\n // - Comment\n // - Comma\n //\n // UnicodeBOM :: \"Byte Order Mark (U+FEFF)\"\n //\n // WhiteSpace ::\n // - \"Horizontal Tab (U+0009)\"\n // - \"Space (U+0020)\"\n //\n // Comma :: ,\n case 0xfeff: // \n\n case 0x0009: // \\t\n\n case 0x0020: // \n\n case 0x002c:\n // ,\n ++position;\n continue;\n // LineTerminator ::\n // - \"New Line (U+000A)\"\n // - \"Carriage Return (U+000D)\" [lookahead != \"New Line (U+000A)\"]\n // - \"Carriage Return (U+000D)\" \"New Line (U+000A)\"\n\n case 0x000a:\n // \\n\n ++position;\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n\n case 0x000d:\n // \\r\n if (body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n ++lexer.line;\n lexer.lineStart = position;\n continue;\n // Comment\n\n case 0x0023:\n // #\n return readComment(lexer, position);\n // Token ::\n // - Punctuator\n // - Name\n // - IntValue\n // - FloatValue\n // - StringValue\n //\n // Punctuator :: one of ! $ & ( ) ... : = @ [ ] { | }\n\n case 0x0021:\n // !\n return createToken(lexer, TokenKind.BANG, position, position + 1);\n\n case 0x0024:\n // $\n return createToken(lexer, TokenKind.DOLLAR, position, position + 1);\n\n case 0x0026:\n // &\n return createToken(lexer, TokenKind.AMP, position, position + 1);\n\n case 0x0028:\n // (\n return createToken(lexer, TokenKind.PAREN_L, position, position + 1);\n\n case 0x0029:\n // )\n return createToken(lexer, TokenKind.PAREN_R, position, position + 1);\n\n case 0x002e:\n // .\n if (\n body.charCodeAt(position + 1) === 0x002e &&\n body.charCodeAt(position + 2) === 0x002e\n ) {\n return createToken(lexer, TokenKind.SPREAD, position, position + 3);\n }\n\n break;\n\n case 0x003a:\n // :\n return createToken(lexer, TokenKind.COLON, position, position + 1);\n\n case 0x003d:\n // =\n return createToken(lexer, TokenKind.EQUALS, position, position + 1);\n\n case 0x0040:\n // @\n return createToken(lexer, TokenKind.AT, position, position + 1);\n\n case 0x005b:\n // [\n return createToken(lexer, TokenKind.BRACKET_L, position, position + 1);\n\n case 0x005d:\n // ]\n return createToken(lexer, TokenKind.BRACKET_R, position, position + 1);\n\n case 0x007b:\n // {\n return createToken(lexer, TokenKind.BRACE_L, position, position + 1);\n\n case 0x007c:\n // |\n return createToken(lexer, TokenKind.PIPE, position, position + 1);\n\n case 0x007d:\n // }\n return createToken(lexer, TokenKind.BRACE_R, position, position + 1);\n // StringValue\n\n case 0x0022:\n // \"\n if (\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n return readBlockString(lexer, position);\n }\n\n return readString(lexer, position);\n } // IntValue | FloatValue (Digit | -)\n\n if (isDigit(code) || code === 0x002d) {\n return readNumber(lexer, position, code);\n } // Name\n\n if (isNameStart(code)) {\n return readName(lexer, position);\n }\n\n throw syntaxError(\n lexer.source,\n position,\n code === 0x0027\n ? 'Unexpected single quote character (\\'), did you mean to use a double quote (\")?'\n : isUnicodeScalarValue(code) || isSupplementaryCodePoint(body, position)\n ? `Unexpected character: ${printCodePointAt(lexer, position)}.`\n : `Invalid character: ${printCodePointAt(lexer, position)}.`,\n );\n }\n\n return createToken(lexer, TokenKind.EOF, bodyLength, bodyLength);\n}\n/**\n * Reads a comment token from the source file.\n *\n * ```\n * Comment :: # CommentChar* [lookahead != CommentChar]\n *\n * CommentChar :: SourceCharacter but not LineTerminator\n * ```\n */\n\nfunction readComment(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.COMMENT,\n start,\n position,\n body.slice(start + 1, position),\n );\n}\n/**\n * Reads a number token from the source file, either a FloatValue or an IntValue\n * depending on whether a FractionalPart or ExponentPart is encountered.\n *\n * ```\n * IntValue :: IntegerPart [lookahead != {Digit, `.`, NameStart}]\n *\n * IntegerPart ::\n * - NegativeSign? 0\n * - NegativeSign? NonZeroDigit Digit*\n *\n * NegativeSign :: -\n *\n * NonZeroDigit :: Digit but not `0`\n *\n * FloatValue ::\n * - IntegerPart FractionalPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart FractionalPart [lookahead != {Digit, `.`, NameStart}]\n * - IntegerPart ExponentPart [lookahead != {Digit, `.`, NameStart}]\n *\n * FractionalPart :: . Digit+\n *\n * ExponentPart :: ExponentIndicator Sign? Digit+\n *\n * ExponentIndicator :: one of `e` `E`\n *\n * Sign :: one of + -\n * ```\n */\n\nfunction readNumber(lexer, start, firstCode) {\n const body = lexer.source.body;\n let position = start;\n let code = firstCode;\n let isFloat = false; // NegativeSign (-)\n\n if (code === 0x002d) {\n code = body.charCodeAt(++position);\n } // Zero (0)\n\n if (code === 0x0030) {\n code = body.charCodeAt(++position);\n\n if (isDigit(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, unexpected digit after 0: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n } else {\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Full stop (.)\n\n if (code === 0x002e) {\n isFloat = true;\n code = body.charCodeAt(++position);\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // E e\n\n if (code === 0x0045 || code === 0x0065) {\n isFloat = true;\n code = body.charCodeAt(++position); // + -\n\n if (code === 0x002b || code === 0x002d) {\n code = body.charCodeAt(++position);\n }\n\n position = readDigits(lexer, position, code);\n code = body.charCodeAt(position);\n } // Numbers cannot be followed by . or NameStart\n\n if (code === 0x002e || isNameStart(code)) {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n\n return createToken(\n lexer,\n isFloat ? TokenKind.FLOAT : TokenKind.INT,\n start,\n position,\n body.slice(start, position),\n );\n}\n/**\n * Returns the new position in the source after reading one or more digits.\n */\n\nfunction readDigits(lexer, start, firstCode) {\n if (!isDigit(firstCode)) {\n throw syntaxError(\n lexer.source,\n start,\n `Invalid number, expected digit but got: ${printCodePointAt(\n lexer,\n start,\n )}.`,\n );\n }\n\n const body = lexer.source.body;\n let position = start + 1; // +1 to skip first firstCode\n\n while (isDigit(body.charCodeAt(position))) {\n ++position;\n }\n\n return position;\n}\n/**\n * Reads a single-quote string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"` [lookahead != `\"`]\n * - `\"` StringCharacter+ `\"`\n *\n * StringCharacter ::\n * - SourceCharacter but not `\"` or `\\` or LineTerminator\n * - `\\u` EscapedUnicode\n * - `\\` EscapedCharacter\n *\n * EscapedUnicode ::\n * - `{` HexDigit+ `}`\n * - HexDigit HexDigit HexDigit HexDigit\n *\n * EscapedCharacter :: one of `\"` `\\` `/` `b` `f` `n` `r` `t`\n * ```\n */\n\nfunction readString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n let chunkStart = position;\n let value = '';\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Quote (\")\n\n if (code === 0x0022) {\n value += body.slice(chunkStart, position);\n return createToken(lexer, TokenKind.STRING, start, position + 1, value);\n } // Escape Sequence (\\)\n\n if (code === 0x005c) {\n value += body.slice(chunkStart, position);\n const escape =\n body.charCodeAt(position + 1) === 0x0075 // u\n ? body.charCodeAt(position + 2) === 0x007b // {\n ? readEscapedUnicodeVariableWidth(lexer, position)\n : readEscapedUnicodeFixedWidth(lexer, position)\n : readEscapedCharacter(lexer, position);\n value += escape.value;\n position += escape.size;\n chunkStart = position;\n continue;\n } // LineTerminator (\\n | \\r)\n\n if (code === 0x000a || code === 0x000d) {\n break;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n} // The string value and lexed size of an escape sequence.\n\nfunction readEscapedUnicodeVariableWidth(lexer, position) {\n const body = lexer.source.body;\n let point = 0;\n let size = 3; // Cannot be larger than 12 chars (\\u{00000000}).\n\n while (size < 12) {\n const code = body.charCodeAt(position + size++); // Closing Brace (})\n\n if (code === 0x007d) {\n // Must be at least 5 chars (\\u{0}) and encode a Unicode scalar value.\n if (size < 5 || !isUnicodeScalarValue(point)) {\n break;\n }\n\n return {\n value: String.fromCodePoint(point),\n size,\n };\n } // Append this hex digit to the code point.\n\n point = (point << 4) | readHexDigit(code);\n\n if (point < 0) {\n break;\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(\n position,\n position + size,\n )}\".`,\n );\n}\n\nfunction readEscapedUnicodeFixedWidth(lexer, position) {\n const body = lexer.source.body;\n const code = read16BitHexCode(body, position + 2);\n\n if (isUnicodeScalarValue(code)) {\n return {\n value: String.fromCodePoint(code),\n size: 6,\n };\n } // GraphQL allows JSON-style surrogate pair escape sequences, but only when\n // a valid pair is formed.\n\n if (isLeadingSurrogate(code)) {\n // \\u\n if (\n body.charCodeAt(position + 6) === 0x005c &&\n body.charCodeAt(position + 7) === 0x0075\n ) {\n const trailingCode = read16BitHexCode(body, position + 8);\n\n if (isTrailingSurrogate(trailingCode)) {\n // JavaScript defines strings as a sequence of UTF-16 code units and\n // encodes Unicode code points above U+FFFF using a surrogate pair of\n // code units. Since this is a surrogate pair escape sequence, just\n // include both codes into the JavaScript string value. Had JavaScript\n // not been internally based on UTF-16, then this surrogate pair would\n // be decoded to retrieve the supplementary code point.\n return {\n value: String.fromCodePoint(code, trailingCode),\n size: 12,\n };\n }\n }\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid Unicode escape sequence: \"${body.slice(position, position + 6)}\".`,\n );\n}\n/**\n * Reads four hexadecimal characters and returns the positive integer that 16bit\n * hexadecimal string represents. For example, \"000f\" will return 15, and \"dead\"\n * will return 57005.\n *\n * Returns a negative number if any char was not a valid hexadecimal digit.\n */\n\nfunction read16BitHexCode(body, position) {\n // readHexDigit() returns -1 on error. ORing a negative value with any other\n // value always produces a negative value.\n return (\n (readHexDigit(body.charCodeAt(position)) << 12) |\n (readHexDigit(body.charCodeAt(position + 1)) << 8) |\n (readHexDigit(body.charCodeAt(position + 2)) << 4) |\n readHexDigit(body.charCodeAt(position + 3))\n );\n}\n/**\n * Reads a hexadecimal character and returns its positive integer value (0-15).\n *\n * '0' becomes 0, '9' becomes 9\n * 'A' becomes 10, 'F' becomes 15\n * 'a' becomes 10, 'f' becomes 15\n *\n * Returns -1 if the provided character code was not a valid hexadecimal digit.\n *\n * HexDigit :: one of\n * - `0` `1` `2` `3` `4` `5` `6` `7` `8` `9`\n * - `A` `B` `C` `D` `E` `F`\n * - `a` `b` `c` `d` `e` `f`\n */\n\nfunction readHexDigit(code) {\n return code >= 0x0030 && code <= 0x0039 // 0-9\n ? code - 0x0030\n : code >= 0x0041 && code <= 0x0046 // A-F\n ? code - 0x0037\n : code >= 0x0061 && code <= 0x0066 // a-f\n ? code - 0x0057\n : -1;\n}\n/**\n * | Escaped Character | Code Point | Character Name |\n * | ----------------- | ---------- | ---------------------------- |\n * | `\"` | U+0022 | double quote |\n * | `\\` | U+005C | reverse solidus (back slash) |\n * | `/` | U+002F | solidus (forward slash) |\n * | `b` | U+0008 | backspace |\n * | `f` | U+000C | form feed |\n * | `n` | U+000A | line feed (new line) |\n * | `r` | U+000D | carriage return |\n * | `t` | U+0009 | horizontal tab |\n */\n\nfunction readEscapedCharacter(lexer, position) {\n const body = lexer.source.body;\n const code = body.charCodeAt(position + 1);\n\n switch (code) {\n case 0x0022:\n // \"\n return {\n value: '\\u0022',\n size: 2,\n };\n\n case 0x005c:\n // \\\n return {\n value: '\\u005c',\n size: 2,\n };\n\n case 0x002f:\n // /\n return {\n value: '\\u002f',\n size: 2,\n };\n\n case 0x0062:\n // b\n return {\n value: '\\u0008',\n size: 2,\n };\n\n case 0x0066:\n // f\n return {\n value: '\\u000c',\n size: 2,\n };\n\n case 0x006e:\n // n\n return {\n value: '\\u000a',\n size: 2,\n };\n\n case 0x0072:\n // r\n return {\n value: '\\u000d',\n size: 2,\n };\n\n case 0x0074:\n // t\n return {\n value: '\\u0009',\n size: 2,\n };\n }\n\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character escape sequence: \"${body.slice(\n position,\n position + 2,\n )}\".`,\n );\n}\n/**\n * Reads a block string token from the source file.\n *\n * ```\n * StringValue ::\n * - `\"\"\"` BlockStringCharacter* `\"\"\"`\n *\n * BlockStringCharacter ::\n * - SourceCharacter but not `\"\"\"` or `\\\"\"\"`\n * - `\\\"\"\"`\n * ```\n */\n\nfunction readBlockString(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let lineStart = lexer.lineStart;\n let position = start + 3;\n let chunkStart = position;\n let currentLine = '';\n const blockLines = [];\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position); // Closing Triple-Quote (\"\"\")\n\n if (\n code === 0x0022 &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n const token = createToken(\n lexer,\n TokenKind.BLOCK_STRING,\n start,\n position + 3, // Return a string of the lines joined with U+000A.\n dedentBlockStringLines(blockLines).join('\\n'),\n );\n lexer.line += blockLines.length - 1;\n lexer.lineStart = lineStart;\n return token;\n } // Escaped Triple-Quote (\\\"\"\")\n\n if (\n code === 0x005c &&\n body.charCodeAt(position + 1) === 0x0022 &&\n body.charCodeAt(position + 2) === 0x0022 &&\n body.charCodeAt(position + 3) === 0x0022\n ) {\n currentLine += body.slice(chunkStart, position);\n chunkStart = position + 1; // skip only slash\n\n position += 4;\n continue;\n } // LineTerminator\n\n if (code === 0x000a || code === 0x000d) {\n currentLine += body.slice(chunkStart, position);\n blockLines.push(currentLine);\n\n if (code === 0x000d && body.charCodeAt(position + 1) === 0x000a) {\n position += 2;\n } else {\n ++position;\n }\n\n currentLine = '';\n chunkStart = position;\n lineStart = position;\n continue;\n } // SourceCharacter\n\n if (isUnicodeScalarValue(code)) {\n ++position;\n } else if (isSupplementaryCodePoint(body, position)) {\n position += 2;\n } else {\n throw syntaxError(\n lexer.source,\n position,\n `Invalid character within String: ${printCodePointAt(\n lexer,\n position,\n )}.`,\n );\n }\n }\n\n throw syntaxError(lexer.source, position, 'Unterminated string.');\n}\n/**\n * Reads an alphanumeric + underscore name from the source.\n *\n * ```\n * Name ::\n * - NameStart NameContinue* [lookahead != NameContinue]\n * ```\n */\n\nfunction readName(lexer, start) {\n const body = lexer.source.body;\n const bodyLength = body.length;\n let position = start + 1;\n\n while (position < bodyLength) {\n const code = body.charCodeAt(position);\n\n if (isNameContinue(code)) {\n ++position;\n } else {\n break;\n }\n }\n\n return createToken(\n lexer,\n TokenKind.NAME,\n start,\n position,\n body.slice(start, position),\n );\n}\n","import { inspect } from './inspect.mjs';\n/**\n * A replacement for instanceof which includes an error warning when multi-realm\n * constructors are detected.\n * See: https://expressjs.com/en/advanced/best-practice-performance.html#set-node_env-to-production\n * See: https://webpack.js.org/guides/production/\n */\n\nexport const instanceOf =\n /* c8 ignore next 6 */\n // FIXME: https://github.com/graphql/graphql-js/issues/2317\n globalThis.process && globalThis.process.env.NODE_ENV === 'production'\n ? function instanceOf(value, constructor) {\n return value instanceof constructor;\n }\n : function instanceOf(value, constructor) {\n if (value instanceof constructor) {\n return true;\n }\n\n if (typeof value === 'object' && value !== null) {\n var _value$constructor;\n\n // Prefer Symbol.toStringTag since it is immune to minification.\n const className = constructor.prototype[Symbol.toStringTag];\n const valueClassName = // We still need to support constructor's name to detect conflicts with older versions of this library.\n Symbol.toStringTag in value // @ts-expect-error TS bug see, https://github.com/microsoft/TypeScript/issues/38009\n ? value[Symbol.toStringTag]\n : (_value$constructor = value.constructor) === null ||\n _value$constructor === void 0\n ? void 0\n : _value$constructor.name;\n\n if (className === valueClassName) {\n const stringifiedValue = inspect(value);\n throw new Error(`Cannot use ${className} \"${stringifiedValue}\" from another module or realm.\n\nEnsure that there is only one instance of \"graphql\" in the node_modules\ndirectory. If different versions of \"graphql\" are the dependencies of other\nrelied on modules, use \"resolutions\" to ensure only one version is installed.\n\nhttps://yarnpkg.com/en/docs/selective-version-resolutions\n\nDuplicate \"graphql\" modules cannot be used at the same time since different\nversions may have different capabilities and behavior. The data from one\nversion used in the function from another could produce confusing and\nspurious results.`);\n }\n }\n\n return false;\n };\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { instanceOf } from '../jsutils/instanceOf.mjs';\n\n/**\n * A representation of source input to GraphQL. The `name` and `locationOffset` parameters are\n * optional, but they are useful for clients who store GraphQL documents in source files.\n * For example, if the GraphQL input starts at line 40 in a file named `Foo.graphql`, it might\n * be useful for `name` to be `\"Foo.graphql\"` and location to be `{ line: 40, column: 1 }`.\n * The `line` and `column` properties in `locationOffset` are 1-indexed.\n */\nexport class Source {\n constructor(\n body,\n name = 'GraphQL request',\n locationOffset = {\n line: 1,\n column: 1,\n },\n ) {\n typeof body === 'string' ||\n devAssert(false, `Body must be a string. Received: ${inspect(body)}.`);\n this.body = body;\n this.name = name;\n this.locationOffset = locationOffset;\n this.locationOffset.line > 0 ||\n devAssert(\n false,\n 'line in locationOffset is 1-indexed and must be positive.',\n );\n this.locationOffset.column > 0 ||\n devAssert(\n false,\n 'column in locationOffset is 1-indexed and must be positive.',\n );\n }\n\n get [Symbol.toStringTag]() {\n return 'Source';\n }\n}\n/**\n * Test if the given value is a Source object.\n *\n * @internal\n */\n\nexport function isSource(source) {\n return instanceOf(source, Source);\n}\n","import { syntaxError } from '../error/syntaxError.mjs';\nimport { Location, OperationTypeNode } from './ast.mjs';\nimport { DirectiveLocation } from './directiveLocation.mjs';\nimport { Kind } from './kinds.mjs';\nimport { isPunctuatorTokenKind, Lexer } from './lexer.mjs';\nimport { isSource, Source } from './source.mjs';\nimport { TokenKind } from './tokenKind.mjs';\n/**\n * Configuration options to control parser behavior\n */\n\n/**\n * Given a GraphQL source, parses it into a Document.\n * Throws GraphQLError if a syntax error is encountered.\n */\nexport function parse(source, options) {\n const parser = new Parser(source, options);\n return parser.parseDocument();\n}\n/**\n * Given a string containing a GraphQL value (ex. `[42]`), parse the AST for\n * that value.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Values directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: valueFromAST().\n */\n\nexport function parseValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseValueLiteral(false);\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Similar to parseValue(), but raises a parse error if it encounters a\n * variable. The return type will be a constant value.\n */\n\nexport function parseConstValue(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const value = parser.parseConstValueLiteral();\n parser.expectToken(TokenKind.EOF);\n return value;\n}\n/**\n * Given a string containing a GraphQL Type (ex. `[Int!]`), parse the AST for\n * that type.\n * Throws GraphQLError if a syntax error is encountered.\n *\n * This is useful within tools that operate upon GraphQL Types directly and\n * in isolation of complete GraphQL documents.\n *\n * Consider providing the results to the utility function: typeFromAST().\n */\n\nexport function parseType(source, options) {\n const parser = new Parser(source, options);\n parser.expectToken(TokenKind.SOF);\n const type = parser.parseTypeReference();\n parser.expectToken(TokenKind.EOF);\n return type;\n}\n/**\n * This class is exported only to assist people in implementing their own parsers\n * without duplicating too much code and should be used only as last resort for cases\n * such as experimental syntax or if certain features could not be contributed upstream.\n *\n * It is still part of the internal API and is versioned, so any changes to it are never\n * considered breaking changes. If you still need to support multiple versions of the\n * library, please use the `versionInfo` variable for version detection.\n *\n * @internal\n */\n\nexport class Parser {\n constructor(source, options = {}) {\n const sourceObj = isSource(source) ? source : new Source(source);\n this._lexer = new Lexer(sourceObj);\n this._options = options;\n this._tokenCounter = 0;\n }\n /**\n * Converts a name lex token into a name parse node.\n */\n\n parseName() {\n const token = this.expectToken(TokenKind.NAME);\n return this.node(token, {\n kind: Kind.NAME,\n value: token.value,\n });\n } // Implements the parsing rules in the Document section.\n\n /**\n * Document : Definition+\n */\n\n parseDocument() {\n return this.node(this._lexer.token, {\n kind: Kind.DOCUMENT,\n definitions: this.many(\n TokenKind.SOF,\n this.parseDefinition,\n TokenKind.EOF,\n ),\n });\n }\n /**\n * Definition :\n * - ExecutableDefinition\n * - TypeSystemDefinition\n * - TypeSystemExtension\n *\n * ExecutableDefinition :\n * - OperationDefinition\n * - FragmentDefinition\n *\n * TypeSystemDefinition :\n * - SchemaDefinition\n * - TypeDefinition\n * - DirectiveDefinition\n *\n * TypeDefinition :\n * - ScalarTypeDefinition\n * - ObjectTypeDefinition\n * - InterfaceTypeDefinition\n * - UnionTypeDefinition\n * - EnumTypeDefinition\n * - InputObjectTypeDefinition\n */\n\n parseDefinition() {\n if (this.peek(TokenKind.BRACE_L)) {\n return this.parseOperationDefinition();\n } // Many definitions begin with a description and require a lookahead.\n\n const hasDescription = this.peekDescription();\n const keywordToken = hasDescription\n ? this._lexer.lookahead()\n : this._lexer.token;\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaDefinition();\n\n case 'scalar':\n return this.parseScalarTypeDefinition();\n\n case 'type':\n return this.parseObjectTypeDefinition();\n\n case 'interface':\n return this.parseInterfaceTypeDefinition();\n\n case 'union':\n return this.parseUnionTypeDefinition();\n\n case 'enum':\n return this.parseEnumTypeDefinition();\n\n case 'input':\n return this.parseInputObjectTypeDefinition();\n\n case 'directive':\n return this.parseDirectiveDefinition();\n }\n\n if (hasDescription) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n 'Unexpected description, descriptions are supported only on type definitions.',\n );\n }\n\n switch (keywordToken.value) {\n case 'query':\n case 'mutation':\n case 'subscription':\n return this.parseOperationDefinition();\n\n case 'fragment':\n return this.parseFragmentDefinition();\n\n case 'extend':\n return this.parseTypeSystemExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n } // Implements the parsing rules in the Operations section.\n\n /**\n * OperationDefinition :\n * - SelectionSet\n * - OperationType Name? VariableDefinitions? Directives? SelectionSet\n */\n\n parseOperationDefinition() {\n const start = this._lexer.token;\n\n if (this.peek(TokenKind.BRACE_L)) {\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation: OperationTypeNode.QUERY,\n name: undefined,\n variableDefinitions: [],\n directives: [],\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n const operation = this.parseOperationType();\n let name;\n\n if (this.peek(TokenKind.NAME)) {\n name = this.parseName();\n }\n\n return this.node(start, {\n kind: Kind.OPERATION_DEFINITION,\n operation,\n name,\n variableDefinitions: this.parseVariableDefinitions(),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * OperationType : one of query mutation subscription\n */\n\n parseOperationType() {\n const operationToken = this.expectToken(TokenKind.NAME);\n\n switch (operationToken.value) {\n case 'query':\n return OperationTypeNode.QUERY;\n\n case 'mutation':\n return OperationTypeNode.MUTATION;\n\n case 'subscription':\n return OperationTypeNode.SUBSCRIPTION;\n }\n\n throw this.unexpected(operationToken);\n }\n /**\n * VariableDefinitions : ( VariableDefinition+ )\n */\n\n parseVariableDefinitions() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseVariableDefinition,\n TokenKind.PAREN_R,\n );\n }\n /**\n * VariableDefinition : Variable : Type DefaultValue? Directives[Const]?\n */\n\n parseVariableDefinition() {\n return this.node(this._lexer.token, {\n kind: Kind.VARIABLE_DEFINITION,\n variable: this.parseVariable(),\n type: (this.expectToken(TokenKind.COLON), this.parseTypeReference()),\n defaultValue: this.expectOptionalToken(TokenKind.EQUALS)\n ? this.parseConstValueLiteral()\n : undefined,\n directives: this.parseConstDirectives(),\n });\n }\n /**\n * Variable : $ Name\n */\n\n parseVariable() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.DOLLAR);\n return this.node(start, {\n kind: Kind.VARIABLE,\n name: this.parseName(),\n });\n }\n /**\n * ```\n * SelectionSet : { Selection+ }\n * ```\n */\n\n parseSelectionSet() {\n return this.node(this._lexer.token, {\n kind: Kind.SELECTION_SET,\n selections: this.many(\n TokenKind.BRACE_L,\n this.parseSelection,\n TokenKind.BRACE_R,\n ),\n });\n }\n /**\n * Selection :\n * - Field\n * - FragmentSpread\n * - InlineFragment\n */\n\n parseSelection() {\n return this.peek(TokenKind.SPREAD)\n ? this.parseFragment()\n : this.parseField();\n }\n /**\n * Field : Alias? Name Arguments? Directives? SelectionSet?\n *\n * Alias : Name :\n */\n\n parseField() {\n const start = this._lexer.token;\n const nameOrAlias = this.parseName();\n let alias;\n let name;\n\n if (this.expectOptionalToken(TokenKind.COLON)) {\n alias = nameOrAlias;\n name = this.parseName();\n } else {\n name = nameOrAlias;\n }\n\n return this.node(start, {\n kind: Kind.FIELD,\n alias,\n name,\n arguments: this.parseArguments(false),\n directives: this.parseDirectives(false),\n selectionSet: this.peek(TokenKind.BRACE_L)\n ? this.parseSelectionSet()\n : undefined,\n });\n }\n /**\n * Arguments[Const] : ( Argument[?Const]+ )\n */\n\n parseArguments(isConst) {\n const item = isConst ? this.parseConstArgument : this.parseArgument;\n return this.optionalMany(TokenKind.PAREN_L, item, TokenKind.PAREN_R);\n }\n /**\n * Argument[Const] : Name : Value[?Const]\n */\n\n parseArgument(isConst = false) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.ARGUMENT,\n name,\n value: this.parseValueLiteral(isConst),\n });\n }\n\n parseConstArgument() {\n return this.parseArgument(true);\n } // Implements the parsing rules in the Fragments section.\n\n /**\n * Corresponds to both FragmentSpread and InlineFragment in the spec.\n *\n * FragmentSpread : ... FragmentName Directives?\n *\n * InlineFragment : ... TypeCondition? Directives? SelectionSet\n */\n\n parseFragment() {\n const start = this._lexer.token;\n this.expectToken(TokenKind.SPREAD);\n const hasTypeCondition = this.expectOptionalKeyword('on');\n\n if (!hasTypeCondition && this.peek(TokenKind.NAME)) {\n return this.node(start, {\n kind: Kind.FRAGMENT_SPREAD,\n name: this.parseFragmentName(),\n directives: this.parseDirectives(false),\n });\n }\n\n return this.node(start, {\n kind: Kind.INLINE_FRAGMENT,\n typeCondition: hasTypeCondition ? this.parseNamedType() : undefined,\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentDefinition :\n * - fragment FragmentName on TypeCondition Directives? SelectionSet\n *\n * TypeCondition : NamedType\n */\n\n parseFragmentDefinition() {\n const start = this._lexer.token;\n this.expectKeyword('fragment'); // Legacy support for defining variables within fragments changes\n // the grammar of FragmentDefinition:\n // - fragment FragmentName VariableDefinitions? on TypeCondition Directives? SelectionSet\n\n if (this._options.allowLegacyFragmentVariables === true) {\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n variableDefinitions: this.parseVariableDefinitions(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n\n return this.node(start, {\n kind: Kind.FRAGMENT_DEFINITION,\n name: this.parseFragmentName(),\n typeCondition: (this.expectKeyword('on'), this.parseNamedType()),\n directives: this.parseDirectives(false),\n selectionSet: this.parseSelectionSet(),\n });\n }\n /**\n * FragmentName : Name but not `on`\n */\n\n parseFragmentName() {\n if (this._lexer.token.value === 'on') {\n throw this.unexpected();\n }\n\n return this.parseName();\n } // Implements the parsing rules in the Values section.\n\n /**\n * Value[Const] :\n * - [~Const] Variable\n * - IntValue\n * - FloatValue\n * - StringValue\n * - BooleanValue\n * - NullValue\n * - EnumValue\n * - ListValue[?Const]\n * - ObjectValue[?Const]\n *\n * BooleanValue : one of `true` `false`\n *\n * NullValue : `null`\n *\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseValueLiteral(isConst) {\n const token = this._lexer.token;\n\n switch (token.kind) {\n case TokenKind.BRACKET_L:\n return this.parseList(isConst);\n\n case TokenKind.BRACE_L:\n return this.parseObject(isConst);\n\n case TokenKind.INT:\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.INT,\n value: token.value,\n });\n\n case TokenKind.FLOAT:\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.FLOAT,\n value: token.value,\n });\n\n case TokenKind.STRING:\n case TokenKind.BLOCK_STRING:\n return this.parseStringLiteral();\n\n case TokenKind.NAME:\n this.advanceLexer();\n\n switch (token.value) {\n case 'true':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: true,\n });\n\n case 'false':\n return this.node(token, {\n kind: Kind.BOOLEAN,\n value: false,\n });\n\n case 'null':\n return this.node(token, {\n kind: Kind.NULL,\n });\n\n default:\n return this.node(token, {\n kind: Kind.ENUM,\n value: token.value,\n });\n }\n\n case TokenKind.DOLLAR:\n if (isConst) {\n this.expectToken(TokenKind.DOLLAR);\n\n if (this._lexer.token.kind === TokenKind.NAME) {\n const varName = this._lexer.token.value;\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected variable \"$${varName}\" in constant value.`,\n );\n } else {\n throw this.unexpected(token);\n }\n }\n\n return this.parseVariable();\n\n default:\n throw this.unexpected();\n }\n }\n\n parseConstValueLiteral() {\n return this.parseValueLiteral(true);\n }\n\n parseStringLiteral() {\n const token = this._lexer.token;\n this.advanceLexer();\n return this.node(token, {\n kind: Kind.STRING,\n value: token.value,\n block: token.kind === TokenKind.BLOCK_STRING,\n });\n }\n /**\n * ListValue[Const] :\n * - [ ]\n * - [ Value[?Const]+ ]\n */\n\n parseList(isConst) {\n const item = () => this.parseValueLiteral(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.LIST,\n values: this.any(TokenKind.BRACKET_L, item, TokenKind.BRACKET_R),\n });\n }\n /**\n * ```\n * ObjectValue[Const] :\n * - { }\n * - { ObjectField[?Const]+ }\n * ```\n */\n\n parseObject(isConst) {\n const item = () => this.parseObjectField(isConst);\n\n return this.node(this._lexer.token, {\n kind: Kind.OBJECT,\n fields: this.any(TokenKind.BRACE_L, item, TokenKind.BRACE_R),\n });\n }\n /**\n * ObjectField[Const] : Name : Value[?Const]\n */\n\n parseObjectField(isConst) {\n const start = this._lexer.token;\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n return this.node(start, {\n kind: Kind.OBJECT_FIELD,\n name,\n value: this.parseValueLiteral(isConst),\n });\n } // Implements the parsing rules in the Directives section.\n\n /**\n * Directives[Const] : Directive[?Const]+\n */\n\n parseDirectives(isConst) {\n const directives = [];\n\n while (this.peek(TokenKind.AT)) {\n directives.push(this.parseDirective(isConst));\n }\n\n return directives;\n }\n\n parseConstDirectives() {\n return this.parseDirectives(true);\n }\n /**\n * ```\n * Directive[Const] : @ Name Arguments[?Const]?\n * ```\n */\n\n parseDirective(isConst) {\n const start = this._lexer.token;\n this.expectToken(TokenKind.AT);\n return this.node(start, {\n kind: Kind.DIRECTIVE,\n name: this.parseName(),\n arguments: this.parseArguments(isConst),\n });\n } // Implements the parsing rules in the Types section.\n\n /**\n * Type :\n * - NamedType\n * - ListType\n * - NonNullType\n */\n\n parseTypeReference() {\n const start = this._lexer.token;\n let type;\n\n if (this.expectOptionalToken(TokenKind.BRACKET_L)) {\n const innerType = this.parseTypeReference();\n this.expectToken(TokenKind.BRACKET_R);\n type = this.node(start, {\n kind: Kind.LIST_TYPE,\n type: innerType,\n });\n } else {\n type = this.parseNamedType();\n }\n\n if (this.expectOptionalToken(TokenKind.BANG)) {\n return this.node(start, {\n kind: Kind.NON_NULL_TYPE,\n type,\n });\n }\n\n return type;\n }\n /**\n * NamedType : Name\n */\n\n parseNamedType() {\n return this.node(this._lexer.token, {\n kind: Kind.NAMED_TYPE,\n name: this.parseName(),\n });\n } // Implements the parsing rules in the Type Definition section.\n\n peekDescription() {\n return this.peek(TokenKind.STRING) || this.peek(TokenKind.BLOCK_STRING);\n }\n /**\n * Description : StringValue\n */\n\n parseDescription() {\n if (this.peekDescription()) {\n return this.parseStringLiteral();\n }\n }\n /**\n * ```\n * SchemaDefinition : Description? schema Directives[Const]? { OperationTypeDefinition+ }\n * ```\n */\n\n parseSchemaDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.many(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n return this.node(start, {\n kind: Kind.SCHEMA_DEFINITION,\n description,\n directives,\n operationTypes,\n });\n }\n /**\n * OperationTypeDefinition : OperationType : NamedType\n */\n\n parseOperationTypeDefinition() {\n const start = this._lexer.token;\n const operation = this.parseOperationType();\n this.expectToken(TokenKind.COLON);\n const type = this.parseNamedType();\n return this.node(start, {\n kind: Kind.OPERATION_TYPE_DEFINITION,\n operation,\n type,\n });\n }\n /**\n * ScalarTypeDefinition : Description? scalar Name Directives[Const]?\n */\n\n parseScalarTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeDefinition :\n * Description?\n * type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition?\n */\n\n parseObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * ImplementsInterfaces :\n * - implements `&`? NamedType\n * - ImplementsInterfaces & NamedType\n */\n\n parseImplementsInterfaces() {\n return this.expectOptionalKeyword('implements')\n ? this.delimitedMany(TokenKind.AMP, this.parseNamedType)\n : [];\n }\n /**\n * ```\n * FieldsDefinition : { FieldDefinition+ }\n * ```\n */\n\n parseFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseFieldDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * FieldDefinition :\n * - Description? Name ArgumentsDefinition? : Type Directives[Const]?\n */\n\n parseFieldDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.FIELD_DEFINITION,\n description,\n name,\n arguments: args,\n type,\n directives,\n });\n }\n /**\n * ArgumentsDefinition : ( InputValueDefinition+ )\n */\n\n parseArgumentDefs() {\n return this.optionalMany(\n TokenKind.PAREN_L,\n this.parseInputValueDef,\n TokenKind.PAREN_R,\n );\n }\n /**\n * InputValueDefinition :\n * - Description? Name : Type DefaultValue? Directives[Const]?\n */\n\n parseInputValueDef() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseName();\n this.expectToken(TokenKind.COLON);\n const type = this.parseTypeReference();\n let defaultValue;\n\n if (this.expectOptionalToken(TokenKind.EQUALS)) {\n defaultValue = this.parseConstValueLiteral();\n }\n\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.INPUT_VALUE_DEFINITION,\n description,\n name,\n type,\n defaultValue,\n directives,\n });\n }\n /**\n * InterfaceTypeDefinition :\n * - Description? interface Name Directives[Const]? FieldsDefinition?\n */\n\n parseInterfaceTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_DEFINITION,\n description,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeDefinition :\n * - Description? union Name Directives[Const]? UnionMemberTypes?\n */\n\n parseUnionTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n return this.node(start, {\n kind: Kind.UNION_TYPE_DEFINITION,\n description,\n name,\n directives,\n types,\n });\n }\n /**\n * UnionMemberTypes :\n * - = `|`? NamedType\n * - UnionMemberTypes | NamedType\n */\n\n parseUnionMemberTypes() {\n return this.expectOptionalToken(TokenKind.EQUALS)\n ? this.delimitedMany(TokenKind.PIPE, this.parseNamedType)\n : [];\n }\n /**\n * EnumTypeDefinition :\n * - Description? enum Name Directives[Const]? EnumValuesDefinition?\n */\n\n parseEnumTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n return this.node(start, {\n kind: Kind.ENUM_TYPE_DEFINITION,\n description,\n name,\n directives,\n values,\n });\n }\n /**\n * ```\n * EnumValuesDefinition : { EnumValueDefinition+ }\n * ```\n */\n\n parseEnumValuesDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseEnumValueDefinition,\n TokenKind.BRACE_R,\n );\n }\n /**\n * EnumValueDefinition : Description? EnumValue Directives[Const]?\n */\n\n parseEnumValueDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n const name = this.parseEnumValueName();\n const directives = this.parseConstDirectives();\n return this.node(start, {\n kind: Kind.ENUM_VALUE_DEFINITION,\n description,\n name,\n directives,\n });\n }\n /**\n * EnumValue : Name but not `true`, `false` or `null`\n */\n\n parseEnumValueName() {\n if (\n this._lexer.token.value === 'true' ||\n this._lexer.token.value === 'false' ||\n this._lexer.token.value === 'null'\n ) {\n throw syntaxError(\n this._lexer.source,\n this._lexer.token.start,\n `${getTokenDesc(\n this._lexer.token,\n )} is reserved and cannot be used for an enum value.`,\n );\n }\n\n return this.parseName();\n }\n /**\n * InputObjectTypeDefinition :\n * - Description? input Name Directives[Const]? InputFieldsDefinition?\n */\n\n parseInputObjectTypeDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_DEFINITION,\n description,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * InputFieldsDefinition : { InputValueDefinition+ }\n * ```\n */\n\n parseInputFieldsDefinition() {\n return this.optionalMany(\n TokenKind.BRACE_L,\n this.parseInputValueDef,\n TokenKind.BRACE_R,\n );\n }\n /**\n * TypeSystemExtension :\n * - SchemaExtension\n * - TypeExtension\n *\n * TypeExtension :\n * - ScalarTypeExtension\n * - ObjectTypeExtension\n * - InterfaceTypeExtension\n * - UnionTypeExtension\n * - EnumTypeExtension\n * - InputObjectTypeDefinition\n */\n\n parseTypeSystemExtension() {\n const keywordToken = this._lexer.lookahead();\n\n if (keywordToken.kind === TokenKind.NAME) {\n switch (keywordToken.value) {\n case 'schema':\n return this.parseSchemaExtension();\n\n case 'scalar':\n return this.parseScalarTypeExtension();\n\n case 'type':\n return this.parseObjectTypeExtension();\n\n case 'interface':\n return this.parseInterfaceTypeExtension();\n\n case 'union':\n return this.parseUnionTypeExtension();\n\n case 'enum':\n return this.parseEnumTypeExtension();\n\n case 'input':\n return this.parseInputObjectTypeExtension();\n }\n }\n\n throw this.unexpected(keywordToken);\n }\n /**\n * ```\n * SchemaExtension :\n * - extend schema Directives[Const]? { OperationTypeDefinition+ }\n * - extend schema Directives[Const]\n * ```\n */\n\n parseSchemaExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('schema');\n const directives = this.parseConstDirectives();\n const operationTypes = this.optionalMany(\n TokenKind.BRACE_L,\n this.parseOperationTypeDefinition,\n TokenKind.BRACE_R,\n );\n\n if (directives.length === 0 && operationTypes.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCHEMA_EXTENSION,\n directives,\n operationTypes,\n });\n }\n /**\n * ScalarTypeExtension :\n * - extend scalar Name Directives[Const]\n */\n\n parseScalarTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('scalar');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n\n if (directives.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.SCALAR_TYPE_EXTENSION,\n name,\n directives,\n });\n }\n /**\n * ObjectTypeExtension :\n * - extend type Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend type Name ImplementsInterfaces? Directives[Const]\n * - extend type Name ImplementsInterfaces\n */\n\n parseObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('type');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.OBJECT_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * InterfaceTypeExtension :\n * - extend interface Name ImplementsInterfaces? Directives[Const]? FieldsDefinition\n * - extend interface Name ImplementsInterfaces? Directives[Const]\n * - extend interface Name ImplementsInterfaces\n */\n\n parseInterfaceTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('interface');\n const name = this.parseName();\n const interfaces = this.parseImplementsInterfaces();\n const directives = this.parseConstDirectives();\n const fields = this.parseFieldsDefinition();\n\n if (\n interfaces.length === 0 &&\n directives.length === 0 &&\n fields.length === 0\n ) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INTERFACE_TYPE_EXTENSION,\n name,\n interfaces,\n directives,\n fields,\n });\n }\n /**\n * UnionTypeExtension :\n * - extend union Name Directives[Const]? UnionMemberTypes\n * - extend union Name Directives[Const]\n */\n\n parseUnionTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('union');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const types = this.parseUnionMemberTypes();\n\n if (directives.length === 0 && types.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.UNION_TYPE_EXTENSION,\n name,\n directives,\n types,\n });\n }\n /**\n * EnumTypeExtension :\n * - extend enum Name Directives[Const]? EnumValuesDefinition\n * - extend enum Name Directives[Const]\n */\n\n parseEnumTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('enum');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const values = this.parseEnumValuesDefinition();\n\n if (directives.length === 0 && values.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.ENUM_TYPE_EXTENSION,\n name,\n directives,\n values,\n });\n }\n /**\n * InputObjectTypeExtension :\n * - extend input Name Directives[Const]? InputFieldsDefinition\n * - extend input Name Directives[Const]\n */\n\n parseInputObjectTypeExtension() {\n const start = this._lexer.token;\n this.expectKeyword('extend');\n this.expectKeyword('input');\n const name = this.parseName();\n const directives = this.parseConstDirectives();\n const fields = this.parseInputFieldsDefinition();\n\n if (directives.length === 0 && fields.length === 0) {\n throw this.unexpected();\n }\n\n return this.node(start, {\n kind: Kind.INPUT_OBJECT_TYPE_EXTENSION,\n name,\n directives,\n fields,\n });\n }\n /**\n * ```\n * DirectiveDefinition :\n * - Description? directive @ Name ArgumentsDefinition? `repeatable`? on DirectiveLocations\n * ```\n */\n\n parseDirectiveDefinition() {\n const start = this._lexer.token;\n const description = this.parseDescription();\n this.expectKeyword('directive');\n this.expectToken(TokenKind.AT);\n const name = this.parseName();\n const args = this.parseArgumentDefs();\n const repeatable = this.expectOptionalKeyword('repeatable');\n this.expectKeyword('on');\n const locations = this.parseDirectiveLocations();\n return this.node(start, {\n kind: Kind.DIRECTIVE_DEFINITION,\n description,\n name,\n arguments: args,\n repeatable,\n locations,\n });\n }\n /**\n * DirectiveLocations :\n * - `|`? DirectiveLocation\n * - DirectiveLocations | DirectiveLocation\n */\n\n parseDirectiveLocations() {\n return this.delimitedMany(TokenKind.PIPE, this.parseDirectiveLocation);\n }\n /*\n * DirectiveLocation :\n * - ExecutableDirectiveLocation\n * - TypeSystemDirectiveLocation\n *\n * ExecutableDirectiveLocation : one of\n * `QUERY`\n * `MUTATION`\n * `SUBSCRIPTION`\n * `FIELD`\n * `FRAGMENT_DEFINITION`\n * `FRAGMENT_SPREAD`\n * `INLINE_FRAGMENT`\n *\n * TypeSystemDirectiveLocation : one of\n * `SCHEMA`\n * `SCALAR`\n * `OBJECT`\n * `FIELD_DEFINITION`\n * `ARGUMENT_DEFINITION`\n * `INTERFACE`\n * `UNION`\n * `ENUM`\n * `ENUM_VALUE`\n * `INPUT_OBJECT`\n * `INPUT_FIELD_DEFINITION`\n */\n\n parseDirectiveLocation() {\n const start = this._lexer.token;\n const name = this.parseName();\n\n if (Object.prototype.hasOwnProperty.call(DirectiveLocation, name.value)) {\n return name;\n }\n\n throw this.unexpected(start);\n } // Core parsing utility functions\n\n /**\n * Returns a node that, if configured to do so, sets a \"loc\" field as a\n * location object, used to identify the place in the source that created a\n * given parsed object.\n */\n\n node(startToken, node) {\n if (this._options.noLocation !== true) {\n node.loc = new Location(\n startToken,\n this._lexer.lastToken,\n this._lexer.source,\n );\n }\n\n return node;\n }\n /**\n * Determines if the next token is of a given kind\n */\n\n peek(kind) {\n return this._lexer.token.kind === kind;\n }\n /**\n * If the next token is of the given kind, return that token after advancing the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return token;\n }\n\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected ${getTokenKindDesc(kind)}, found ${getTokenDesc(token)}.`,\n );\n }\n /**\n * If the next token is of the given kind, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalToken(kind) {\n const token = this._lexer.token;\n\n if (token.kind === kind) {\n this.advanceLexer();\n return true;\n }\n\n return false;\n }\n /**\n * If the next token is a given keyword, advance the lexer.\n * Otherwise, do not change the parser state and throw an error.\n */\n\n expectKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\n } else {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Expected \"${value}\", found ${getTokenDesc(token)}.`,\n );\n }\n }\n /**\n * If the next token is a given keyword, return \"true\" after advancing the lexer.\n * Otherwise, do not change the parser state and return \"false\".\n */\n\n expectOptionalKeyword(value) {\n const token = this._lexer.token;\n\n if (token.kind === TokenKind.NAME && token.value === value) {\n this.advanceLexer();\n return true;\n }\n\n return false;\n }\n /**\n * Helper function for creating an error when an unexpected lexed token is encountered.\n */\n\n unexpected(atToken) {\n const token =\n atToken !== null && atToken !== void 0 ? atToken : this._lexer.token;\n return syntaxError(\n this._lexer.source,\n token.start,\n `Unexpected ${getTokenDesc(token)}.`,\n );\n }\n /**\n * Returns a possibly empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n any(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n while (!this.expectOptionalToken(closeKind)) {\n nodes.push(parseFn.call(this));\n }\n\n return nodes;\n }\n /**\n * Returns a list of parse nodes, determined by the parseFn.\n * It can be empty only if open token is missing otherwise it will always return non-empty list\n * that begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n optionalMany(openKind, parseFn, closeKind) {\n if (this.expectOptionalToken(openKind)) {\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n\n return [];\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list begins with a lex token of openKind and ends with a lex token of closeKind.\n * Advances the parser to the next lex token after the closing token.\n */\n\n many(openKind, parseFn, closeKind) {\n this.expectToken(openKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (!this.expectOptionalToken(closeKind));\n\n return nodes;\n }\n /**\n * Returns a non-empty list of parse nodes, determined by the parseFn.\n * This list may begin with a lex token of delimiterKind followed by items separated by lex tokens of tokenKind.\n * Advances the parser to the next lex token after last item in the list.\n */\n\n delimitedMany(delimiterKind, parseFn) {\n this.expectOptionalToken(delimiterKind);\n const nodes = [];\n\n do {\n nodes.push(parseFn.call(this));\n } while (this.expectOptionalToken(delimiterKind));\n\n return nodes;\n }\n\n advanceLexer() {\n const { maxTokens } = this._options;\n\n const token = this._lexer.advance();\n\n if (maxTokens !== undefined && token.kind !== TokenKind.EOF) {\n ++this._tokenCounter;\n\n if (this._tokenCounter > maxTokens) {\n throw syntaxError(\n this._lexer.source,\n token.start,\n `Document contains more that ${maxTokens} tokens. Parsing aborted.`,\n );\n }\n }\n }\n}\n/**\n * A helper function to describe a token as a string for debugging.\n */\n\nfunction getTokenDesc(token) {\n const value = token.value;\n return getTokenKindDesc(token.kind) + (value != null ? ` \"${value}\"` : '');\n}\n/**\n * A helper function to describe a token kind as a string for debugging.\n */\n\nfunction getTokenKindDesc(kind) {\n return isPunctuatorTokenKind(kind) ? `\"${kind}\"` : kind;\n}\n","/**\n * Prints a string as a GraphQL StringValue literal. Replaces control characters\n * and excluded characters (\" U+0022 and \\\\ U+005C) with escape sequences.\n */\nexport function printString(str) {\n return `\"${str.replace(escapedRegExp, escapedReplacer)}\"`;\n} // eslint-disable-next-line no-control-regex\n\nconst escapedRegExp = /[\\x00-\\x1f\\x22\\x5c\\x7f-\\x9f]/g;\n\nfunction escapedReplacer(str) {\n return escapeSequences[str.charCodeAt(0)];\n} // prettier-ignore\n\nconst escapeSequences = [\n '\\\\u0000',\n '\\\\u0001',\n '\\\\u0002',\n '\\\\u0003',\n '\\\\u0004',\n '\\\\u0005',\n '\\\\u0006',\n '\\\\u0007',\n '\\\\b',\n '\\\\t',\n '\\\\n',\n '\\\\u000B',\n '\\\\f',\n '\\\\r',\n '\\\\u000E',\n '\\\\u000F',\n '\\\\u0010',\n '\\\\u0011',\n '\\\\u0012',\n '\\\\u0013',\n '\\\\u0014',\n '\\\\u0015',\n '\\\\u0016',\n '\\\\u0017',\n '\\\\u0018',\n '\\\\u0019',\n '\\\\u001A',\n '\\\\u001B',\n '\\\\u001C',\n '\\\\u001D',\n '\\\\u001E',\n '\\\\u001F',\n '',\n '',\n '\\\\\"',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 2F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 3F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 4F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\\\\\',\n '',\n '',\n '', // 5F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '', // 6F\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '',\n '\\\\u007F',\n '\\\\u0080',\n '\\\\u0081',\n '\\\\u0082',\n '\\\\u0083',\n '\\\\u0084',\n '\\\\u0085',\n '\\\\u0086',\n '\\\\u0087',\n '\\\\u0088',\n '\\\\u0089',\n '\\\\u008A',\n '\\\\u008B',\n '\\\\u008C',\n '\\\\u008D',\n '\\\\u008E',\n '\\\\u008F',\n '\\\\u0090',\n '\\\\u0091',\n '\\\\u0092',\n '\\\\u0093',\n '\\\\u0094',\n '\\\\u0095',\n '\\\\u0096',\n '\\\\u0097',\n '\\\\u0098',\n '\\\\u0099',\n '\\\\u009A',\n '\\\\u009B',\n '\\\\u009C',\n '\\\\u009D',\n '\\\\u009E',\n '\\\\u009F',\n];\n","import { devAssert } from '../jsutils/devAssert.mjs';\nimport { inspect } from '../jsutils/inspect.mjs';\nimport { isNode, QueryDocumentKeys } from './ast.mjs';\nimport { Kind } from './kinds.mjs';\n/**\n * A visitor is provided to visit, it contains the collection of\n * relevant functions to be called during the visitor's traversal.\n */\n\nexport const BREAK = Object.freeze({});\n/**\n * visit() will walk through an AST using a depth-first traversal, calling\n * the visitor's enter function at each node in the traversal, and calling the\n * leave function after visiting that node and all of its child nodes.\n *\n * By returning different values from the enter and leave functions, the\n * behavior of the visitor can be altered, including skipping over a sub-tree of\n * the AST (by returning false), editing the AST by returning a value or null\n * to remove the value, or to stop the whole traversal by returning BREAK.\n *\n * When using visit() to edit an AST, the original AST will not be modified, and\n * a new version of the AST with the changes applied will be returned from the\n * visit function.\n *\n * ```ts\n * const editedAST = visit(ast, {\n * enter(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: skip visiting this node\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * },\n * leave(node, key, parent, path, ancestors) {\n * // @return\n * // undefined: no action\n * // false: no action\n * // visitor.BREAK: stop visiting altogether\n * // null: delete this node\n * // any value: replace this node with the returned value\n * }\n * });\n * ```\n *\n * Alternatively to providing enter() and leave() functions, a visitor can\n * instead provide functions named the same as the kinds of AST nodes, or\n * enter/leave visitors at a named key, leading to three permutations of the\n * visitor API:\n *\n * 1) Named visitors triggered when entering a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind(node) {\n * // enter the \"Kind\" node\n * }\n * })\n * ```\n *\n * 2) Named visitors that trigger upon entering and leaving a node of a specific kind.\n *\n * ```ts\n * visit(ast, {\n * Kind: {\n * enter(node) {\n * // enter the \"Kind\" node\n * }\n * leave(node) {\n * // leave the \"Kind\" node\n * }\n * }\n * })\n * ```\n *\n * 3) Generic visitors that trigger upon entering and leaving any node.\n *\n * ```ts\n * visit(ast, {\n * enter(node) {\n * // enter any node\n * },\n * leave(node) {\n * // leave any node\n * }\n * })\n * ```\n */\n\nexport function visit(root, visitor, visitorKeys = QueryDocumentKeys) {\n const enterLeaveMap = new Map();\n\n for (const kind of Object.values(Kind)) {\n enterLeaveMap.set(kind, getEnterLeaveForKind(visitor, kind));\n }\n /* eslint-disable no-undef-init */\n\n let stack = undefined;\n let inArray = Array.isArray(root);\n let keys = [root];\n let index = -1;\n let edits = [];\n let node = root;\n let key = undefined;\n let parent = undefined;\n const path = [];\n const ancestors = [];\n /* eslint-enable no-undef-init */\n\n do {\n index++;\n const isLeaving = index === keys.length;\n const isEdited = isLeaving && edits.length !== 0;\n\n if (isLeaving) {\n key = ancestors.length === 0 ? undefined : path[path.length - 1];\n node = parent;\n parent = ancestors.pop();\n\n if (isEdited) {\n if (inArray) {\n node = node.slice();\n let editOffset = 0;\n\n for (const [editKey, editValue] of edits) {\n const arrayKey = editKey - editOffset;\n\n if (editValue === null) {\n node.splice(arrayKey, 1);\n editOffset++;\n } else {\n node[arrayKey] = editValue;\n }\n }\n } else {\n node = Object.defineProperties(\n {},\n Object.getOwnPropertyDescriptors(node),\n );\n\n for (const [editKey, editValue] of edits) {\n node[editKey] = editValue;\n }\n }\n }\n\n index = stack.index;\n keys = stack.keys;\n edits = stack.edits;\n inArray = stack.inArray;\n stack = stack.prev;\n } else if (parent) {\n key = inArray ? index : keys[index];\n node = parent[key];\n\n if (node === null || node === undefined) {\n continue;\n }\n\n path.push(key);\n }\n\n let result;\n\n if (!Array.isArray(node)) {\n var _enterLeaveMap$get, _enterLeaveMap$get2;\n\n isNode(node) || devAssert(false, `Invalid AST Node: ${inspect(node)}.`);\n const visitFn = isLeaving\n ? (_enterLeaveMap$get = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get === void 0\n ? void 0\n : _enterLeaveMap$get.leave\n : (_enterLeaveMap$get2 = enterLeaveMap.get(node.kind)) === null ||\n _enterLeaveMap$get2 === void 0\n ? void 0\n : _enterLeaveMap$get2.enter;\n result =\n visitFn === null || visitFn === void 0\n ? void 0\n : visitFn.call(visitor, node, key, parent, path, ancestors);\n\n if (result === BREAK) {\n break;\n }\n\n if (result === false) {\n if (!isLeaving) {\n path.pop();\n continue;\n }\n } else if (result !== undefined) {\n edits.push([key, result]);\n\n if (!isLeaving) {\n if (isNode(result)) {\n node = result;\n } else {\n path.pop();\n continue;\n }\n }\n }\n }\n\n if (result === undefined && isEdited) {\n edits.push([key, node]);\n }\n\n if (isLeaving) {\n path.pop();\n } else {\n var _node$kind;\n\n stack = {\n inArray,\n index,\n keys,\n edits,\n prev: stack,\n };\n inArray = Array.isArray(node);\n keys = inArray\n ? node\n : (_node$kind = visitorKeys[node.kind]) !== null &&\n _node$kind !== void 0\n ? _node$kind\n : [];\n index = -1;\n edits = [];\n\n if (parent) {\n ancestors.push(parent);\n }\n\n parent = node;\n }\n } while (stack !== undefined);\n\n if (edits.length !== 0) {\n // New root\n return edits[edits.length - 1][1];\n }\n\n return root;\n}\n/**\n * Creates a new visitor instance which delegates to many visitors to run in\n * parallel. Each visitor will be visited for each node before moving on.\n *\n * If a prior visitor edits a node, no following visitors will see that node.\n */\n\nexport function visitInParallel(visitors) {\n const skipping = new Array(visitors.length).fill(null);\n const mergedVisitor = Object.create(null);\n\n for (const kind of Object.values(Kind)) {\n let hasVisitor = false;\n const enterList = new Array(visitors.length).fill(undefined);\n const leaveList = new Array(visitors.length).fill(undefined);\n\n for (let i = 0; i < visitors.length; ++i) {\n const { enter, leave } = getEnterLeaveForKind(visitors[i], kind);\n hasVisitor || (hasVisitor = enter != null || leave != null);\n enterList[i] = enter;\n leaveList[i] = leave;\n }\n\n if (!hasVisitor) {\n continue;\n }\n\n const mergedEnterLeave = {\n enter(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _enterList$i;\n\n const result =\n (_enterList$i = enterList[i]) === null || _enterList$i === void 0\n ? void 0\n : _enterList$i.apply(visitors[i], args);\n\n if (result === false) {\n skipping[i] = node;\n } else if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined) {\n return result;\n }\n }\n }\n },\n\n leave(...args) {\n const node = args[0];\n\n for (let i = 0; i < visitors.length; i++) {\n if (skipping[i] === null) {\n var _leaveList$i;\n\n const result =\n (_leaveList$i = leaveList[i]) === null || _leaveList$i === void 0\n ? void 0\n : _leaveList$i.apply(visitors[i], args);\n\n if (result === BREAK) {\n skipping[i] = BREAK;\n } else if (result !== undefined && result !== false) {\n return result;\n }\n } else if (skipping[i] === node) {\n skipping[i] = null;\n }\n }\n },\n };\n mergedVisitor[kind] = mergedEnterLeave;\n }\n\n return mergedVisitor;\n}\n/**\n * Given a visitor instance and a node kind, return EnterLeaveVisitor for that kind.\n */\n\nexport function getEnterLeaveForKind(visitor, kind) {\n const kindVisitor = visitor[kind];\n\n if (typeof kindVisitor === 'object') {\n // { Kind: { enter() {}, leave() {} } }\n return kindVisitor;\n } else if (typeof kindVisitor === 'function') {\n // { Kind() {} }\n return {\n enter: kindVisitor,\n leave: undefined,\n };\n } // { enter() {}, leave() {} }\n\n return {\n enter: visitor.enter,\n leave: visitor.leave,\n };\n}\n/**\n * Given a visitor instance, if it is leaving or not, and a node kind, return\n * the function the visitor runtime should call.\n *\n * @deprecated Please use `getEnterLeaveForKind` instead. Will be removed in v17\n */\n\n/* c8 ignore next 8 */\n\nexport function getVisitFn(visitor, kind, isLeaving) {\n const { enter, leave } = getEnterLeaveForKind(visitor, kind);\n return isLeaving ? leave : enter;\n}\n","import { printBlockString } from './blockString.mjs';\nimport { printString } from './printString.mjs';\nimport { visit } from './visitor.mjs';\n/**\n * Converts an AST into a string, using one set of reasonable\n * formatting rules.\n */\n\nexport function print(ast) {\n return visit(ast, printDocASTReducer);\n}\nconst MAX_LINE_LENGTH = 80;\nconst printDocASTReducer = {\n Name: {\n leave: (node) => node.value,\n },\n Variable: {\n leave: (node) => '$' + node.name,\n },\n // Document\n Document: {\n leave: (node) => join(node.definitions, '\\n\\n'),\n },\n OperationDefinition: {\n leave(node) {\n const varDefs = wrap('(', join(node.variableDefinitions, ', '), ')');\n const prefix = join(\n [\n node.operation,\n join([node.name, varDefs]),\n join(node.directives, ' '),\n ],\n ' ',\n ); // Anonymous queries with no directives or variable definitions can use\n // the query short form.\n\n return (prefix === 'query' ? '' : prefix + ' ') + node.selectionSet;\n },\n },\n VariableDefinition: {\n leave: ({ variable, type, defaultValue, directives }) =>\n variable +\n ': ' +\n type +\n wrap(' = ', defaultValue) +\n wrap(' ', join(directives, ' ')),\n },\n SelectionSet: {\n leave: ({ selections }) => block(selections),\n },\n Field: {\n leave({ alias, name, arguments: args, directives, selectionSet }) {\n const prefix = wrap('', alias, ': ') + name;\n let argsLine = prefix + wrap('(', join(args, ', '), ')');\n\n if (argsLine.length > MAX_LINE_LENGTH) {\n argsLine = prefix + wrap('(\\n', indent(join(args, '\\n')), '\\n)');\n }\n\n return join([argsLine, join(directives, ' '), selectionSet], ' ');\n },\n },\n Argument: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Fragments\n FragmentSpread: {\n leave: ({ name, directives }) =>\n '...' + name + wrap(' ', join(directives, ' ')),\n },\n InlineFragment: {\n leave: ({ typeCondition, directives, selectionSet }) =>\n join(\n [\n '...',\n wrap('on ', typeCondition),\n join(directives, ' '),\n selectionSet,\n ],\n ' ',\n ),\n },\n FragmentDefinition: {\n leave: (\n { name, typeCondition, variableDefinitions, directives, selectionSet }, // Note: fragment variable definitions are experimental and may be changed\n ) =>\n // or removed in the future.\n `fragment ${name}${wrap('(', join(variableDefinitions, ', '), ')')} ` +\n `on ${typeCondition} ${wrap('', join(directives, ' '), ' ')}` +\n selectionSet,\n },\n // Value\n IntValue: {\n leave: ({ value }) => value,\n },\n FloatValue: {\n leave: ({ value }) => value,\n },\n StringValue: {\n leave: ({ value, block: isBlockString }) =>\n isBlockString ? printBlockString(value) : printString(value),\n },\n BooleanValue: {\n leave: ({ value }) => (value ? 'true' : 'false'),\n },\n NullValue: {\n leave: () => 'null',\n },\n EnumValue: {\n leave: ({ value }) => value,\n },\n ListValue: {\n leave: ({ values }) => '[' + join(values, ', ') + ']',\n },\n ObjectValue: {\n leave: ({ fields }) => '{' + join(fields, ', ') + '}',\n },\n ObjectField: {\n leave: ({ name, value }) => name + ': ' + value,\n },\n // Directive\n Directive: {\n leave: ({ name, arguments: args }) =>\n '@' + name + wrap('(', join(args, ', '), ')'),\n },\n // Type\n NamedType: {\n leave: ({ name }) => name,\n },\n ListType: {\n leave: ({ type }) => '[' + type + ']',\n },\n NonNullType: {\n leave: ({ type }) => type + '!',\n },\n // Type System Definitions\n SchemaDefinition: {\n leave: ({ description, directives, operationTypes }) =>\n wrap('', description, '\\n') +\n join(['schema', join(directives, ' '), block(operationTypes)], ' '),\n },\n OperationTypeDefinition: {\n leave: ({ operation, type }) => operation + ': ' + type,\n },\n ScalarTypeDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') +\n join(['scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n FieldDefinition: {\n leave: ({ description, name, arguments: args, type, directives }) =>\n wrap('', description, '\\n') +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n ': ' +\n type +\n wrap(' ', join(directives, ' ')),\n },\n InputValueDefinition: {\n leave: ({ description, name, type, defaultValue, directives }) =>\n wrap('', description, '\\n') +\n join(\n [name + ': ' + type, wrap('= ', defaultValue), join(directives, ' ')],\n ' ',\n ),\n },\n InterfaceTypeDefinition: {\n leave: ({ description, name, interfaces, directives, fields }) =>\n wrap('', description, '\\n') +\n join(\n [\n 'interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeDefinition: {\n leave: ({ description, name, directives, types }) =>\n wrap('', description, '\\n') +\n join(\n ['union', name, join(directives, ' '), wrap('= ', join(types, ' | '))],\n ' ',\n ),\n },\n EnumTypeDefinition: {\n leave: ({ description, name, directives, values }) =>\n wrap('', description, '\\n') +\n join(['enum', name, join(directives, ' '), block(values)], ' '),\n },\n EnumValueDefinition: {\n leave: ({ description, name, directives }) =>\n wrap('', description, '\\n') + join([name, join(directives, ' ')], ' '),\n },\n InputObjectTypeDefinition: {\n leave: ({ description, name, directives, fields }) =>\n wrap('', description, '\\n') +\n join(['input', name, join(directives, ' '), block(fields)], ' '),\n },\n DirectiveDefinition: {\n leave: ({ description, name, arguments: args, repeatable, locations }) =>\n wrap('', description, '\\n') +\n 'directive @' +\n name +\n (hasMultilineItems(args)\n ? wrap('(\\n', indent(join(args, '\\n')), '\\n)')\n : wrap('(', join(args, ', '), ')')) +\n (repeatable ? ' repeatable' : '') +\n ' on ' +\n join(locations, ' | '),\n },\n SchemaExtension: {\n leave: ({ directives, operationTypes }) =>\n join(\n ['extend schema', join(directives, ' '), block(operationTypes)],\n ' ',\n ),\n },\n ScalarTypeExtension: {\n leave: ({ name, directives }) =>\n join(['extend scalar', name, join(directives, ' ')], ' '),\n },\n ObjectTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend type',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n InterfaceTypeExtension: {\n leave: ({ name, interfaces, directives, fields }) =>\n join(\n [\n 'extend interface',\n name,\n wrap('implements ', join(interfaces, ' & ')),\n join(directives, ' '),\n block(fields),\n ],\n ' ',\n ),\n },\n UnionTypeExtension: {\n leave: ({ name, directives, types }) =>\n join(\n [\n 'extend union',\n name,\n join(directives, ' '),\n wrap('= ', join(types, ' | ')),\n ],\n ' ',\n ),\n },\n EnumTypeExtension: {\n leave: ({ name, directives, values }) =>\n join(['extend enum', name, join(directives, ' '), block(values)], ' '),\n },\n InputObjectTypeExtension: {\n leave: ({ name, directives, fields }) =>\n join(['extend input', name, join(directives, ' '), block(fields)], ' '),\n },\n};\n/**\n * Given maybeArray, print an empty string if it is null or empty, otherwise\n * print all items together separated by separator if provided\n */\n\nfunction join(maybeArray, separator = '') {\n var _maybeArray$filter$jo;\n\n return (_maybeArray$filter$jo =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.filter((x) => x).join(separator)) !== null &&\n _maybeArray$filter$jo !== void 0\n ? _maybeArray$filter$jo\n : '';\n}\n/**\n * Given array, print each item on its own line, wrapped in an indented `{ }` block.\n */\n\nfunction block(array) {\n return wrap('{\\n', indent(join(array, '\\n')), '\\n}');\n}\n/**\n * If maybeString is not null or empty, then wrap with start and end, otherwise print an empty string.\n */\n\nfunction wrap(start, maybeString, end = '') {\n return maybeString != null && maybeString !== ''\n ? start + maybeString + end\n : '';\n}\n\nfunction indent(str) {\n return wrap(' ', str.replace(/\\n/g, '\\n '));\n}\n\nfunction hasMultilineItems(maybeArray) {\n var _maybeArray$some;\n\n // FIXME: https://github.com/graphql/graphql-js/issues/2203\n\n /* c8 ignore next */\n return (_maybeArray$some =\n maybeArray === null || maybeArray === void 0\n ? void 0\n : maybeArray.some((str) => str.includes('\\n'))) !== null &&\n _maybeArray$some !== void 0\n ? _maybeArray$some\n : false;\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","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.P(o,void 0,t),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,r?{...t,wrapped:!0}:t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:t}=o,i=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,n={HTML:1,SVG:2},e=(o,t)=>void 0===t?void 0!==o?._$litType$:o?._$litType$===t,l=o=>null!=o?._$litType$?.h,c=o=>void 0!==o?._$litDirective$,d=o=>o?._$litDirective$,f=o=>void 0===o.strings,s=()=>document.createComment(\"\"),r=(o,i,n)=>{const e=o._$AA.parentNode,l=void 0===i?o._$AB:i._$AA;if(void 0===n){const i=e.insertBefore(s(),l),c=e.insertBefore(s(),l);n=new t(i,c,o,o.options)}else{const t=n._$AB.nextSibling,i=n._$AM,c=i!==o;if(c){let t;n._$AQ?.(o),n._$AM=o,void 0!==n._$AP&&(t=o._$AU)!==i._$AU&&n._$AP(t)}if(t!==l||c){let o=n._$AA;for(;o!==t;){const t=o.nextSibling;e.insertBefore(o,l),o=t}}}return n},v=(o,t,i=o)=>(o._$AI(t,i),o),u={},m=(o,t=u)=>o._$AH=t,p=o=>o._$AH,h=o=>{o._$AP?.(!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},j=o=>{o._$AR()};export{n as TemplateResultType,j as clearPart,p as getCommittedValue,d as getDirectiveClass,r as insertPart,l as isCompiledTemplateResult,c as isDirectiveResult,i as isPrimitive,f as isSingleExpression,e as isTemplateResult,h as removePart,v as setChildPartValue,m as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{isSingleExpression as i}from\"./directive-helpers.js\";import{Directive as t,PartType as e}from\"./directive.js\";export{directive}from\"./directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=(i,t)=>{const e=i._$AN;if(void 0===e)return!1;for(const i of e)i._$AO?.(t,!1),s(i,t);return!0},o=i=>{let t,e;do{if(void 0===(t=i._$AM))break;e=t._$AN,e.delete(i),i=t}while(0===e?.size)},r=i=>{for(let t;t=i._$AM;i=t){let e=t._$AN;if(void 0===e)t._$AN=e=new Set;else if(e.has(i))break;e.add(i),c(t)}};function h(i){void 0!==this._$AN?(o(this),this._$AM=i,r(this)):this._$AM=i}function n(i,t=!1,e=0){const r=this._$AH,h=this._$AN;if(void 0!==h&&0!==h.size)if(t)if(Array.isArray(r))for(let i=e;i{i.type==e.CHILD&&(i._$AP??=n,i._$AQ??=h)};class f extends t{constructor(){super(...arguments),this._$AN=void 0}_$AT(i,t,e){super._$AT(i,t,e),r(this),this.isConnected=i._$AU}_$AO(i,t=!0){i!==this.isConnected&&(this.isConnected=i,i?this.reconnected?.():this.disconnected?.()),t&&(s(this,i),o(this))}setValue(t){if(i(this._$Ct))this._$Ct._$AI(t,this);else{const i=[...this._$Ct._$AH];i[this._$Ci]=t,this._$Ct._$AI(i,this,0)}}disconnected(){}reconnected(){}}export{f as AsyncDirective,t as Directive,e as PartType};\n//# sourceMappingURL=async-directive.js.map\n","import{nothing as t}from\"../lit-html.js\";import{AsyncDirective as i}from\"../async-directive.js\";import{directive as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const e=()=>new h;class h{}const o=new WeakMap,n=s(class extends i{render(i){return t}update(i,[s]){const e=s!==this.Y;return e&&void 0!==this.Y&&this.rt(void 0),(e||this.lt!==this.ct)&&(this.Y=s,this.ht=i.options?.host,this.rt(this.ct=i.element)),t}rt(t){if(\"function\"==typeof this.Y){const i=this.ht??globalThis;let s=o.get(i);void 0===s&&(s=new WeakMap,o.set(i,s)),void 0!==s.get(this.Y)&&this.Y.call(this.ht,void 0),s.set(this.Y,t),void 0!==t&&this.Y.call(this.ht,t)}else this.Y.value=t}get lt(){return\"function\"==typeof this.Y?o.get(this.ht??globalThis)?.get(this.Y):this.Y?.value}disconnected(){this.lt===this.ct&&this.rt(void 0)}reconnected(){this.rt(this.ct)}});export{e as createRef,n as ref};\n//# sourceMappingURL=ref.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[C(t,l+(t[s]||\"\")+(2===i?\"\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return i}}s._$litElement$=!0,s[(\"finalized\",\"finalized\")]=!0,globalThis.litElementHydrateSupport?.({LitElement:s});const r=globalThis.litElementPolyfillSupport;r?.({LitElement:s});const o={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(globalThis.litElementVersions??=[]).push(\"4.0.5\");export{s as LitElement,o as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:r,getOwnPropertyNames:h,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),y={attribute:!0,type:String,converter:u,reflect:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class b extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=y){if(s.state&&(s.attribute=!1),this._$Ei(),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),r=this.getPropertyDescriptor(t,i,s);void 0!==r&&e(this.prototype,t,r)}}static getPropertyDescriptor(t,s,i){const{get:e,set:h}=r(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get(){return e?.call(this)},set(s){const r=e?.call(this);h.call(this,s),this.requestUpdate(t,r,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??y}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...h(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$EC(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const r=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==r?this.removeAttribute(e):this.setAttribute(e,r),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),r=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e,this[e]=r.fromAttribute(s,t.type),this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){if(i??=this.constructor.getPropertyOptions(t),!(i.hasChanged??f)(this[t],s))return;this.P(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$ET())}P(t,s,i){this._$AL.has(t)||this._$AL.set(t,s),!0===i.reflect&&this._$Em!==t&&(this._$Ej??=new Set).add(t)}async _$ET(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t)!0!==i.wrapped||this._$AL.has(s)||void 0===this[s]||this.P(s,this[s],i)}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EU()}catch(s){throw t=!1,this._$EU(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EU(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Ej&&=this._$Ej.forEach((t=>this._$EC(t,this[t]))),this._$EU()}updated(t){}firstUpdated(t){}}b.elementStyles=[],b.shadowRootOptions={mode:\"open\"},b[d(\"elementProperties\")]=new Map,b[d(\"finalized\")]=new Map,p?.({ReactiveElement:b}),(a.reactiveElementVersions??=[]).push(\"2.0.4\");export{b as ReactiveElement,u as defaultConverter,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=Symbol.for(\"lit-noChange\"),T=Symbol.for(\"lit-nothing\"),A=new WeakMap,E=r.createTreeWalker(r,129);function C(t,i){if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const P=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"\":\"\",c=f;for(let i=0;i\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[C(t,l+(t[s]||\"\")+(2===i?\"\":\"\")),o]};class V{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=P(t,s);if(this.el=V.createElement(f,n),E.currentNode=this.el.content,2===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=E.nextNode())&&d.length0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=T}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=N(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==w,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new M(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{z as _$LH,x as html,w as noChange,T as nothing,j as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","const reverseEasing = easing => p => 1 - easing(1 - p);\nconst mirrorEasing = easing => p => p <= 0.5 ? easing(2 * p) / 2 : (2 - easing(2 * (1 - p))) / 2;\nconst createExpoIn = (power) => p => Math.pow(p, power);\nconst createBackIn = (power) => p => p * p * ((power + 1) * p - power);\nconst createAnticipate = (power) => {\n const backEasing = createBackIn(power);\n return p => (p *= 2) < 1\n ? 0.5 * backEasing(p)\n : 0.5 * (2 - Math.pow(2, -10 * (p - 1)));\n};\n\nexport { createAnticipate, createBackIn, createExpoIn, mirrorEasing, reverseEasing };\n","import { createExpoIn, reverseEasing, mirrorEasing, createBackIn, createAnticipate } from './utils.mjs';\n\nconst DEFAULT_OVERSHOOT_STRENGTH = 1.525;\nconst BOUNCE_FIRST_THRESHOLD = 4.0 / 11.0;\nconst BOUNCE_SECOND_THRESHOLD = 8.0 / 11.0;\nconst BOUNCE_THIRD_THRESHOLD = 9.0 / 10.0;\nconst linear = p => p;\nconst easeIn = createExpoIn(2);\nconst easeOut = reverseEasing(easeIn);\nconst easeInOut = mirrorEasing(easeIn);\nconst circIn = p => 1 - Math.sin(Math.acos(p));\nconst circOut = reverseEasing(circIn);\nconst circInOut = mirrorEasing(circOut);\nconst backIn = createBackIn(DEFAULT_OVERSHOOT_STRENGTH);\nconst backOut = reverseEasing(backIn);\nconst backInOut = mirrorEasing(backIn);\nconst anticipate = createAnticipate(DEFAULT_OVERSHOOT_STRENGTH);\nconst ca = 4356.0 / 361.0;\nconst cb = 35442.0 / 1805.0;\nconst cc = 16061.0 / 1805.0;\nconst bounceOut = (p) => {\n if (p === 1 || p === 0)\n return p;\n const p2 = p * p;\n return p < BOUNCE_FIRST_THRESHOLD\n ? 7.5625 * p2\n : p < BOUNCE_SECOND_THRESHOLD\n ? 9.075 * p2 - 9.9 * p + 3.4\n : p < BOUNCE_THIRD_THRESHOLD\n ? ca * p2 - cb * p + cc\n : 10.8 * p * p - 20.52 * p + 10.72;\n};\nconst bounceIn = reverseEasing(bounceOut);\nconst bounceInOut = (p) => p < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - p * 2.0))\n : 0.5 * bounceOut(p * 2.0 - 1.0) + 0.5;\n\nexport { anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, linear };\n","const clamp = (min, max, v) => Math.min(Math.max(v, min), max);\n\nexport { clamp };\n","const zeroPoint = {\n x: 0,\n y: 0,\n z: 0\n};\nconst isNum = (v) => typeof v === 'number';\n\nexport { isNum, zeroPoint };\n","const mix = (from, to, progress) => -progress * from + progress * to + from;\n\nexport { mix };\n","const combineFunctions = (a, b) => (v) => b(a(v));\nconst pipe = (...transformers) => transformers.reduce(combineFunctions);\n\nexport { pipe };\n","const progress = (from, to, value) => {\n const toFromDifference = to - from;\n return toFromDifference === 0 ? 1 : (value - from) / toFromDifference;\n};\n\nexport { progress };\n","function velocityPerSecond(velocity, frameDuration) {\n return frameDuration ? velocity * (1000 / frameDuration) : 0;\n}\n\nexport { velocityPerSecond };\n","import { rgba } from './rgba.mjs';\nimport { isColorString } from './utils.mjs';\n\nfunction parseHex(v) {\n let r = '';\n let g = '';\n let b = '';\n let a = '';\n if (v.length > 5) {\n r = v.substr(1, 2);\n g = v.substr(3, 2);\n b = v.substr(5, 2);\n a = v.substr(7, 2);\n }\n else {\n r = v.substr(1, 1);\n g = v.substr(2, 1);\n b = v.substr(3, 1);\n a = v.substr(4, 1);\n r += r;\n g += g;\n b += b;\n a += a;\n }\n return {\n red: parseInt(r, 16),\n green: parseInt(g, 16),\n blue: parseInt(b, 16),\n alpha: a ? parseInt(a, 16) / 255 : 1,\n };\n}\nconst hex = {\n test: isColorString('#'),\n parse: parseHex,\n transform: rgba.transform,\n};\n\nexport { hex };\n","import { alpha } from '../numbers/index.mjs';\nimport { percent } from '../numbers/units.mjs';\nimport { sanitize } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst hsla = {\n test: isColorString('hsl', 'hue'),\n parse: splitColor('hue', 'saturation', 'lightness'),\n transform: ({ hue, saturation, lightness, alpha: alpha$1 = 1 }) => {\n return ('hsla(' +\n Math.round(hue) +\n ', ' +\n percent.transform(sanitize(saturation)) +\n ', ' +\n percent.transform(sanitize(lightness)) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')');\n },\n};\n\nexport { hsla };\n","import { isString } from '../utils.mjs';\nimport { hex } from './hex.mjs';\nimport { hsla } from './hsla.mjs';\nimport { rgba } from './rgba.mjs';\n\nconst color = {\n test: (v) => rgba.test(v) || hex.test(v) || hsla.test(v),\n parse: (v) => {\n if (rgba.test(v)) {\n return rgba.parse(v);\n }\n else if (hsla.test(v)) {\n return hsla.parse(v);\n }\n else {\n return hex.parse(v);\n }\n },\n transform: (v) => {\n return isString(v)\n ? v\n : v.hasOwnProperty('red')\n ? rgba.transform(v)\n : hsla.transform(v);\n },\n};\n\nexport { color };\n","import { number, alpha } from '../numbers/index.mjs';\nimport { sanitize, clamp } from '../utils.mjs';\nimport { isColorString, splitColor } from './utils.mjs';\n\nconst clampRgbUnit = clamp(0, 255);\nconst rgbUnit = Object.assign(Object.assign({}, number), { transform: (v) => Math.round(clampRgbUnit(v)) });\nconst rgba = {\n test: isColorString('rgb', 'red'),\n parse: splitColor('red', 'green', 'blue'),\n transform: ({ red, green, blue, alpha: alpha$1 = 1 }) => 'rgba(' +\n rgbUnit.transform(red) +\n ', ' +\n rgbUnit.transform(green) +\n ', ' +\n rgbUnit.transform(blue) +\n ', ' +\n sanitize(alpha.transform(alpha$1)) +\n ')',\n};\n\nexport { rgbUnit, rgba };\n","import { isString, singleColorRegex, floatRegex } from '../utils.mjs';\n\nconst isColorString = (type, testProp) => (v) => {\n return Boolean((isString(v) && singleColorRegex.test(v) && v.startsWith(type)) ||\n (testProp && Object.prototype.hasOwnProperty.call(v, testProp)));\n};\nconst splitColor = (aName, bName, cName) => (v) => {\n if (!isString(v))\n return v;\n const [a, b, c, alpha] = v.match(floatRegex);\n return {\n [aName]: parseFloat(a),\n [bName]: parseFloat(b),\n [cName]: parseFloat(c),\n alpha: alpha !== undefined ? parseFloat(alpha) : 1,\n };\n};\n\nexport { isColorString, splitColor };\n","import { complex } from './index.mjs';\nimport { floatRegex } from '../utils.mjs';\n\nconst maxDefaults = new Set(['brightness', 'contrast', 'saturate', 'opacity']);\nfunction applyDefaultFilter(v) {\n let [name, value] = v.slice(0, -1).split('(');\n if (name === 'drop-shadow')\n return v;\n const [number] = value.match(floatRegex) || [];\n if (!number)\n return v;\n const unit = value.replace(number, '');\n let defaultValue = maxDefaults.has(name) ? 1 : 0;\n if (number !== value)\n defaultValue *= 100;\n return name + '(' + defaultValue + unit + ')';\n}\nconst functionRegex = /([a-z-]*)\\(.*?\\)/g;\nconst filter = Object.assign(Object.assign({}, complex), { getAnimatableNone: (v) => {\n const functions = v.match(functionRegex);\n return functions ? functions.map(applyDefaultFilter).join(' ') : v;\n } });\n\nexport { filter };\n","import { color } from '../color/index.mjs';\nimport { number } from '../numbers/index.mjs';\nimport { isString, floatRegex, colorRegex, sanitize } from '../utils.mjs';\n\nconst colorToken = '${c}';\nconst numberToken = '${n}';\nfunction test(v) {\n var _a, _b, _c, _d;\n return (isNaN(v) &&\n isString(v) &&\n ((_b = (_a = v.match(floatRegex)) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) + ((_d = (_c = v.match(colorRegex)) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) > 0);\n}\nfunction analyse(v) {\n if (typeof v === 'number')\n v = `${v}`;\n const values = [];\n let numColors = 0;\n const colors = v.match(colorRegex);\n if (colors) {\n numColors = colors.length;\n v = v.replace(colorRegex, colorToken);\n values.push(...colors.map(color.parse));\n }\n const numbers = v.match(floatRegex);\n if (numbers) {\n v = v.replace(floatRegex, numberToken);\n values.push(...numbers.map(number.parse));\n }\n return { values, numColors, tokenised: v };\n}\nfunction parse(v) {\n return analyse(v).values;\n}\nfunction createTransformer(v) {\n const { values, numColors, tokenised } = analyse(v);\n const numValues = values.length;\n return (v) => {\n let output = tokenised;\n for (let i = 0; i < numValues; i++) {\n output = output.replace(i < numColors ? colorToken : numberToken, i < numColors ? color.transform(v[i]) : sanitize(v[i]));\n }\n return output;\n };\n}\nconst convertNumbersToZero = (v) => typeof v === 'number' ? 0 : v;\nfunction getAnimatableNone(v) {\n const parsed = parse(v);\n const transformer = createTransformer(v);\n return transformer(parsed.map(convertNumbersToZero));\n}\nconst complex = { test, parse, createTransformer, getAnimatableNone };\n\nexport { complex };\n","import { clamp } from '../utils.mjs';\n\nconst number = {\n test: (v) => typeof v === 'number',\n parse: parseFloat,\n transform: (v) => v,\n};\nconst alpha = Object.assign(Object.assign({}, number), { transform: clamp(0, 1) });\nconst scale = Object.assign(Object.assign({}, number), { default: 1 });\n\nexport { alpha, number, scale };\n","import { isString } from '../utils.mjs';\n\nconst createUnitType = (unit) => ({\n test: (v) => isString(v) && v.endsWith(unit) && v.split(' ').length === 1,\n parse: parseFloat,\n transform: (v) => `${v}${unit}`,\n});\nconst degrees = createUnitType('deg');\nconst percent = createUnitType('%');\nconst px = createUnitType('px');\nconst vh = createUnitType('vh');\nconst vw = createUnitType('vw');\nconst progressPercentage = Object.assign(Object.assign({}, percent), { parse: (v) => percent.parse(v) / 100, transform: (v) => percent.transform(v * 100) });\n\nexport { degrees, percent, progressPercentage, px, vh, vw };\n","const clamp = (min, max) => (v) => Math.max(Math.min(v, max), min);\nconst sanitize = (v) => (v % 1 ? Number(v.toFixed(5)) : v);\nconst floatRegex = /(-)?([\\d]*\\.?[\\d])+/g;\nconst colorRegex = /(#[0-9a-f]{6}|#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))/gi;\nconst singleColorRegex = /^(#[0-9a-f]{3}|#(?:[0-9a-f]{2}){2,4}|(rgb|hsl)a?\\((-?[\\d\\.]+%?[,\\s]+){2,3}\\s*\\/*\\s*[\\d\\.]+%?\\))$/i;\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nexport { clamp, colorRegex, floatRegex, isString, sanitize, singleColorRegex };\n","import { useEffect, useLayoutEffect, createContext, useContext, useState, createElement, useRef, useCallback, useDebugValue } from 'react';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\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;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\n\nvar noop = function () { };\n// Using noop() as the undefined value as undefined can possibly be replaced\n// by something else. Prettier ignore and extra parentheses are necessary here\n// to ensure that tsc doesn't remove the __NOINLINE__ comment.\n// prettier-ignore\nvar UNDEFINED = ( /*#__NOINLINE__*/noop());\nvar OBJECT = Object;\nvar isUndefined = function (v) { return v === UNDEFINED; };\nvar isFunction = function (v) { return typeof v == 'function'; };\nvar mergeObjects = function (a, b) { return OBJECT.assign({}, a, b); };\nvar STR_UNDEFINED = 'undefined';\n// NOTE: Use function to guarantee it's re-evaluated between jsdom and node runtime for tests.\nvar hasWindow = function () { return typeof window != STR_UNDEFINED; };\nvar hasDocument = function () { return typeof document != STR_UNDEFINED; };\nvar hasRequestAnimationFrame = function () {\n return hasWindow() && typeof window['requestAnimationFrame'] != STR_UNDEFINED;\n};\n\n// use WeakMap to store the object->key mapping\n// so the objects can be garbage collected.\n// WeakMap uses a hashtable under the hood, so the lookup\n// complexity is almost O(1).\nvar table = new WeakMap();\n// counter of the key\nvar counter = 0;\n// A stable hash implementation that supports:\n// - Fast and ensures unique hash properties\n// - Handles unserializable values\n// - Handles object key ordering\n// - Generates short results\n//\n// This is not a serialization function, and the result is not guaranteed to be\n// parsible.\nvar stableHash = function (arg) {\n var type = typeof arg;\n var constructor = arg && arg.constructor;\n var isDate = constructor == Date;\n var result;\n var index;\n if (OBJECT(arg) === arg && !isDate && constructor != RegExp) {\n // Object/function, not null/date/regexp. Use WeakMap to store the id first.\n // If it's already hashed, directly return the result.\n result = table.get(arg);\n if (result)\n return result;\n // Store the hash first for circular reference detection before entering the\n // recursive `stableHash` calls.\n // For other objects like set and map, we use this id directly as the hash.\n result = ++counter + '~';\n table.set(arg, result);\n if (constructor == Array) {\n // Array.\n result = '@';\n for (index = 0; index < arg.length; index++) {\n result += stableHash(arg[index]) + ',';\n }\n table.set(arg, result);\n }\n if (constructor == OBJECT) {\n // Object, sort keys.\n result = '#';\n var keys = OBJECT.keys(arg).sort();\n while (!isUndefined((index = keys.pop()))) {\n if (!isUndefined(arg[index])) {\n result += index + ':' + stableHash(arg[index]) + ',';\n }\n }\n table.set(arg, result);\n }\n }\n else {\n result = isDate\n ? arg.toJSON()\n : type == 'symbol'\n ? arg.toString()\n : type == 'string'\n ? JSON.stringify(arg)\n : '' + arg;\n }\n return result;\n};\n\n/**\n * Due to bug https://bugs.chromium.org/p/chromium/issues/detail?id=678075,\n * it's not reliable to detect if the browser is currently online or offline\n * based on `navigator.onLine`.\n * As a work around, we always assume it's online on first load, and change\n * the status upon `online` or `offline` events.\n */\nvar online = true;\nvar isOnline = function () { return online; };\nvar hasWin = hasWindow();\nvar hasDoc = hasDocument();\n// For node and React Native, `add/removeEventListener` doesn't exist on window.\nvar onWindowEvent = hasWin && window.addEventListener\n ? window.addEventListener.bind(window)\n : noop;\nvar onDocumentEvent = hasDoc ? document.addEventListener.bind(document) : noop;\nvar offWindowEvent = hasWin && window.removeEventListener\n ? window.removeEventListener.bind(window)\n : noop;\nvar offDocumentEvent = hasDoc\n ? document.removeEventListener.bind(document)\n : noop;\nvar isVisible = function () {\n var visibilityState = hasDoc && document.visibilityState;\n return isUndefined(visibilityState) || visibilityState !== 'hidden';\n};\nvar initFocus = function (callback) {\n // focus revalidate\n onDocumentEvent('visibilitychange', callback);\n onWindowEvent('focus', callback);\n return function () {\n offDocumentEvent('visibilitychange', callback);\n offWindowEvent('focus', callback);\n };\n};\nvar initReconnect = function (callback) {\n // revalidate on reconnected\n var onOnline = function () {\n online = true;\n callback();\n };\n // nothing to revalidate, just update the status\n var onOffline = function () {\n online = false;\n };\n onWindowEvent('online', onOnline);\n onWindowEvent('offline', onOffline);\n return function () {\n offWindowEvent('online', onOnline);\n offWindowEvent('offline', onOffline);\n };\n};\nvar preset = {\n isOnline: isOnline,\n isVisible: isVisible\n};\nvar defaultConfigOptions = {\n initFocus: initFocus,\n initReconnect: initReconnect\n};\n\nvar IS_SERVER = !hasWindow() || 'Deno' in window;\n// Polyfill requestAnimationFrame\nvar rAF = function (f) {\n return hasRequestAnimationFrame() ? window['requestAnimationFrame'](f) : setTimeout(f, 1);\n};\n// React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser.\nvar useIsomorphicLayoutEffect = IS_SERVER ? useEffect : useLayoutEffect;\n// This assignment is to extend the Navigator type to use effectiveType.\nvar navigatorConnection = typeof navigator !== 'undefined' &&\n navigator.connection;\n// Adjust the config based on slow connection status (<= 70Kbps).\nvar slowConnection = !IS_SERVER &&\n navigatorConnection &&\n (['slow-2g', '2g'].includes(navigatorConnection.effectiveType) ||\n navigatorConnection.saveData);\n\nvar serialize = function (key) {\n if (isFunction(key)) {\n try {\n key = key();\n }\n catch (err) {\n // dependencies not ready\n key = '';\n }\n }\n var args = [].concat(key);\n // If key is not falsy, or not an empty array, hash it.\n key =\n typeof key == 'string'\n ? key\n : (Array.isArray(key) ? key.length : key)\n ? stableHash(key)\n : '';\n var infoKey = key ? '$swr$' + key : '';\n return [key, args, infoKey];\n};\n\n// Global state used to deduplicate requests and store listeners\nvar SWRGlobalState = new WeakMap();\n\nvar FOCUS_EVENT = 0;\nvar RECONNECT_EVENT = 1;\nvar MUTATE_EVENT = 2;\n\nvar broadcastState = function (cache, key, data, error, isValidating, revalidate, broadcast) {\n if (broadcast === void 0) { broadcast = true; }\n var _a = SWRGlobalState.get(cache), EVENT_REVALIDATORS = _a[0], STATE_UPDATERS = _a[1], FETCH = _a[3];\n var revalidators = EVENT_REVALIDATORS[key];\n var updaters = STATE_UPDATERS[key];\n // Cache was populated, update states of all hooks.\n if (broadcast && updaters) {\n for (var i = 0; i < updaters.length; ++i) {\n updaters[i](data, error, isValidating);\n }\n }\n // If we also need to revalidate, only do it for the first hook.\n if (revalidate) {\n // Invalidate the key by deleting the concurrent request markers so new\n // requests will not be deduped.\n delete FETCH[key];\n if (revalidators && revalidators[0]) {\n return revalidators[0](MUTATE_EVENT).then(function () {\n return cache.get(key);\n });\n }\n }\n return cache.get(key);\n};\n\n// Global timestamp.\nvar __timestamp = 0;\nvar getTimestamp = function () { return ++__timestamp; };\n\nvar internalMutate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return __awaiter(void 0, void 0, void 0, function () {\n var cache, _key, _data, _opts, options, populateCache, revalidate, rollbackOnError, customOptimisticData, _a, key, keyInfo, _b, MUTATION, data, error, beforeMutationTs, hasCustomOptimisticData, rollbackData, optimisticData, res;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n cache = args[0], _key = args[1], _data = args[2], _opts = args[3];\n options = typeof _opts === 'boolean' ? { revalidate: _opts } : _opts || {};\n populateCache = isUndefined(options.populateCache)\n ? true\n : options.populateCache;\n revalidate = options.revalidate !== false;\n rollbackOnError = options.rollbackOnError !== false;\n customOptimisticData = options.optimisticData;\n _a = serialize(_key), key = _a[0], keyInfo = _a[2];\n if (!key)\n return [2 /*return*/];\n _b = SWRGlobalState.get(cache), MUTATION = _b[2];\n // If there is no new data provided, revalidate the key with current state.\n if (args.length < 3) {\n // Revalidate and broadcast state.\n return [2 /*return*/, broadcastState(cache, key, cache.get(key), UNDEFINED, UNDEFINED, revalidate, true)];\n }\n data = _data;\n beforeMutationTs = getTimestamp();\n MUTATION[key] = [beforeMutationTs, 0];\n hasCustomOptimisticData = !isUndefined(customOptimisticData);\n rollbackData = cache.get(key);\n // Do optimistic data update.\n if (hasCustomOptimisticData) {\n optimisticData = isFunction(customOptimisticData)\n ? customOptimisticData(rollbackData)\n : customOptimisticData;\n cache.set(key, optimisticData);\n broadcastState(cache, key, optimisticData);\n }\n if (isFunction(data)) {\n // `data` is a function, call it passing current cache value.\n try {\n data = data(cache.get(key));\n }\n catch (err) {\n // If it throws an error synchronously, we shouldn't update the cache.\n error = err;\n }\n }\n if (!(data && isFunction(data.then))) return [3 /*break*/, 2];\n return [4 /*yield*/, data.catch(function (err) {\n error = err;\n })\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n ];\n case 1:\n // This means that the mutation is async, we need to check timestamps to\n // avoid race conditions.\n data = _c.sent();\n // Check if other mutations have occurred since we've started this mutation.\n // If there's a race we don't update cache or broadcast the change,\n // just return the data.\n if (beforeMutationTs !== MUTATION[key][0]) {\n if (error)\n throw error;\n return [2 /*return*/, data];\n }\n else if (error && hasCustomOptimisticData && rollbackOnError) {\n // Rollback. Always populate the cache in this case but without\n // transforming the data.\n populateCache = true;\n data = rollbackData;\n cache.set(key, rollbackData);\n }\n _c.label = 2;\n case 2:\n // If we should write back the cache after request.\n if (populateCache) {\n if (!error) {\n // Transform the result into data.\n if (isFunction(populateCache)) {\n data = populateCache(data, rollbackData);\n }\n // Only update cached data if there's no error. Data can be `undefined` here.\n cache.set(key, data);\n }\n // Always update or reset the error.\n cache.set(keyInfo, mergeObjects(cache.get(keyInfo), { error: error }));\n }\n // Reset the timestamp to mark the mutation has ended.\n MUTATION[key][1] = getTimestamp();\n return [4 /*yield*/, broadcastState(cache, key, data, error, UNDEFINED, revalidate, !!populateCache)\n // Throw error or return data\n ];\n case 3:\n res = _c.sent();\n // Throw error or return data\n if (error)\n throw error;\n return [2 /*return*/, populateCache ? res : data];\n }\n });\n });\n};\n\nvar revalidateAllKeys = function (revalidators, type) {\n for (var key in revalidators) {\n if (revalidators[key][0])\n revalidators[key][0](type);\n }\n};\nvar initCache = function (provider, options) {\n // The global state for a specific provider will be used to deduplicate\n // requests and store listeners. As well as a mutate function that bound to\n // the cache.\n // Provider's global state might be already initialized. Let's try to get the\n // global state associated with the provider first.\n if (!SWRGlobalState.has(provider)) {\n var opts = mergeObjects(defaultConfigOptions, options);\n // If there's no global state bound to the provider, create a new one with the\n // new mutate function.\n var EVENT_REVALIDATORS = {};\n var mutate = internalMutate.bind(UNDEFINED, provider);\n var unmount = noop;\n // Update the state if it's new, or the provider has been extended.\n SWRGlobalState.set(provider, [EVENT_REVALIDATORS, {}, {}, {}, mutate]);\n // This is a new provider, we need to initialize it and setup DOM events\n // listeners for `focus` and `reconnect` actions.\n if (!IS_SERVER) {\n // When listening to the native events for auto revalidations,\n // we intentionally put a delay (setTimeout) here to make sure they are\n // fired after immediate JavaScript executions, which can possibly be\n // React's state updates.\n // This avoids some unnecessary revalidations such as\n // https://github.com/vercel/swr/issues/1680.\n var releaseFocus_1 = opts.initFocus(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, FOCUS_EVENT)));\n var releaseReconnect_1 = opts.initReconnect(setTimeout.bind(UNDEFINED, revalidateAllKeys.bind(UNDEFINED, EVENT_REVALIDATORS, RECONNECT_EVENT)));\n unmount = function () {\n releaseFocus_1 && releaseFocus_1();\n releaseReconnect_1 && releaseReconnect_1();\n // When un-mounting, we need to remove the cache provider from the state\n // storage too because it's a side-effect. Otherwise when re-mounting we\n // will not re-register those event listeners.\n SWRGlobalState.delete(provider);\n };\n }\n // We might want to inject an extra layer on top of `provider` in the future,\n // such as key serialization, auto GC, etc.\n // For now, it's just a `Map` interface without any modifications.\n return [provider, mutate, unmount];\n }\n return [provider, SWRGlobalState.get(provider)[4]];\n};\n\n// error retry\nvar onErrorRetry = function (_, __, config, revalidate, opts) {\n var maxRetryCount = config.errorRetryCount;\n var currentRetryCount = opts.retryCount;\n // Exponential backoff\n var timeout = ~~((Math.random() + 0.5) *\n (1 << (currentRetryCount < 8 ? currentRetryCount : 8))) * config.errorRetryInterval;\n if (!isUndefined(maxRetryCount) && currentRetryCount > maxRetryCount) {\n return;\n }\n setTimeout(revalidate, timeout, opts);\n};\n// Default cache provider\nvar _a = initCache(new Map()), cache = _a[0], mutate = _a[1];\n// Default config\nvar defaultConfig = mergeObjects({\n // events\n onLoadingSlow: noop,\n onSuccess: noop,\n onError: noop,\n onErrorRetry: onErrorRetry,\n onDiscarded: noop,\n // switches\n revalidateOnFocus: true,\n revalidateOnReconnect: true,\n revalidateIfStale: true,\n shouldRetryOnError: true,\n // timeouts\n errorRetryInterval: slowConnection ? 10000 : 5000,\n focusThrottleInterval: 5 * 1000,\n dedupingInterval: 2 * 1000,\n loadingTimeout: slowConnection ? 5000 : 3000,\n // providers\n compare: function (currentData, newData) {\n return stableHash(currentData) == stableHash(newData);\n },\n isPaused: function () { return false; },\n cache: cache,\n mutate: mutate,\n fallback: {}\n}, \n// use web preset by default\npreset);\n\nvar mergeConfigs = function (a, b) {\n // Need to create a new object to avoid mutating the original here.\n var v = mergeObjects(a, b);\n // If two configs are provided, merge their `use` and `fallback` options.\n if (b) {\n var u1 = a.use, f1 = a.fallback;\n var u2 = b.use, f2 = b.fallback;\n if (u1 && u2) {\n v.use = u1.concat(u2);\n }\n if (f1 && f2) {\n v.fallback = mergeObjects(f1, f2);\n }\n }\n return v;\n};\n\nvar SWRConfigContext = createContext({});\nvar SWRConfig$1 = function (props) {\n var value = props.value;\n // Extend parent context values and middleware.\n var extendedConfig = mergeConfigs(useContext(SWRConfigContext), value);\n // Should not use the inherited provider.\n var provider = value && value.provider;\n // Use a lazy initialized state to create the cache on first access.\n var cacheContext = useState(function () {\n return provider\n ? initCache(provider(extendedConfig.cache || cache), value)\n : UNDEFINED;\n })[0];\n // Override the cache if a new provider is given.\n if (cacheContext) {\n extendedConfig.cache = cacheContext[0];\n extendedConfig.mutate = cacheContext[1];\n }\n // Unsubscribe events.\n useIsomorphicLayoutEffect(function () { return (cacheContext ? cacheContext[2] : UNDEFINED); }, []);\n return createElement(SWRConfigContext.Provider, mergeObjects(props, {\n value: extendedConfig\n }));\n};\n\n/**\n * An implementation of state with dependency-tracking.\n */\nvar useStateWithDeps = function (state, unmountedRef) {\n var rerender = useState({})[1];\n var stateRef = useRef(state);\n // If a state property (data, error or isValidating) is accessed by the render\n // function, we mark the property as a dependency so if it is updated again\n // in the future, we trigger a rerender.\n // This is also known as dependency-tracking.\n var stateDependenciesRef = useRef({\n data: false,\n error: false,\n isValidating: false\n });\n /**\n * @param payload To change stateRef, pass the values explicitly to setState:\n * @example\n * ```js\n * setState({\n * isValidating: false\n * data: newData // set data to newData\n * error: undefined // set error to undefined\n * })\n *\n * setState({\n * isValidating: false\n * data: undefined // set data to undefined\n * error: err // set error to err\n * })\n * ```\n */\n var setState = useCallback(function (payload) {\n var shouldRerender = false;\n var currentState = stateRef.current;\n for (var _ in payload) {\n var k = _;\n // If the property has changed, update the state and mark rerender as\n // needed.\n if (currentState[k] !== payload[k]) {\n currentState[k] = payload[k];\n // If the property is accessed by the component, a rerender should be\n // triggered.\n if (stateDependenciesRef.current[k]) {\n shouldRerender = true;\n }\n }\n }\n if (shouldRerender && !unmountedRef.current) {\n rerender({});\n }\n }, \n // config.suspense isn't allowed to change during the lifecycle\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Always update the state reference.\n useIsomorphicLayoutEffect(function () {\n stateRef.current = state;\n });\n return [stateRef, stateDependenciesRef.current, setState];\n};\n\nvar normalize = function (args) {\n return isFunction(args[1])\n ? [args[0], args[1], args[2] || {}]\n : [args[0], null, (args[1] === null ? args[2] : args[1]) || {}];\n};\n\nvar useSWRConfig = function () {\n return mergeObjects(defaultConfig, useContext(SWRConfigContext));\n};\n\n// It's tricky to pass generic types as parameters, so we just directly override\n// the types here.\nvar withArgs = function (hook) {\n return function useSWRArgs() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // Get the default and inherited configuration.\n var fallbackConfig = useSWRConfig();\n // Normalize arguments.\n var _a = normalize(args), key = _a[0], fn = _a[1], _config = _a[2];\n // Merge configurations.\n var config = mergeConfigs(fallbackConfig, _config);\n // Apply middleware\n var next = hook;\n var use = config.use;\n if (use) {\n for (var i = use.length; i-- > 0;) {\n next = use[i](next);\n }\n }\n return next(key, fn || config.fetcher, config);\n };\n};\n\n// Add a callback function to a list of keyed callback functions and return\n// the unsubscribe function.\nvar subscribeCallback = function (key, callbacks, callback) {\n var keyedRevalidators = callbacks[key] || (callbacks[key] = []);\n keyedRevalidators.push(callback);\n return function () {\n var index = keyedRevalidators.indexOf(callback);\n if (index >= 0) {\n // O(1): faster than splice\n keyedRevalidators[index] = keyedRevalidators[keyedRevalidators.length - 1];\n keyedRevalidators.pop();\n }\n };\n};\n\nvar WITH_DEDUPE = { dedupe: true };\nvar useSWRHandler = function (_key, fetcher, config) {\n var cache = config.cache, compare = config.compare, fallbackData = config.fallbackData, suspense = config.suspense, revalidateOnMount = config.revalidateOnMount, refreshInterval = config.refreshInterval, refreshWhenHidden = config.refreshWhenHidden, refreshWhenOffline = config.refreshWhenOffline;\n var _a = SWRGlobalState.get(cache), EVENT_REVALIDATORS = _a[0], STATE_UPDATERS = _a[1], MUTATION = _a[2], FETCH = _a[3];\n // `key` is the identifier of the SWR `data` state, `keyInfo` holds extra\n // states such as `error` and `isValidating` inside,\n // all of them are derived from `_key`.\n // `fnArgs` is an array of arguments parsed from the key, which will be passed\n // to the fetcher.\n var _b = serialize(_key), key = _b[0], fnArgs = _b[1], keyInfo = _b[2];\n // If it's the initial render of this hook.\n var initialMountedRef = useRef(false);\n // If the hook is unmounted already. This will be used to prevent some effects\n // to be called after unmounting.\n var unmountedRef = useRef(false);\n // Refs to keep the key and config.\n var keyRef = useRef(key);\n var fetcherRef = useRef(fetcher);\n var configRef = useRef(config);\n var getConfig = function () { return configRef.current; };\n var isActive = function () { return getConfig().isVisible() && getConfig().isOnline(); };\n var patchFetchInfo = function (info) {\n return cache.set(keyInfo, mergeObjects(cache.get(keyInfo), info));\n };\n // Get the current state that SWR should return.\n var cached = cache.get(key);\n var fallback = isUndefined(fallbackData)\n ? config.fallback[key]\n : fallbackData;\n var data = isUndefined(cached) ? fallback : cached;\n var info = cache.get(keyInfo) || {};\n var error = info.error;\n var isInitialMount = !initialMountedRef.current;\n // - Suspense mode and there's stale data for the initial render.\n // - Not suspense mode and there is no fallback data and `revalidateIfStale` is enabled.\n // - `revalidateIfStale` is enabled but `data` is not defined.\n var shouldRevalidate = function () {\n // If `revalidateOnMount` is set, we take the value directly.\n if (isInitialMount && !isUndefined(revalidateOnMount))\n return revalidateOnMount;\n // If it's paused, we skip revalidation.\n if (getConfig().isPaused())\n return false;\n // Under suspense mode, it will always fetch on render if there is no\n // stale data so no need to revalidate immediately on mount again.\n // If data exists, only revalidate if `revalidateIfStale` is true.\n if (suspense)\n return isUndefined(data) ? false : config.revalidateIfStale;\n // If there is no stale data, we need to revalidate on mount;\n // If `revalidateIfStale` is set to true, we will always revalidate.\n return isUndefined(data) || config.revalidateIfStale;\n };\n // Resolve the current validating state.\n var resolveValidating = function () {\n if (!key || !fetcher)\n return false;\n if (info.isValidating)\n return true;\n // If it's not mounted yet and it should revalidate on mount, revalidate.\n return isInitialMount && shouldRevalidate();\n };\n var isValidating = resolveValidating();\n var _c = useStateWithDeps({\n data: data,\n error: error,\n isValidating: isValidating\n }, unmountedRef), stateRef = _c[0], stateDependencies = _c[1], setState = _c[2];\n // The revalidation function is a carefully crafted wrapper of the original\n // `fetcher`, to correctly handle the many edge cases.\n var revalidate = useCallback(function (revalidateOpts) { return __awaiter(void 0, void 0, void 0, function () {\n var currentFetcher, newData, startAt, loading, opts, shouldStartNewRequest, isCurrentKeyMounted, cleanupState, newState, finishRequestAndUpdateState, mutationInfo, err_1;\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n currentFetcher = fetcherRef.current;\n if (!key ||\n !currentFetcher ||\n unmountedRef.current ||\n getConfig().isPaused()) {\n return [2 /*return*/, false];\n }\n loading = true;\n opts = revalidateOpts || {};\n shouldStartNewRequest = !FETCH[key] || !opts.dedupe;\n isCurrentKeyMounted = function () {\n return !unmountedRef.current &&\n key === keyRef.current &&\n initialMountedRef.current;\n };\n cleanupState = function () {\n // Check if it's still the same request before deleting.\n var requestInfo = FETCH[key];\n if (requestInfo && requestInfo[1] === startAt) {\n delete FETCH[key];\n }\n };\n newState = { isValidating: false };\n finishRequestAndUpdateState = function () {\n patchFetchInfo({ isValidating: false });\n // We can only set state if it's safe (still mounted with the same key).\n if (isCurrentKeyMounted()) {\n setState(newState);\n }\n };\n // Start fetching. Change the `isValidating` state, update the cache.\n patchFetchInfo({\n isValidating: true\n });\n setState({ isValidating: true });\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n if (shouldStartNewRequest) {\n // Tell all other hooks to change the `isValidating` state.\n broadcastState(cache, key, stateRef.current.data, stateRef.current.error, true);\n // If no cache being rendered currently (it shows a blank page),\n // we trigger the loading slow event.\n if (config.loadingTimeout && !cache.get(key)) {\n setTimeout(function () {\n if (loading && isCurrentKeyMounted()) {\n getConfig().onLoadingSlow(key, config);\n }\n }, config.loadingTimeout);\n }\n // Start the request and save the timestamp.\n FETCH[key] = [currentFetcher.apply(void 0, fnArgs), getTimestamp()];\n }\n _a = FETCH[key], newData = _a[0], startAt = _a[1];\n return [4 /*yield*/, newData];\n case 2:\n newData = _b.sent();\n if (shouldStartNewRequest) {\n // If the request isn't interrupted, clean it up after the\n // deduplication interval.\n setTimeout(cleanupState, config.dedupingInterval);\n }\n // If there're other ongoing request(s), started after the current one,\n // we need to ignore the current one to avoid possible race conditions:\n // req1------------------>res1 (current one)\n // req2---------------->res2\n // the request that fired later will always be kept.\n // The timestamp maybe be `undefined` or a number\n if (!FETCH[key] || FETCH[key][1] !== startAt) {\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onDiscarded(key);\n }\n }\n return [2 /*return*/, false];\n }\n // Clear error.\n patchFetchInfo({\n error: UNDEFINED\n });\n newState.error = UNDEFINED;\n mutationInfo = MUTATION[key];\n if (!isUndefined(mutationInfo) &&\n // case 1\n (startAt <= mutationInfo[0] ||\n // case 2\n startAt <= mutationInfo[1] ||\n // case 3\n mutationInfo[1] === 0)) {\n finishRequestAndUpdateState();\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onDiscarded(key);\n }\n }\n return [2 /*return*/, false];\n }\n // Deep compare with latest state to avoid extra re-renders.\n // For local state, compare and assign.\n if (!compare(stateRef.current.data, newData)) {\n newState.data = newData;\n }\n else {\n // data and newData are deeply equal\n // it should be safe to broadcast the stale data\n newState.data = stateRef.current.data;\n // At the end of this function, `brocastState` invokes the `onStateUpdate` function,\n // which takes care of avoiding the re-render\n }\n // For global state, it's possible that the key has changed.\n // https://github.com/vercel/swr/pull/1058\n if (!compare(cache.get(key), newData)) {\n cache.set(key, newData);\n }\n // Trigger the successful callback if it's the original request.\n if (shouldStartNewRequest) {\n if (isCurrentKeyMounted()) {\n getConfig().onSuccess(newData, key, config);\n }\n }\n return [3 /*break*/, 4];\n case 3:\n err_1 = _b.sent();\n cleanupState();\n // Not paused, we continue handling the error. Otherwise discard it.\n if (!getConfig().isPaused()) {\n // Get a new error, don't use deep comparison for errors.\n patchFetchInfo({ error: err_1 });\n newState.error = err_1;\n // Error event and retry logic. Only for the actual request, not\n // deduped ones.\n if (shouldStartNewRequest && isCurrentKeyMounted()) {\n getConfig().onError(err_1, key, config);\n if ((typeof config.shouldRetryOnError === 'boolean' &&\n config.shouldRetryOnError) ||\n (isFunction(config.shouldRetryOnError) &&\n config.shouldRetryOnError(err_1))) {\n // When retrying, dedupe is always enabled\n if (isActive()) {\n // If it's active, stop. It will auto revalidate when refocusing\n // or reconnecting.\n getConfig().onErrorRetry(err_1, key, config, revalidate, {\n retryCount: (opts.retryCount || 0) + 1,\n dedupe: true\n });\n }\n }\n }\n }\n return [3 /*break*/, 4];\n case 4:\n // Mark loading as stopped.\n loading = false;\n // Update the current hook's state.\n finishRequestAndUpdateState();\n // Here is the source of the request, need to tell all other hooks to\n // update their states.\n if (isCurrentKeyMounted() && shouldStartNewRequest) {\n broadcastState(cache, key, newState.data, newState.error, false);\n }\n return [2 /*return*/, true];\n }\n });\n }); }, \n // `setState` is immutable, and `eventsCallback`, `fnArgs`, `keyInfo`,\n // and `keyValidating` are depending on `key`, so we can exclude them from\n // the deps array.\n //\n // FIXME:\n // `fn` and `config` might be changed during the lifecycle,\n // but they might be changed every render like this.\n // `useSWR('key', () => fetch('/api/'), { suspense: true })`\n // So we omit the values from the deps array\n // even though it might cause unexpected behaviors.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [key]);\n // Similar to the global mutate, but bound to the current cache and key.\n // `cache` isn't allowed to change during the lifecycle.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n var boundMutate = useCallback(\n // By using `bind` we don't need to modify the size of the rest arguments.\n // Due to https://github.com/microsoft/TypeScript/issues/37181, we have to\n // cast it to any for now.\n internalMutate.bind(UNDEFINED, cache, function () { return keyRef.current; }), \n // eslint-disable-next-line react-hooks/exhaustive-deps\n []);\n // Always update fetcher and config refs.\n useIsomorphicLayoutEffect(function () {\n fetcherRef.current = fetcher;\n configRef.current = config;\n });\n // After mounted or key changed.\n useIsomorphicLayoutEffect(function () {\n if (!key)\n return;\n var keyChanged = key !== keyRef.current;\n var softRevalidate = revalidate.bind(UNDEFINED, WITH_DEDUPE);\n // Expose state updater to global event listeners. So we can update hook's\n // internal state from the outside.\n var onStateUpdate = function (updatedData, updatedError, updatedIsValidating) {\n setState(mergeObjects({\n error: updatedError,\n isValidating: updatedIsValidating\n }, \n // Since `setState` only shallowly compares states, we do a deep\n // comparison here.\n compare(stateRef.current.data, updatedData)\n ? UNDEFINED\n : {\n data: updatedData\n }));\n };\n // Expose revalidators to global event listeners. So we can trigger\n // revalidation from the outside.\n var nextFocusRevalidatedAt = 0;\n var onRevalidate = function (type) {\n if (type == FOCUS_EVENT) {\n var now = Date.now();\n if (getConfig().revalidateOnFocus &&\n now > nextFocusRevalidatedAt &&\n isActive()) {\n nextFocusRevalidatedAt = now + getConfig().focusThrottleInterval;\n softRevalidate();\n }\n }\n else if (type == RECONNECT_EVENT) {\n if (getConfig().revalidateOnReconnect && isActive()) {\n softRevalidate();\n }\n }\n else if (type == MUTATE_EVENT) {\n return revalidate();\n }\n return;\n };\n var unsubUpdate = subscribeCallback(key, STATE_UPDATERS, onStateUpdate);\n var unsubEvents = subscribeCallback(key, EVENT_REVALIDATORS, onRevalidate);\n // Mark the component as mounted and update corresponding refs.\n unmountedRef.current = false;\n keyRef.current = key;\n initialMountedRef.current = true;\n // When `key` updates, reset the state to the initial value\n // and trigger a rerender if necessary.\n if (keyChanged) {\n setState({\n data: data,\n error: error,\n isValidating: isValidating\n });\n }\n // Trigger a revalidation.\n if (shouldRevalidate()) {\n if (isUndefined(data) || IS_SERVER) {\n // Revalidate immediately.\n softRevalidate();\n }\n else {\n // Delay the revalidate if we have data to return so we won't block\n // rendering.\n rAF(softRevalidate);\n }\n }\n return function () {\n // Mark it as unmounted.\n unmountedRef.current = true;\n unsubUpdate();\n unsubEvents();\n };\n }, [key, revalidate]);\n // Polling\n useIsomorphicLayoutEffect(function () {\n var timer;\n function next() {\n // Use the passed interval\n // ...or invoke the function with the updated data to get the interval\n var interval = isFunction(refreshInterval)\n ? refreshInterval(data)\n : refreshInterval;\n // We only start next interval if `refreshInterval` is not 0, and:\n // - `force` is true, which is the start of polling\n // - or `timer` is not 0, which means the effect wasn't canceled\n if (interval && timer !== -1) {\n timer = setTimeout(execute, interval);\n }\n }\n function execute() {\n // Check if it's OK to execute:\n // Only revalidate when the page is visible, online and not errored.\n if (!stateRef.current.error &&\n (refreshWhenHidden || getConfig().isVisible()) &&\n (refreshWhenOffline || getConfig().isOnline())) {\n revalidate(WITH_DEDUPE).then(next);\n }\n else {\n // Schedule next interval to check again.\n next();\n }\n }\n next();\n return function () {\n if (timer) {\n clearTimeout(timer);\n timer = -1;\n }\n };\n }, [refreshInterval, refreshWhenHidden, refreshWhenOffline, revalidate]);\n // Display debug info in React DevTools.\n useDebugValue(data);\n // In Suspense mode, we can't return the empty `data` state.\n // If there is `error`, the `error` needs to be thrown to the error boundary.\n // If there is no `error`, the `revalidation` promise needs to be thrown to\n // the suspense boundary.\n if (suspense && isUndefined(data) && key) {\n // Always update fetcher and config refs even with the Suspense mode.\n fetcherRef.current = fetcher;\n configRef.current = config;\n unmountedRef.current = false;\n throw isUndefined(error) ? revalidate(WITH_DEDUPE) : error;\n }\n return {\n mutate: boundMutate,\n get data() {\n stateDependencies.data = true;\n return data;\n },\n get error() {\n stateDependencies.error = true;\n return error;\n },\n get isValidating() {\n stateDependencies.isValidating = true;\n return isValidating;\n }\n };\n};\nvar SWRConfig = OBJECT.defineProperty(SWRConfig$1, 'default', {\n value: defaultConfig\n});\nvar unstable_serialize = function (key) { return serialize(key)[0]; };\nvar useSWR = withArgs(useSWRHandler);\n\n// useSWR\n\nexport { SWRConfig, useSWR as default, mutate, unstable_serialize, useSWRConfig };\n","import useSWR from 'swr';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\n\nvar isFunction = function (v) { return typeof v == 'function'; };\n\nvar normalize = function (args) {\n return isFunction(args[1])\n ? [args[0], args[1], args[2] || {}]\n : [args[0], null, (args[1] === null ? args[2] : args[1]) || {}];\n};\n\n// Create a custom hook with a middleware\nvar withMiddleware = function (useSWR, middleware) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var _a = normalize(args), key = _a[0], fn = _a[1], config = _a[2];\n var uses = (config.use || []).concat(middleware);\n return useSWR(key, fn, __assign(__assign({}, config), { use: uses }));\n };\n};\n\nvar immutable = function (useSWRNext) { return function (key, fetcher, config) {\n // Always override all revalidate options.\n config.revalidateOnFocus = false;\n config.revalidateIfStale = false;\n config.revalidateOnReconnect = false;\n return useSWRNext(key, fetcher, config);\n}; };\nvar index = withMiddleware(useSWR, immutable);\n\nexport { index as default, immutable };\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import { asUint8Array } from './util/as-uint8array.js';\nexport function alloc(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.alloc != null) {\n return asUint8Array(globalThis.Buffer.alloc(size));\n }\n return new Uint8Array(size);\n}\nexport function allocUnsafe(size = 0) {\n if (globalThis.Buffer != null && globalThis.Buffer.allocUnsafe != null) {\n return asUint8Array(globalThis.Buffer.allocUnsafe(size));\n }\n return new Uint8Array(size);\n}","import { allocUnsafe } from './alloc.js';\nimport { asUint8Array } from './util/as-uint8array.js';\nexport function concat(arrays, length) {\n if (!length) {\n length = arrays.reduce((acc, curr) => acc + curr.length, 0);\n }\n const output = allocUnsafe(length);\n let offset = 0;\n for (const arr of arrays) {\n output.set(arr, offset);\n offset += arr.length;\n }\n return asUint8Array(output);\n}","import bases from './util/bases.js';\nimport { asUint8Array } from './util/as-uint8array.js';\nexport function fromString(string, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return asUint8Array(globalThis.Buffer.from(string, 'utf-8'));\n }\n return base.decoder.decode(`${ base.prefix }${ string }`);\n}","import bases from './util/bases.js';\nexport function toString(array, encoding = 'utf8') {\n const base = bases[encoding];\n if (!base) {\n throw new Error(`Unsupported encoding \"${ encoding }\"`);\n }\n if ((encoding === 'utf8' || encoding === 'utf-8') && globalThis.Buffer != null && globalThis.Buffer.from != null) {\n return globalThis.Buffer.from(array.buffer, array.byteOffset, array.byteLength).toString('utf8');\n }\n return base.encoder.encode(array).substring(1);\n}","export function asUint8Array(buf) {\n if (globalThis.Buffer != null) {\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n return buf;\n}","function base(ALPHABET, name) {\n if (ALPHABET.length >= 255) {\n throw new TypeError('Alphabet too long');\n }\n var BASE_MAP = new Uint8Array(256);\n for (var j = 0; j < BASE_MAP.length; j++) {\n BASE_MAP[j] = 255;\n }\n for (var i = 0; i < ALPHABET.length; i++) {\n var x = ALPHABET.charAt(i);\n var xc = x.charCodeAt(0);\n if (BASE_MAP[xc] !== 255) {\n throw new TypeError(x + ' is ambiguous');\n }\n BASE_MAP[xc] = i;\n }\n var BASE = ALPHABET.length;\n var LEADER = ALPHABET.charAt(0);\n var FACTOR = Math.log(BASE) / Math.log(256);\n var iFACTOR = Math.log(256) / Math.log(BASE);\n function encode(source) {\n if (source instanceof Uint8Array);\n else if (ArrayBuffer.isView(source)) {\n source = new Uint8Array(source.buffer, source.byteOffset, source.byteLength);\n } else if (Array.isArray(source)) {\n source = Uint8Array.from(source);\n }\n if (!(source instanceof Uint8Array)) {\n throw new TypeError('Expected Uint8Array');\n }\n if (source.length === 0) {\n return '';\n }\n var zeroes = 0;\n var length = 0;\n var pbegin = 0;\n var pend = source.length;\n while (pbegin !== pend && source[pbegin] === 0) {\n pbegin++;\n zeroes++;\n }\n var size = (pend - pbegin) * iFACTOR + 1 >>> 0;\n var b58 = new Uint8Array(size);\n while (pbegin !== pend) {\n var carry = source[pbegin];\n var i = 0;\n for (var it1 = size - 1; (carry !== 0 || i < length) && it1 !== -1; it1--, i++) {\n carry += 256 * b58[it1] >>> 0;\n b58[it1] = carry % BASE >>> 0;\n carry = carry / BASE >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n pbegin++;\n }\n var it2 = size - length;\n while (it2 !== size && b58[it2] === 0) {\n it2++;\n }\n var str = LEADER.repeat(zeroes);\n for (; it2 < size; ++it2) {\n str += ALPHABET.charAt(b58[it2]);\n }\n return str;\n }\n function decodeUnsafe(source) {\n if (typeof source !== 'string') {\n throw new TypeError('Expected String');\n }\n if (source.length === 0) {\n return new Uint8Array();\n }\n var psz = 0;\n if (source[psz] === ' ') {\n return;\n }\n var zeroes = 0;\n var length = 0;\n while (source[psz] === LEADER) {\n zeroes++;\n psz++;\n }\n var size = (source.length - psz) * FACTOR + 1 >>> 0;\n var b256 = new Uint8Array(size);\n while (source[psz]) {\n var carry = BASE_MAP[source.charCodeAt(psz)];\n if (carry === 255) {\n return;\n }\n var i = 0;\n for (var it3 = size - 1; (carry !== 0 || i < length) && it3 !== -1; it3--, i++) {\n carry += BASE * b256[it3] >>> 0;\n b256[it3] = carry % 256 >>> 0;\n carry = carry / 256 >>> 0;\n }\n if (carry !== 0) {\n throw new Error('Non-zero carry');\n }\n length = i;\n psz++;\n }\n if (source[psz] === ' ') {\n return;\n }\n var it4 = size - length;\n while (it4 !== size && b256[it4] === 0) {\n it4++;\n }\n var vch = new Uint8Array(zeroes + (size - it4));\n var j = zeroes;\n while (it4 !== size) {\n vch[j++] = b256[it4++];\n }\n return vch;\n }\n function decode(string) {\n var buffer = decodeUnsafe(string);\n if (buffer) {\n return buffer;\n }\n throw new Error(`Non-${ name } character`);\n }\n return {\n encode: encode,\n decodeUnsafe: decodeUnsafe,\n decode: decode\n };\n}\nvar src = base;\nvar _brrp__multiformats_scope_baseX = src;\nexport default _brrp__multiformats_scope_baseX;","const empty = new Uint8Array(0);\nconst toHex = d => d.reduce((hex, byte) => hex + byte.toString(16).padStart(2, '0'), '');\nconst fromHex = hex => {\n const hexes = hex.match(/../g);\n return hexes ? new Uint8Array(hexes.map(b => parseInt(b, 16))) : empty;\n};\nconst equals = (aa, bb) => {\n if (aa === bb)\n return true;\n if (aa.byteLength !== bb.byteLength) {\n return false;\n }\n for (let ii = 0; ii < aa.byteLength; ii++) {\n if (aa[ii] !== bb[ii]) {\n return false;\n }\n }\n return true;\n};\nconst coerce = o => {\n if (o instanceof Uint8Array && o.constructor.name === 'Uint8Array')\n return o;\n if (o instanceof ArrayBuffer)\n return new Uint8Array(o);\n if (ArrayBuffer.isView(o)) {\n return new Uint8Array(o.buffer, o.byteOffset, o.byteLength);\n }\n throw new Error('Unknown type, must be binary type');\n};\nconst isBinary = o => o instanceof ArrayBuffer || ArrayBuffer.isView(o);\nconst fromString = str => new TextEncoder().encode(str);\nconst toString = b => new TextDecoder().decode(b);\nexport {\n equals,\n coerce,\n isBinary,\n fromHex,\n toHex,\n fromString,\n toString,\n empty\n};","import basex from '../../vendor/base-x.js';\nimport { coerce } from '../bytes.js';\nclass Encoder {\n constructor(name, prefix, baseEncode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n }\n encode(bytes) {\n if (bytes instanceof Uint8Array) {\n return `${ this.prefix }${ this.baseEncode(bytes) }`;\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}\nclass Decoder {\n constructor(name, prefix, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n if (prefix.codePointAt(0) === undefined) {\n throw new Error('Invalid prefix character');\n }\n this.prefixCodePoint = prefix.codePointAt(0);\n this.baseDecode = baseDecode;\n }\n decode(text) {\n if (typeof text === 'string') {\n if (text.codePointAt(0) !== this.prefixCodePoint) {\n throw Error(`Unable to decode multibase string ${ JSON.stringify(text) }, ${ this.name } decoder only supports inputs prefixed with ${ this.prefix }`);\n }\n return this.baseDecode(text.slice(this.prefix.length));\n } else {\n throw Error('Can only multibase decode strings');\n }\n }\n or(decoder) {\n return or(this, decoder);\n }\n}\nclass ComposedDecoder {\n constructor(decoders) {\n this.decoders = decoders;\n }\n or(decoder) {\n return or(this, decoder);\n }\n decode(input) {\n const prefix = input[0];\n const decoder = this.decoders[prefix];\n if (decoder) {\n return decoder.decode(input);\n } else {\n throw RangeError(`Unable to decode multibase string ${ JSON.stringify(input) }, only inputs prefixed with ${ Object.keys(this.decoders) } are supported`);\n }\n }\n}\nexport const or = (left, right) => new ComposedDecoder({\n ...left.decoders || { [left.prefix]: left },\n ...right.decoders || { [right.prefix]: right }\n});\nexport class Codec {\n constructor(name, prefix, baseEncode, baseDecode) {\n this.name = name;\n this.prefix = prefix;\n this.baseEncode = baseEncode;\n this.baseDecode = baseDecode;\n this.encoder = new Encoder(name, prefix, baseEncode);\n this.decoder = new Decoder(name, prefix, baseDecode);\n }\n encode(input) {\n return this.encoder.encode(input);\n }\n decode(input) {\n return this.decoder.decode(input);\n }\n}\nexport const from = ({name, prefix, encode, decode}) => new Codec(name, prefix, encode, decode);\nexport const baseX = ({prefix, name, alphabet}) => {\n const {encode, decode} = basex(alphabet, name);\n return from({\n prefix,\n name,\n encode,\n decode: text => coerce(decode(text))\n });\n};\nconst decode = (string, alphabet, bitsPerChar, name) => {\n const codes = {};\n for (let i = 0; i < alphabet.length; ++i) {\n codes[alphabet[i]] = i;\n }\n let end = string.length;\n while (string[end - 1] === '=') {\n --end;\n }\n const out = new Uint8Array(end * bitsPerChar / 8 | 0);\n let bits = 0;\n let buffer = 0;\n let written = 0;\n for (let i = 0; i < end; ++i) {\n const value = codes[string[i]];\n if (value === undefined) {\n throw new SyntaxError(`Non-${ name } character`);\n }\n buffer = buffer << bitsPerChar | value;\n bits += bitsPerChar;\n if (bits >= 8) {\n bits -= 8;\n out[written++] = 255 & buffer >> bits;\n }\n }\n if (bits >= bitsPerChar || 255 & buffer << 8 - bits) {\n throw new SyntaxError('Unexpected end of data');\n }\n return out;\n};\nconst encode = (data, alphabet, bitsPerChar) => {\n const pad = alphabet[alphabet.length - 1] === '=';\n const mask = (1 << bitsPerChar) - 1;\n let out = '';\n let bits = 0;\n let buffer = 0;\n for (let i = 0; i < data.length; ++i) {\n buffer = buffer << 8 | data[i];\n bits += 8;\n while (bits > bitsPerChar) {\n bits -= bitsPerChar;\n out += alphabet[mask & buffer >> bits];\n }\n }\n if (bits) {\n out += alphabet[mask & buffer << bitsPerChar - bits];\n }\n if (pad) {\n while (out.length * bitsPerChar & 7) {\n out += '=';\n }\n }\n return out;\n};\nexport const rfc4648 = ({name, prefix, bitsPerChar, alphabet}) => {\n return from({\n prefix,\n name,\n encode(input) {\n return encode(input, alphabet, bitsPerChar);\n },\n decode(input) {\n return decode(input, alphabet, bitsPerChar, name);\n }\n });\n};","import { from } from './base.js';\nimport {\n fromString,\n toString\n} from '../bytes.js';\nexport const identity = from({\n prefix: '\\0',\n name: 'identity',\n encode: buf => toString(buf),\n decode: str => fromString(str)\n});","import { rfc4648 } from './base.js';\nexport const base2 = rfc4648({\n prefix: '0',\n name: 'base2',\n alphabet: '01',\n bitsPerChar: 1\n});","import { rfc4648 } from './base.js';\nexport const base8 = rfc4648({\n prefix: '7',\n name: 'base8',\n alphabet: '01234567',\n bitsPerChar: 3\n});","import { baseX } from './base.js';\nexport const base10 = baseX({\n prefix: '9',\n name: 'base10',\n alphabet: '0123456789'\n});","import { rfc4648 } from './base.js';\nexport const base16 = rfc4648({\n prefix: 'f',\n name: 'base16',\n alphabet: '0123456789abcdef',\n bitsPerChar: 4\n});\nexport const base16upper = rfc4648({\n prefix: 'F',\n name: 'base16upper',\n alphabet: '0123456789ABCDEF',\n bitsPerChar: 4\n});","import { rfc4648 } from './base.js';\nexport const base32 = rfc4648({\n prefix: 'b',\n name: 'base32',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567',\n bitsPerChar: 5\n});\nexport const base32upper = rfc4648({\n prefix: 'B',\n name: 'base32upper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567',\n bitsPerChar: 5\n});\nexport const base32pad = rfc4648({\n prefix: 'c',\n name: 'base32pad',\n alphabet: 'abcdefghijklmnopqrstuvwxyz234567=',\n bitsPerChar: 5\n});\nexport const base32padupper = rfc4648({\n prefix: 'C',\n name: 'base32padupper',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ234567=',\n bitsPerChar: 5\n});\nexport const base32hex = rfc4648({\n prefix: 'v',\n name: 'base32hex',\n alphabet: '0123456789abcdefghijklmnopqrstuv',\n bitsPerChar: 5\n});\nexport const base32hexupper = rfc4648({\n prefix: 'V',\n name: 'base32hexupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV',\n bitsPerChar: 5\n});\nexport const base32hexpad = rfc4648({\n prefix: 't',\n name: 'base32hexpad',\n alphabet: '0123456789abcdefghijklmnopqrstuv=',\n bitsPerChar: 5\n});\nexport const base32hexpadupper = rfc4648({\n prefix: 'T',\n name: 'base32hexpadupper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUV=',\n bitsPerChar: 5\n});\nexport const base32z = rfc4648({\n prefix: 'h',\n name: 'base32z',\n alphabet: 'ybndrfg8ejkmcpqxot1uwisza345h769',\n bitsPerChar: 5\n});","import { baseX } from './base.js';\nexport const base36 = baseX({\n prefix: 'k',\n name: 'base36',\n alphabet: '0123456789abcdefghijklmnopqrstuvwxyz'\n});\nexport const base36upper = baseX({\n prefix: 'K',\n name: 'base36upper',\n alphabet: '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'\n});","import { baseX } from './base.js';\nexport const base58btc = baseX({\n name: 'base58btc',\n prefix: 'z',\n alphabet: '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'\n});\nexport const base58flickr = baseX({\n name: 'base58flickr',\n prefix: 'Z',\n alphabet: '123456789abcdefghijkmnopqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ'\n});","import { rfc4648 } from './base.js';\nexport const base64 = rfc4648({\n prefix: 'm',\n name: 'base64',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/',\n bitsPerChar: 6\n});\nexport const base64pad = rfc4648({\n prefix: 'M',\n name: 'base64pad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n bitsPerChar: 6\n});\nexport const base64url = rfc4648({\n prefix: 'u',\n name: 'base64url',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_',\n bitsPerChar: 6\n});\nexport const base64urlpad = rfc4648({\n prefix: 'U',\n name: 'base64urlpad',\n alphabet: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_=',\n bitsPerChar: 6\n});","import { from } from './base.js';\nconst alphabet = Array.from('\\uD83D\\uDE80\\uD83E\\uDE90\\u2604\\uD83D\\uDEF0\\uD83C\\uDF0C\\uD83C\\uDF11\\uD83C\\uDF12\\uD83C\\uDF13\\uD83C\\uDF14\\uD83C\\uDF15\\uD83C\\uDF16\\uD83C\\uDF17\\uD83C\\uDF18\\uD83C\\uDF0D\\uD83C\\uDF0F\\uD83C\\uDF0E\\uD83D\\uDC09\\u2600\\uD83D\\uDCBB\\uD83D\\uDDA5\\uD83D\\uDCBE\\uD83D\\uDCBF\\uD83D\\uDE02\\u2764\\uD83D\\uDE0D\\uD83E\\uDD23\\uD83D\\uDE0A\\uD83D\\uDE4F\\uD83D\\uDC95\\uD83D\\uDE2D\\uD83D\\uDE18\\uD83D\\uDC4D\\uD83D\\uDE05\\uD83D\\uDC4F\\uD83D\\uDE01\\uD83D\\uDD25\\uD83E\\uDD70\\uD83D\\uDC94\\uD83D\\uDC96\\uD83D\\uDC99\\uD83D\\uDE22\\uD83E\\uDD14\\uD83D\\uDE06\\uD83D\\uDE44\\uD83D\\uDCAA\\uD83D\\uDE09\\u263A\\uD83D\\uDC4C\\uD83E\\uDD17\\uD83D\\uDC9C\\uD83D\\uDE14\\uD83D\\uDE0E\\uD83D\\uDE07\\uD83C\\uDF39\\uD83E\\uDD26\\uD83C\\uDF89\\uD83D\\uDC9E\\u270C\\u2728\\uD83E\\uDD37\\uD83D\\uDE31\\uD83D\\uDE0C\\uD83C\\uDF38\\uD83D\\uDE4C\\uD83D\\uDE0B\\uD83D\\uDC97\\uD83D\\uDC9A\\uD83D\\uDE0F\\uD83D\\uDC9B\\uD83D\\uDE42\\uD83D\\uDC93\\uD83E\\uDD29\\uD83D\\uDE04\\uD83D\\uDE00\\uD83D\\uDDA4\\uD83D\\uDE03\\uD83D\\uDCAF\\uD83D\\uDE48\\uD83D\\uDC47\\uD83C\\uDFB6\\uD83D\\uDE12\\uD83E\\uDD2D\\u2763\\uD83D\\uDE1C\\uD83D\\uDC8B\\uD83D\\uDC40\\uD83D\\uDE2A\\uD83D\\uDE11\\uD83D\\uDCA5\\uD83D\\uDE4B\\uD83D\\uDE1E\\uD83D\\uDE29\\uD83D\\uDE21\\uD83E\\uDD2A\\uD83D\\uDC4A\\uD83E\\uDD73\\uD83D\\uDE25\\uD83E\\uDD24\\uD83D\\uDC49\\uD83D\\uDC83\\uD83D\\uDE33\\u270B\\uD83D\\uDE1A\\uD83D\\uDE1D\\uD83D\\uDE34\\uD83C\\uDF1F\\uD83D\\uDE2C\\uD83D\\uDE43\\uD83C\\uDF40\\uD83C\\uDF37\\uD83D\\uDE3B\\uD83D\\uDE13\\u2B50\\u2705\\uD83E\\uDD7A\\uD83C\\uDF08\\uD83D\\uDE08\\uD83E\\uDD18\\uD83D\\uDCA6\\u2714\\uD83D\\uDE23\\uD83C\\uDFC3\\uD83D\\uDC90\\u2639\\uD83C\\uDF8A\\uD83D\\uDC98\\uD83D\\uDE20\\u261D\\uD83D\\uDE15\\uD83C\\uDF3A\\uD83C\\uDF82\\uD83C\\uDF3B\\uD83D\\uDE10\\uD83D\\uDD95\\uD83D\\uDC9D\\uD83D\\uDE4A\\uD83D\\uDE39\\uD83D\\uDDE3\\uD83D\\uDCAB\\uD83D\\uDC80\\uD83D\\uDC51\\uD83C\\uDFB5\\uD83E\\uDD1E\\uD83D\\uDE1B\\uD83D\\uDD34\\uD83D\\uDE24\\uD83C\\uDF3C\\uD83D\\uDE2B\\u26BD\\uD83E\\uDD19\\u2615\\uD83C\\uDFC6\\uD83E\\uDD2B\\uD83D\\uDC48\\uD83D\\uDE2E\\uD83D\\uDE46\\uD83C\\uDF7B\\uD83C\\uDF43\\uD83D\\uDC36\\uD83D\\uDC81\\uD83D\\uDE32\\uD83C\\uDF3F\\uD83E\\uDDE1\\uD83C\\uDF81\\u26A1\\uD83C\\uDF1E\\uD83C\\uDF88\\u274C\\u270A\\uD83D\\uDC4B\\uD83D\\uDE30\\uD83E\\uDD28\\uD83D\\uDE36\\uD83E\\uDD1D\\uD83D\\uDEB6\\uD83D\\uDCB0\\uD83C\\uDF53\\uD83D\\uDCA2\\uD83E\\uDD1F\\uD83D\\uDE41\\uD83D\\uDEA8\\uD83D\\uDCA8\\uD83E\\uDD2C\\u2708\\uD83C\\uDF80\\uD83C\\uDF7A\\uD83E\\uDD13\\uD83D\\uDE19\\uD83D\\uDC9F\\uD83C\\uDF31\\uD83D\\uDE16\\uD83D\\uDC76\\uD83E\\uDD74\\u25B6\\u27A1\\u2753\\uD83D\\uDC8E\\uD83D\\uDCB8\\u2B07\\uD83D\\uDE28\\uD83C\\uDF1A\\uD83E\\uDD8B\\uD83D\\uDE37\\uD83D\\uDD7A\\u26A0\\uD83D\\uDE45\\uD83D\\uDE1F\\uD83D\\uDE35\\uD83D\\uDC4E\\uD83E\\uDD32\\uD83E\\uDD20\\uD83E\\uDD27\\uD83D\\uDCCC\\uD83D\\uDD35\\uD83D\\uDC85\\uD83E\\uDDD0\\uD83D\\uDC3E\\uD83C\\uDF52\\uD83D\\uDE17\\uD83E\\uDD11\\uD83C\\uDF0A\\uD83E\\uDD2F\\uD83D\\uDC37\\u260E\\uD83D\\uDCA7\\uD83D\\uDE2F\\uD83D\\uDC86\\uD83D\\uDC46\\uD83C\\uDFA4\\uD83D\\uDE47\\uD83C\\uDF51\\u2744\\uD83C\\uDF34\\uD83D\\uDCA3\\uD83D\\uDC38\\uD83D\\uDC8C\\uD83D\\uDCCD\\uD83E\\uDD40\\uD83E\\uDD22\\uD83D\\uDC45\\uD83D\\uDCA1\\uD83D\\uDCA9\\uD83D\\uDC50\\uD83D\\uDCF8\\uD83D\\uDC7B\\uD83E\\uDD10\\uD83E\\uDD2E\\uD83C\\uDFBC\\uD83E\\uDD75\\uD83D\\uDEA9\\uD83C\\uDF4E\\uD83C\\uDF4A\\uD83D\\uDC7C\\uD83D\\uDC8D\\uD83D\\uDCE3\\uD83E\\uDD42');\nconst alphabetBytesToChars = alphabet.reduce((p, c, i) => {\n p[i] = c;\n return p;\n}, []);\nconst alphabetCharsToBytes = alphabet.reduce((p, c, i) => {\n p[c.codePointAt(0)] = i;\n return p;\n}, []);\nfunction encode(data) {\n return data.reduce((p, c) => {\n p += alphabetBytesToChars[c];\n return p;\n }, '');\n}\nfunction decode(str) {\n const byts = [];\n for (const char of str) {\n const byt = alphabetCharsToBytes[char.codePointAt(0)];\n if (byt === undefined) {\n throw new Error(`Non-base256emoji character: ${ char }`);\n }\n byts.push(byt);\n }\n return new Uint8Array(byts);\n}\nexport const base256emoji = from({\n prefix: '\\uD83D\\uDE80',\n name: 'base256emoji',\n encode,\n decode\n});","var encode_1 = encode;\nvar MSB = 128, REST = 127, MSBALL = ~REST, INT = Math.pow(2, 31);\nfunction encode(num, out, offset) {\n out = out || [];\n offset = offset || 0;\n var oldOffset = offset;\n while (num >= INT) {\n out[offset++] = num & 255 | MSB;\n num /= 128;\n }\n while (num & MSBALL) {\n out[offset++] = num & 255 | MSB;\n num >>>= 7;\n }\n out[offset] = num | 0;\n encode.bytes = offset - oldOffset + 1;\n return out;\n}\nvar decode = read;\nvar MSB$1 = 128, REST$1 = 127;\nfunction read(buf, offset) {\n var res = 0, offset = offset || 0, shift = 0, counter = offset, b, l = buf.length;\n do {\n if (counter >= l) {\n read.bytes = 0;\n throw new RangeError('Could not decode varint');\n }\n b = buf[counter++];\n res += shift < 28 ? (b & REST$1) << shift : (b & REST$1) * Math.pow(2, shift);\n shift += 7;\n } while (b >= MSB$1);\n read.bytes = counter - offset;\n return res;\n}\nvar N1 = Math.pow(2, 7);\nvar N2 = Math.pow(2, 14);\nvar N3 = Math.pow(2, 21);\nvar N4 = Math.pow(2, 28);\nvar N5 = Math.pow(2, 35);\nvar N6 = Math.pow(2, 42);\nvar N7 = Math.pow(2, 49);\nvar N8 = Math.pow(2, 56);\nvar N9 = Math.pow(2, 63);\nvar length = function (value) {\n return value < N1 ? 1 : value < N2 ? 2 : value < N3 ? 3 : value < N4 ? 4 : value < N5 ? 5 : value < N6 ? 6 : value < N7 ? 7 : value < N8 ? 8 : value < N9 ? 9 : 10;\n};\nvar varint = {\n encode: encode_1,\n decode: decode,\n encodingLength: length\n};\nvar _brrp_varint = varint;\nexport default _brrp_varint;","import varint from '../vendor/varint.js';\nexport const decode = (data, offset = 0) => {\n const code = varint.decode(data, offset);\n return [\n code,\n varint.decode.bytes\n ];\n};\nexport const encodeTo = (int, target, offset = 0) => {\n varint.encode(int, target, offset);\n return target;\n};\nexport const encodingLength = int => {\n return varint.encodingLength(int);\n};","import {\n coerce,\n equals as equalBytes\n} from '../bytes.js';\nimport * as varint from '../varint.js';\nexport const create = (code, digest) => {\n const size = digest.byteLength;\n const sizeOffset = varint.encodingLength(code);\n const digestOffset = sizeOffset + varint.encodingLength(size);\n const bytes = new Uint8Array(digestOffset + size);\n varint.encodeTo(code, bytes, 0);\n varint.encodeTo(size, bytes, sizeOffset);\n bytes.set(digest, digestOffset);\n return new Digest(code, size, digest, bytes);\n};\nexport const decode = multihash => {\n const bytes = coerce(multihash);\n const [code, sizeOffset] = varint.decode(bytes);\n const [size, digestOffset] = varint.decode(bytes.subarray(sizeOffset));\n const digest = bytes.subarray(sizeOffset + digestOffset);\n if (digest.byteLength !== size) {\n throw new Error('Incorrect length');\n }\n return new Digest(code, size, digest, bytes);\n};\nexport const equals = (a, b) => {\n if (a === b) {\n return true;\n } else {\n return a.code === b.code && a.size === b.size && equalBytes(a.bytes, b.bytes);\n }\n};\nexport class Digest {\n constructor(code, size, digest, bytes) {\n this.code = code;\n this.size = size;\n this.digest = digest;\n this.bytes = bytes;\n }\n}","import * as Digest from './digest.js';\nexport const from = ({name, code, encode}) => new Hasher(name, code, encode);\nexport class Hasher {\n constructor(name, code, encode) {\n this.name = name;\n this.code = code;\n this.encode = encode;\n }\n digest(input) {\n if (input instanceof Uint8Array) {\n const result = this.encode(input);\n return result instanceof Uint8Array ? Digest.create(this.code, result) : result.then(digest => Digest.create(this.code, digest));\n } else {\n throw Error('Unknown type, must be binary type');\n }\n }\n}","import { from } from './hasher.js';\nconst sha = name => async data => new Uint8Array(await crypto.subtle.digest(name, data));\nexport const sha256 = from({\n name: 'sha2-256',\n code: 18,\n encode: sha('SHA-256')\n});\nexport const sha512 = from({\n name: 'sha2-512',\n code: 19,\n encode: sha('SHA-512')\n});","import { coerce } from '../bytes.js';\nimport * as Digest from './digest.js';\nconst code = 0;\nconst name = 'identity';\nconst encode = coerce;\nconst digest = input => Digest.create(code, encode(input));\nexport const identity = {\n code,\n name,\n encode,\n digest\n};","import { coerce } from '../bytes.js';\nexport const name = 'raw';\nexport const code = 85;\nexport const encode = node => coerce(node);\nexport const decode = data => coerce(data);","const textEncoder = new TextEncoder();\nconst textDecoder = new TextDecoder();\nexport const name = 'json';\nexport const code = 512;\nexport const encode = node => textEncoder.encode(JSON.stringify(node));\nexport const decode = data => JSON.parse(textDecoder.decode(data));","import * as varint from './varint.js';\nimport * as Digest from './hashes/digest.js';\nimport { base58btc } from './bases/base58.js';\nimport { base32 } from './bases/base32.js';\nimport { coerce } from './bytes.js';\nexport class CID {\n constructor(version, code, multihash, bytes) {\n this.code = code;\n this.version = version;\n this.multihash = multihash;\n this.bytes = bytes;\n this.byteOffset = bytes.byteOffset;\n this.byteLength = bytes.byteLength;\n this.asCID = this;\n this._baseCache = new Map();\n Object.defineProperties(this, {\n byteOffset: hidden,\n byteLength: hidden,\n code: readonly,\n version: readonly,\n multihash: readonly,\n bytes: readonly,\n _baseCache: hidden,\n asCID: hidden\n });\n }\n toV0() {\n switch (this.version) {\n case 0: {\n return this;\n }\n default: {\n const {code, multihash} = this;\n if (code !== DAG_PB_CODE) {\n throw new Error('Cannot convert a non dag-pb CID to CIDv0');\n }\n if (multihash.code !== SHA_256_CODE) {\n throw new Error('Cannot convert non sha2-256 multihash CID to CIDv0');\n }\n return CID.createV0(multihash);\n }\n }\n }\n toV1() {\n switch (this.version) {\n case 0: {\n const {code, digest} = this.multihash;\n const multihash = Digest.create(code, digest);\n return CID.createV1(this.code, multihash);\n }\n case 1: {\n return this;\n }\n default: {\n throw Error(`Can not convert CID version ${ this.version } to version 0. This is a bug please report`);\n }\n }\n }\n equals(other) {\n return other && this.code === other.code && this.version === other.version && Digest.equals(this.multihash, other.multihash);\n }\n toString(base) {\n const {bytes, version, _baseCache} = this;\n switch (version) {\n case 0:\n return toStringV0(bytes, _baseCache, base || base58btc.encoder);\n default:\n return toStringV1(bytes, _baseCache, base || base32.encoder);\n }\n }\n toJSON() {\n return {\n code: this.code,\n version: this.version,\n hash: this.multihash.bytes\n };\n }\n get [Symbol.toStringTag]() {\n return 'CID';\n }\n [Symbol.for('nodejs.util.inspect.custom')]() {\n return 'CID(' + this.toString() + ')';\n }\n static isCID(value) {\n deprecate(/^0\\.0/, IS_CID_DEPRECATION);\n return !!(value && (value[cidSymbol] || value.asCID === value));\n }\n get toBaseEncodedString() {\n throw new Error('Deprecated, use .toString()');\n }\n get codec() {\n throw new Error('\"codec\" property is deprecated, use integer \"code\" property instead');\n }\n get buffer() {\n throw new Error('Deprecated .buffer property, use .bytes to get Uint8Array instead');\n }\n get multibaseName() {\n throw new Error('\"multibaseName\" property is deprecated');\n }\n get prefix() {\n throw new Error('\"prefix\" property is deprecated');\n }\n static asCID(value) {\n if (value instanceof CID) {\n return value;\n } else if (value != null && value.asCID === value) {\n const {version, code, multihash, bytes} = value;\n return new CID(version, code, multihash, bytes || encodeCID(version, code, multihash.bytes));\n } else if (value != null && value[cidSymbol] === true) {\n const {version, multihash, code} = value;\n const digest = Digest.decode(multihash);\n return CID.create(version, code, digest);\n } else {\n return null;\n }\n }\n static create(version, code, digest) {\n if (typeof code !== 'number') {\n throw new Error('String codecs are no longer supported');\n }\n switch (version) {\n case 0: {\n if (code !== DAG_PB_CODE) {\n throw new Error(`Version 0 CID must use dag-pb (code: ${ DAG_PB_CODE }) block encoding`);\n } else {\n return new CID(version, code, digest, digest.bytes);\n }\n }\n case 1: {\n const bytes = encodeCID(version, code, digest.bytes);\n return new CID(version, code, digest, bytes);\n }\n default: {\n throw new Error('Invalid version');\n }\n }\n }\n static createV0(digest) {\n return CID.create(0, DAG_PB_CODE, digest);\n }\n static createV1(code, digest) {\n return CID.create(1, code, digest);\n }\n static decode(bytes) {\n const [cid, remainder] = CID.decodeFirst(bytes);\n if (remainder.length) {\n throw new Error('Incorrect length');\n }\n return cid;\n }\n static decodeFirst(bytes) {\n const specs = CID.inspectBytes(bytes);\n const prefixSize = specs.size - specs.multihashSize;\n const multihashBytes = coerce(bytes.subarray(prefixSize, prefixSize + specs.multihashSize));\n if (multihashBytes.byteLength !== specs.multihashSize) {\n throw new Error('Incorrect length');\n }\n const digestBytes = multihashBytes.subarray(specs.multihashSize - specs.digestSize);\n const digest = new Digest.Digest(specs.multihashCode, specs.digestSize, digestBytes, multihashBytes);\n const cid = specs.version === 0 ? CID.createV0(digest) : CID.createV1(specs.codec, digest);\n return [\n cid,\n bytes.subarray(specs.size)\n ];\n }\n static inspectBytes(initialBytes) {\n let offset = 0;\n const next = () => {\n const [i, length] = varint.decode(initialBytes.subarray(offset));\n offset += length;\n return i;\n };\n let version = next();\n let codec = DAG_PB_CODE;\n if (version === 18) {\n version = 0;\n offset = 0;\n } else if (version === 1) {\n codec = next();\n }\n if (version !== 0 && version !== 1) {\n throw new RangeError(`Invalid CID version ${ version }`);\n }\n const prefixSize = offset;\n const multihashCode = next();\n const digestSize = next();\n const size = offset + digestSize;\n const multihashSize = size - prefixSize;\n return {\n version,\n codec,\n multihashCode,\n digestSize,\n multihashSize,\n size\n };\n }\n static parse(source, base) {\n const [prefix, bytes] = parseCIDtoBytes(source, base);\n const cid = CID.decode(bytes);\n cid._baseCache.set(prefix, source);\n return cid;\n }\n}\nconst parseCIDtoBytes = (source, base) => {\n switch (source[0]) {\n case 'Q': {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(`${ base58btc.prefix }${ source }`)\n ];\n }\n case base58btc.prefix: {\n const decoder = base || base58btc;\n return [\n base58btc.prefix,\n decoder.decode(source)\n ];\n }\n case base32.prefix: {\n const decoder = base || base32;\n return [\n base32.prefix,\n decoder.decode(source)\n ];\n }\n default: {\n if (base == null) {\n throw Error('To parse non base32 or base58btc encoded CID multibase decoder must be provided');\n }\n return [\n source[0],\n base.decode(source)\n ];\n }\n }\n};\nconst toStringV0 = (bytes, cache, base) => {\n const {prefix} = base;\n if (prefix !== base58btc.prefix) {\n throw Error(`Cannot string encode V0 in ${ base.name } encoding`);\n }\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes).slice(1);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst toStringV1 = (bytes, cache, base) => {\n const {prefix} = base;\n const cid = cache.get(prefix);\n if (cid == null) {\n const cid = base.encode(bytes);\n cache.set(prefix, cid);\n return cid;\n } else {\n return cid;\n }\n};\nconst DAG_PB_CODE = 112;\nconst SHA_256_CODE = 18;\nconst encodeCID = (version, code, multihash) => {\n const codeOffset = varint.encodingLength(version);\n const hashOffset = codeOffset + varint.encodingLength(code);\n const bytes = new Uint8Array(hashOffset + multihash.byteLength);\n varint.encodeTo(version, bytes, 0);\n varint.encodeTo(code, bytes, codeOffset);\n bytes.set(multihash, hashOffset);\n return bytes;\n};\nconst cidSymbol = Symbol.for('@ipld/js-cid/CID');\nconst readonly = {\n writable: false,\n configurable: false,\n enumerable: true\n};\nconst hidden = {\n writable: false,\n enumerable: false,\n configurable: false\n};\nconst version = '0.0.0-dev';\nconst deprecate = (range, message) => {\n if (range.test(version)) {\n console.warn(message);\n } else {\n throw new Error(message);\n }\n};\nconst IS_CID_DEPRECATION = `CID.isCID(v) is deprecated and will be removed in the next major release.\nFollowing code pattern:\n\nif (CID.isCID(value)) {\n doSomethingWithCID(value)\n}\n\nIs replaced with:\n\nconst cid = CID.asCID(value)\nif (cid) {\n // Make sure to use cid instead of value\n doSomethingWithCID(cid)\n}\n`;","import * as identityBase from './bases/identity.js';\nimport * as base2 from './bases/base2.js';\nimport * as base8 from './bases/base8.js';\nimport * as base10 from './bases/base10.js';\nimport * as base16 from './bases/base16.js';\nimport * as base32 from './bases/base32.js';\nimport * as base36 from './bases/base36.js';\nimport * as base58 from './bases/base58.js';\nimport * as base64 from './bases/base64.js';\nimport * as base256emoji from './bases/base256emoji.js';\nimport * as sha2 from './hashes/sha2.js';\nimport * as identity from './hashes/identity.js';\nimport * as raw from './codecs/raw.js';\nimport * as json from './codecs/json.js';\nimport {\n CID,\n hasher,\n digest,\n varint,\n bytes\n} from './index.js';\nconst bases = {\n ...identityBase,\n ...base2,\n ...base8,\n ...base10,\n ...base16,\n ...base32,\n ...base36,\n ...base58,\n ...base64,\n ...base256emoji\n};\nconst hashes = {\n ...sha2,\n ...identity\n};\nconst codecs = {\n raw,\n json\n};\nexport {\n CID,\n hasher,\n digest,\n varint,\n bytes,\n hashes,\n bases,\n codecs\n};","import { bases } from 'multiformats/basics';\nimport { allocUnsafe } from '../alloc.js';\nfunction createCodec(name, prefix, encode, decode) {\n return {\n name,\n prefix,\n encoder: {\n name,\n prefix,\n encode\n },\n decoder: { decode }\n };\n}\nconst string = createCodec('utf8', 'u', buf => {\n const decoder = new TextDecoder('utf8');\n return 'u' + decoder.decode(buf);\n}, str => {\n const encoder = new TextEncoder();\n return encoder.encode(str.substring(1));\n});\nconst ascii = createCodec('ascii', 'a', buf => {\n let string = 'a';\n for (let i = 0; i < buf.length; i++) {\n string += String.fromCharCode(buf[i]);\n }\n return string;\n}, str => {\n str = str.substring(1);\n const buf = allocUnsafe(str.length);\n for (let i = 0; i < str.length; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n});\nconst BASES = {\n utf8: string,\n 'utf-8': string,\n hex: bases.base16,\n latin1: ascii,\n ascii: ascii,\n binary: ascii,\n ...bases\n};\nexport default BASES;","export function parseAccount(account) {\n if (typeof account === 'string')\n return { address: account, type: 'json-rpc' };\n return account;\n}\n//# sourceMappingURL=parseAccount.js.map","export const aggregate3Signature = '0x82ad56cb';\n//# sourceMappingURL=contract.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { multicall3Abi } from '../../constants/abis.js';\nimport { aggregate3Signature } from '../../constants/contract.js';\nimport { BaseError } from '../../errors/base.js';\nimport { ChainDoesNotSupportContract, ClientChainNotConfiguredError, } from '../../errors/chain.js';\nimport { RawContractError, } from '../../errors/contract.js';\nimport { decodeFunctionResult, } from '../../utils/abi/decodeFunctionResult.js';\nimport { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getChainContractAddress, } from '../../utils/chain/getChainContractAddress.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getCallError, } from '../../utils/errors/getCallError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { createBatchScheduler, } from '../../utils/promise/createBatchScheduler.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\n/**\n * Executes a new message call immediately without submitting a transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/call.html\n * - JSON-RPC Methods: [`eth_call`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_call)\n *\n * @param client - Client to use\n * @param parameters - {@link CallParameters}\n * @returns The call data. {@link CallReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { call } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const data = await call(client, {\n * account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',\n * data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * })\n */\nexport async function call(client, args) {\n const { account: account_ = client.account, batch = Boolean(client.batch?.multicall), blockNumber, blockTag = 'latest', accessList, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n try {\n assertRequest(args);\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n from: account?.address,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n if (batch && shouldPerformMulticall({ request })) {\n try {\n return await scheduleMulticall(client, {\n ...request,\n blockNumber,\n blockTag,\n });\n }\n catch (err) {\n if (!(err instanceof ClientChainNotConfiguredError) &&\n !(err instanceof ChainDoesNotSupportContract))\n throw err;\n }\n }\n const response = await client.request({\n method: 'eth_call',\n params: block\n ? [request, block]\n : [request],\n });\n if (response === '0x')\n return { data: undefined };\n return { data: response };\n }\n catch (err) {\n const data = getRevertErrorData(err);\n const { offchainLookup, offchainLookupSignature } = await import('../../utils/ccip.js');\n if (data?.slice(0, 10) === offchainLookupSignature && to) {\n return { data: await offchainLookup(client, { data, to }) };\n }\n throw getCallError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n// We only want to perform a scheduled multicall if:\n// - The request has calldata,\n// - The request has a target address,\n// - The target address is not already the aggregate3 signature,\n// - The request has no other properties (`nonce`, `gas`, etc cannot be sent with a multicall).\nfunction shouldPerformMulticall({ request }) {\n const { data, to, ...request_ } = request;\n if (!data)\n return false;\n if (data.startsWith(aggregate3Signature))\n return false;\n if (!to)\n return false;\n if (Object.values(request_).filter((x) => typeof x !== 'undefined').length > 0)\n return false;\n return true;\n}\nasync function scheduleMulticall(client, args) {\n const { batchSize = 1024, wait = 0 } = typeof client.batch?.multicall === 'object' ? client.batch.multicall : {};\n const { blockNumber, blockTag = 'latest', data, multicallAddress: multicallAddress_, to, } = args;\n let multicallAddress = multicallAddress_;\n if (!multicallAddress) {\n if (!client.chain)\n throw new ClientChainNotConfiguredError();\n multicallAddress = getChainContractAddress({\n blockNumber,\n chain: client.chain,\n contract: 'multicall3',\n });\n }\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n const { schedule } = createBatchScheduler({\n id: `${client.uid}.${block}`,\n wait,\n shouldSplitBatch(args) {\n const size = args.reduce((size, { data }) => size + (data.length - 2), 0);\n return size > batchSize * 2;\n },\n fn: async (requests) => {\n const calls = requests.map((request) => ({\n allowFailure: true,\n callData: request.data,\n target: request.to,\n }));\n const calldata = encodeFunctionData({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n });\n const data = await client.request({\n method: 'eth_call',\n params: [\n {\n data: calldata,\n to: multicallAddress,\n },\n block,\n ],\n });\n return decodeFunctionResult({\n abi: multicall3Abi,\n args: [calls],\n functionName: 'aggregate3',\n data: data || '0x',\n });\n },\n });\n const [{ returnData, success }] = await schedule({ data, to });\n if (!success)\n throw new RawContractError({ data: returnData });\n if (returnData === '0x')\n return { data: undefined };\n return { data: returnData };\n}\nexport function getRevertErrorData(err) {\n if (!(err instanceof BaseError))\n return undefined;\n const error = err.walk();\n return typeof error.data === 'object' ? error.data.data : error.data;\n}\n//# sourceMappingURL=call.js.map","import { CallExecutionError, } from '../../errors/contract.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getCallError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new CallExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getCallError.js.map","import { BaseFeeScalarError, Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { internal_estimateMaxPriorityFeePerGas, } from './estimateMaxPriorityFeePerGas.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the fees per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.estimateFeesPerGas`](/docs/clients/chains.html#fees-estimatefeespergas) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateFeesPerGas.html\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateFeesPerGasParameters}\n * @returns An estimate (in wei) for the fees per gas. {@link EstimateFeesPerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateFeesPerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateFeesPerGas(client)\n * // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }\n */\nexport async function estimateFeesPerGas(client, args) {\n return internal_estimateFeesPerGas(client, args);\n}\nexport async function internal_estimateFeesPerGas(client, args) {\n const { block: block_, chain = client.chain, request, type = 'eip1559', } = args || {};\n const baseFeeMultiplier = await (async () => {\n if (typeof chain?.fees?.baseFeeMultiplier === 'function')\n return chain.fees.baseFeeMultiplier({\n block: block_,\n client,\n request,\n });\n return chain?.fees?.baseFeeMultiplier ?? 1.2;\n })();\n if (baseFeeMultiplier < 1)\n throw new BaseFeeScalarError();\n const decimals = baseFeeMultiplier.toString().split('.')[1]?.length ?? 0;\n const denominator = 10 ** decimals;\n const multiply = (base) => (base * BigInt(Math.ceil(baseFeeMultiplier * denominator))) /\n BigInt(denominator);\n const block = block_\n ? block_\n : await getAction(client, getBlock, 'getBlock')({});\n if (typeof chain?.fees?.estimateFeesPerGas === 'function')\n return chain.fees.estimateFeesPerGas({\n block: block_,\n client,\n multiply,\n request,\n type,\n });\n if (type === 'eip1559') {\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = request?.maxPriorityFeePerGas\n ? request.maxPriorityFeePerGas\n : await internal_estimateMaxPriorityFeePerGas(client, {\n block,\n chain,\n request,\n });\n const baseFeePerGas = multiply(block.baseFeePerGas);\n const maxFeePerGas = request?.maxFeePerGas ?? baseFeePerGas + maxPriorityFeePerGas;\n return {\n maxFeePerGas,\n maxPriorityFeePerGas,\n };\n }\n const gasPrice = request?.gasPrice ??\n multiply(await getAction(client, getGasPrice, 'getGasPrice')({}));\n return {\n gasPrice,\n };\n}\n//# sourceMappingURL=estimateFeesPerGas.js.map","import { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nimport { prettyPrint } from './transaction.js';\nexport class EstimateGasExecutionError extends BaseError {\n constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Estimate Gas Arguments:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'EstimateGasExecutionError'\n });\n this.cause = cause;\n }\n}\n//# sourceMappingURL=estimateGas.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { getEstimateGasError, } from '../../utils/errors/getEstimateGasError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { prepareTransactionRequest, } from '../wallet/prepareTransactionRequest.js';\n/**\n * Estimates the gas necessary to complete a transaction without submitting it to the network.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateGas.html\n * - JSON-RPC Methods: [`eth_estimateGas`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_estimategas)\n *\n * @param client - Client to use\n * @param parameters - {@link EstimateGasParameters}\n * @returns The gas estimate (in wei). {@link EstimateGasReturnType}\n *\n * @example\n * import { createPublicClient, http, parseEther } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateGas } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasEstimate = await estimateGas(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: parseEther('1'),\n * })\n */\nexport async function estimateGas(client, args) {\n const account_ = args.account ?? client.account;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/public/estimateGas',\n });\n const account = parseAccount(account_);\n try {\n const { accessList, blockNumber, blockTag, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = account.type === 'local'\n ? (await prepareTransactionRequest(client, args))\n : args;\n const blockNumberHex = blockNumber ? numberToHex(blockNumber) : undefined;\n const block = blockNumberHex || blockTag;\n assertRequest(args);\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n from: account.address,\n accessList,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n const balance = await client.request({\n method: 'eth_estimateGas',\n params: block ? [request, block] : [request],\n });\n return BigInt(balance);\n }\n catch (err) {\n throw getEstimateGasError(err, {\n ...args,\n account,\n chain: client.chain,\n });\n }\n}\n//# sourceMappingURL=estimateGas.js.map","import { EstimateGasExecutionError, } from '../../errors/estimateGas.js';\nimport { UnknownNodeError } from '../../errors/node.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getEstimateGasError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new EstimateGasExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getEstimateGasError.js.map","import { Eip1559FeesNotSupportedError, } from '../../errors/fee.js';\nimport { hexToBigInt, } from '../../utils/encoding/fromHex.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { getBlock } from './getBlock.js';\nimport { getGasPrice } from './getGasPrice.js';\n/**\n * Returns an estimate for the max priority fee per gas (in wei) for a\n * transaction to be likely included in the next block.\n * Defaults to [`chain.fees.defaultPriorityFee`](/docs/clients/chains.html#fees-defaultpriorityfee) if set.\n *\n * - Docs: https://viem.sh/docs/actions/public/estimateMaxPriorityFeePerGas.html\n *\n * @param client - Client to use\n * @returns An estimate (in wei) for the max priority fee per gas. {@link EstimateMaxPriorityFeePerGasReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { estimateMaxPriorityFeePerGas } from 'viem/actions'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const maxPriorityFeePerGas = await estimateMaxPriorityFeePerGas(client)\n * // 10000000n\n */\nexport async function estimateMaxPriorityFeePerGas(client, args) {\n return internal_estimateMaxPriorityFeePerGas(client, args);\n}\nexport async function internal_estimateMaxPriorityFeePerGas(client, args) {\n const { block: block_, chain = client.chain, request } = args || {};\n if (typeof chain?.fees?.defaultPriorityFee === 'function') {\n const block = block_ || (await getAction(client, getBlock, 'getBlock')({}));\n return chain.fees.defaultPriorityFee({\n block,\n client,\n request,\n });\n }\n if (typeof chain?.fees?.defaultPriorityFee !== 'undefined')\n return chain?.fees?.defaultPriorityFee;\n try {\n const maxPriorityFeePerGasHex = await client.request({\n method: 'eth_maxPriorityFeePerGas',\n });\n return hexToBigInt(maxPriorityFeePerGasHex);\n }\n catch {\n // If the RPC Provider does not support `eth_maxPriorityFeePerGas`\n // fall back to calculating it manually via `gasPrice - baseFeePerGas`.\n // See: https://github.com/ethereum/pm/issues/328#:~:text=eth_maxPriorityFeePerGas%20after%20London%20will%20effectively%20return%20eth_gasPrice%20%2D%20baseFee\n const [block, gasPrice] = await Promise.all([\n block_\n ? Promise.resolve(block_)\n : getAction(client, getBlock, 'getBlock')({}),\n getAction(client, getGasPrice, 'getGasPrice')({}),\n ]);\n if (typeof block.baseFeePerGas !== 'bigint')\n throw new Eip1559FeesNotSupportedError();\n const maxPriorityFeePerGas = gasPrice - block.baseFeePerGas;\n if (maxPriorityFeePerGas < 0n)\n return 0n;\n return maxPriorityFeePerGas;\n }\n}\n//# sourceMappingURL=estimateMaxPriorityFeePerGas.js.map","import { BlockNotFoundError, } from '../../errors/block.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\nimport { formatBlock, } from '../../utils/formatters/block.js';\n/**\n * Returns information about a block at a block number, hash, or tag.\n *\n * - Docs: https://viem.sh/docs/actions/public/getBlock.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/blocks/fetching-blocks\n * - JSON-RPC Methods:\n * - Calls [`eth_getBlockByNumber`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbynumber) for `blockNumber` & `blockTag`.\n * - Calls [`eth_getBlockByHash`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_getblockbyhash) for `blockHash`.\n *\n * @param client - Client to use\n * @param parameters - {@link GetBlockParameters}\n * @returns Information about the block. {@link GetBlockReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getBlock } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const block = await getBlock(client)\n */\nexport async function getBlock(client, { blockHash, blockNumber, blockTag: blockTag_, includeTransactions: includeTransactions_, } = {}) {\n const blockTag = blockTag_ ?? 'latest';\n const includeTransactions = includeTransactions_ ?? false;\n const blockNumberHex = blockNumber !== undefined ? numberToHex(blockNumber) : undefined;\n let block = null;\n if (blockHash) {\n block = await client.request({\n method: 'eth_getBlockByHash',\n params: [blockHash, includeTransactions],\n });\n }\n else {\n block = await client.request({\n method: 'eth_getBlockByNumber',\n params: [blockNumberHex || blockTag, includeTransactions],\n });\n }\n if (!block)\n throw new BlockNotFoundError({ blockHash, blockNumber });\n const format = client.chain?.formatters?.block?.format || formatBlock;\n return format(block);\n}\n//# sourceMappingURL=getBlock.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\n/**\n * Returns the chain ID associated with the current network.\n *\n * - Docs: https://viem.sh/docs/actions/public/getChainId.html\n * - JSON-RPC Methods: [`eth_chainId`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_chainid)\n *\n * @param client - Client to use\n * @returns The current chain ID. {@link GetChainIdReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getChainId } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const chainId = await getChainId(client)\n * // 1\n */\nexport async function getChainId(client) {\n const chainIdHex = await client.request({\n method: 'eth_chainId',\n });\n return hexToNumber(chainIdHex);\n}\n//# sourceMappingURL=getChainId.js.map","/**\n * Returns the current price of gas (in wei).\n *\n * - Docs: https://viem.sh/docs/actions/public/getGasPrice.html\n * - JSON-RPC Methods: [`eth_gasPrice`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gasprice)\n *\n * @param client - Client to use\n * @returns The gas price (in wei). {@link GetGasPriceReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getGasPrice } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const gasPrice = await getGasPrice(client)\n */\nexport async function getGasPrice(client) {\n const gasPrice = await client.request({\n method: 'eth_gasPrice',\n });\n return BigInt(gasPrice);\n}\n//# sourceMappingURL=getGasPrice.js.map","import { hexToNumber, } from '../../utils/encoding/fromHex.js';\nimport { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Returns the number of [Transactions](https://viem.sh/docs/glossary/terms.html#transaction) an Account has broadcast / sent.\n *\n * - Docs: https://viem.sh/docs/actions/public/getTransactionCount.html\n * - JSON-RPC Methods: [`eth_getTransactionCount`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_gettransactioncount)\n *\n * @param client - Client to use\n * @param parameters - {@link GetTransactionCountParameters}\n * @returns The number of transactions an account has sent. {@link GetTransactionCountReturnType}\n *\n * @example\n * import { createPublicClient, http } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getTransactionCount } from 'viem/public'\n *\n * const client = createPublicClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const transactionCount = await getTransactionCount(client, {\n * address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * })\n */\nexport async function getTransactionCount(client, { address, blockTag = 'latest', blockNumber }) {\n const count = await client.request({\n method: 'eth_getTransactionCount',\n params: [address, blockNumber ? numberToHex(blockNumber) : blockTag],\n });\n return hexToNumber(count);\n}\n//# sourceMappingURL=getTransactionCount.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { internal_estimateFeesPerGas, } from '../../actions/public/estimateFeesPerGas.js';\nimport { estimateGas, } from '../../actions/public/estimateGas.js';\nimport { getBlock, } from '../../actions/public/getBlock.js';\nimport { getTransactionCount, } from '../../actions/public/getTransactionCount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { Eip1559FeesNotSupportedError, MaxFeePerGasTooLowError, } from '../../errors/fee.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest } from '../../utils/transaction/assertRequest.js';\nimport { getTransactionType } from '../../utils/transaction/getTransactionType.js';\n/**\n * Prepares a transaction request for signing.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/prepareTransactionRequest.html\n *\n * @param args - {@link PrepareTransactionRequestParameters}\n * @returns The transaction request. {@link PrepareTransactionRequestReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { prepareTransactionRequest } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const request = await prepareTransactionRequest(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function prepareTransactionRequest(client, args) {\n const { account: account_ = client.account, chain, gas, nonce, type } = args;\n if (!account_)\n throw new AccountNotFoundError();\n const account = parseAccount(account_);\n const block = await getAction(client, getBlock, 'getBlock')({ blockTag: 'latest' });\n const request = { ...args, from: account.address };\n if (typeof nonce === 'undefined')\n request.nonce = await getAction(client, getTransactionCount, 'getTransactionCount')({\n address: account.address,\n blockTag: 'pending',\n });\n if (typeof type === 'undefined') {\n try {\n request.type = getTransactionType(request);\n }\n catch {\n // infer type from block\n request.type =\n typeof block.baseFeePerGas === 'bigint' ? 'eip1559' : 'legacy';\n }\n }\n if (request.type === 'eip1559') {\n // EIP-1559 fees\n const { maxFeePerGas, maxPriorityFeePerGas } = await internal_estimateFeesPerGas(client, {\n block,\n chain,\n request: request,\n });\n if (typeof args.maxPriorityFeePerGas === 'undefined' &&\n args.maxFeePerGas &&\n args.maxFeePerGas < maxPriorityFeePerGas)\n throw new MaxFeePerGasTooLowError({\n maxPriorityFeePerGas,\n });\n request.maxPriorityFeePerGas = maxPriorityFeePerGas;\n request.maxFeePerGas = maxFeePerGas;\n }\n else {\n // Legacy fees\n if (typeof args.maxFeePerGas !== 'undefined' ||\n typeof args.maxPriorityFeePerGas !== 'undefined')\n throw new Eip1559FeesNotSupportedError();\n const { gasPrice: gasPrice_ } = await internal_estimateFeesPerGas(client, {\n block,\n chain,\n request: request,\n type: 'legacy',\n });\n request.gasPrice = gasPrice_;\n }\n if (typeof gas === 'undefined')\n request.gas = await getAction(client, estimateGas, 'estimateGas')({\n ...request,\n account: { address: account.address, type: 'json-rpc' },\n });\n assertRequest(request);\n return request;\n}\n//# sourceMappingURL=prepareTransactionRequest.js.map","import { InvalidSerializableTransactionError, } from '../../errors/transaction.js';\nexport function getTransactionType(transaction) {\n if (transaction.type)\n return transaction.type;\n if (typeof transaction.maxFeePerGas !== 'undefined' ||\n typeof transaction.maxPriorityFeePerGas !== 'undefined')\n return 'eip1559';\n if (typeof transaction.gasPrice !== 'undefined') {\n if (typeof transaction.accessList !== 'undefined')\n return 'eip2930';\n return 'legacy';\n }\n throw new InvalidSerializableTransactionError({ transaction });\n}\n//# sourceMappingURL=getTransactionType.js.map","/**\n * Sends a **signed** transaction to the network\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendRawTransaction.html\n * - JSON-RPC Method: [`eth_sendRawTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n *\n * @param client - Client to use\n * @param parameters - {@link SendRawTransactionParameters}\n * @returns The transaction hash. {@link SendRawTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendRawTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n *\n * const hash = await sendRawTransaction(client, {\n * serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'\n * })\n */\nexport async function sendRawTransaction(client, { serializedTransaction }) {\n return client.request({\n method: 'eth_sendRawTransaction',\n params: [serializedTransaction],\n });\n}\n//# sourceMappingURL=sendRawTransaction.js.map","const size = 256;\nlet index = size;\nlet buffer;\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = '';\n index = 0;\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1);\n }\n }\n return buffer.substring(index, index++ + length);\n}\n//# sourceMappingURL=uid.js.map","import { parseAccount } from '../utils/accounts.js';\nimport { uid } from '../utils/uid.js';\nexport function createClient(parameters) {\n const { batch, cacheTime = parameters.pollingInterval ?? 4000, key = 'base', name = 'Base Client', pollingInterval = 4000, type = 'base', } = parameters;\n const chain = parameters.chain;\n const account = parameters.account\n ? parseAccount(parameters.account)\n : undefined;\n const { config, request, value } = parameters.transport({\n chain,\n pollingInterval,\n });\n const transport = { ...config, ...value };\n const client = {\n account,\n batch,\n cacheTime,\n chain,\n key,\n name,\n pollingInterval,\n request,\n transport,\n type,\n uid: uid(),\n };\n function extend(base) {\n return (extendFn) => {\n const extended = extendFn(base);\n for (const key in client)\n delete extended[key];\n const combined = { ...base, ...extended };\n return Object.assign(combined, { extend: extend(combined) });\n };\n }\n return Object.assign(client, { extend: extend(client) });\n}\n//# sourceMappingURL=createClient.js.map","import { ChainMismatchError, ChainNotFoundError, } from '../../errors/chain.js';\nexport function assertCurrentChain({ chain, currentChainId, }) {\n if (!chain)\n throw new ChainNotFoundError();\n if (currentChainId !== chain.id)\n throw new ChainMismatchError({ chain, currentChainId });\n}\n//# sourceMappingURL=assertCurrentChain.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { getTransactionError, } from '../../utils/errors/getTransactionError.js';\nimport { extract } from '../../utils/formatters/extract.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\nimport { prepareTransactionRequest, } from './prepareTransactionRequest.js';\nimport { sendRawTransaction, } from './sendRawTransaction.js';\n/**\n * Creates, signs, and sends a new transaction to the network.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/sendTransaction.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/transactions/sending-transactions\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_sendTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendtransaction)\n * - Local Accounts: [`eth_sendRawTransaction`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_sendrawtransaction)\n *\n * @param client - Client to use\n * @param parameters - {@link SendTransactionParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link SendTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await sendTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { sendTransaction } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await sendTransaction(client, {\n * to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',\n * value: 1000000000000000000n,\n * })\n */\nexport async function sendTransaction(client, args) {\n const { account: account_ = client.account, chain = client.chain, accessList, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, ...rest } = args;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/sendTransaction',\n });\n const account = parseAccount(account_);\n try {\n assertRequest(args);\n let chainId;\n if (chain !== null) {\n chainId = await getAction(client, getChainId, 'getChainId')({});\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n }\n if (account.type === 'local') {\n // Prepare the request for signing (assign appropriate fees, etc.)\n const request = await getAction(client, prepareTransactionRequest, 'prepareTransactionRequest')({\n account,\n accessList,\n chain,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n ...rest,\n });\n if (!chainId)\n chainId = await getAction(client, getChainId, 'getChainId')({});\n const serializer = chain?.serializers?.transaction;\n const serializedTransaction = (await account.signTransaction({\n ...request,\n chainId,\n }, { serializer }));\n return await getAction(client, sendRawTransaction, 'sendRawTransaction')({\n serializedTransaction,\n });\n }\n const chainFormat = client.chain?.formatters?.transactionRequest?.format;\n const format = chainFormat || formatTransactionRequest;\n const request = format({\n // Pick out extra data that might exist on the chain's transaction request type.\n ...extract(rest, { format: chainFormat }),\n accessList,\n data,\n from: account.address,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n });\n return await client.request({\n method: 'eth_sendTransaction',\n params: [request],\n });\n }\n catch (err) {\n throw getTransactionError(err, {\n ...args,\n account,\n chain: args.chain || undefined,\n });\n }\n}\n//# sourceMappingURL=sendTransaction.js.map","import { UnknownNodeError } from '../../errors/node.js';\nimport { TransactionExecutionError, } from '../../errors/transaction.js';\nimport { getNodeError, } from './getNodeError.js';\nexport function getTransactionError(err, { docsPath, ...args }) {\n const cause = (() => {\n const cause = getNodeError(err, args);\n if (cause instanceof UnknownNodeError)\n return err;\n return cause;\n })();\n return new TransactionExecutionError(cause, {\n docsPath,\n ...args,\n });\n}\n//# sourceMappingURL=getTransactionError.js.map","import { getChainId, } from '../../actions/public/getChainId.js';\nimport { addChain, } from '../../actions/wallet/addChain.js';\nimport { deployContract, } from '../../actions/wallet/deployContract.js';\nimport { getAddresses, } from '../../actions/wallet/getAddresses.js';\nimport { getPermissions, } from '../../actions/wallet/getPermissions.js';\nimport { prepareTransactionRequest, } from '../../actions/wallet/prepareTransactionRequest.js';\nimport { requestAddresses, } from '../../actions/wallet/requestAddresses.js';\nimport { requestPermissions, } from '../../actions/wallet/requestPermissions.js';\nimport { sendRawTransaction, } from '../../actions/wallet/sendRawTransaction.js';\nimport { sendTransaction, } from '../../actions/wallet/sendTransaction.js';\nimport { signMessage, } from '../../actions/wallet/signMessage.js';\nimport { signTransaction, } from '../../actions/wallet/signTransaction.js';\nimport { signTypedData, } from '../../actions/wallet/signTypedData.js';\nimport { switchChain, } from '../../actions/wallet/switchChain.js';\nimport { watchAsset, } from '../../actions/wallet/watchAsset.js';\nimport { writeContract, } from '../../actions/wallet/writeContract.js';\nexport function walletActions(client) {\n return {\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n getAddresses: () => getAddresses(client),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n prepareTransactionRequest: (args) => prepareTransactionRequest(client, args),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendRawTransaction: (args) => sendRawTransaction(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n signMessage: (args) => signMessage(client, args),\n signTransaction: (args) => signTransaction(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n };\n}\n//# sourceMappingURL=wallet.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/addChain.html\n * - JSON-RPC Methods: [`eth_addEthereumChain`](https://eips.ethereum.org/EIPS/eip-3085)\n *\n * @param client - Client to use\n * @param parameters - {@link AddChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { optimism } from 'viem/chains'\n * import { addChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * transport: custom(window.ethereum),\n * })\n * await addChain(client, { chain: optimism })\n */\nexport async function addChain(client, { chain }) {\n const { id, name, nativeCurrency, rpcUrls, blockExplorers } = chain;\n await client.request({\n method: 'wallet_addEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n chainName: name,\n nativeCurrency,\n rpcUrls: rpcUrls.default.http,\n blockExplorerUrls: blockExplorers\n ? Object.values(blockExplorers).map(({ url }) => url)\n : undefined,\n },\n ],\n });\n}\n//# sourceMappingURL=addChain.js.map","import { encodeDeployData } from '../../utils/abi/encodeDeployData.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Deploys a contract to the network, given bytecode and constructor arguments.\n *\n * - Docs: https://viem.sh/docs/contract/deployContract.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/deploying-contracts\n *\n * @param client - Client to use\n * @param parameters - {@link DeployContractParameters}\n * @returns The [Transaction](https://viem.sh/docs/glossary/terms.html#transaction) hash. {@link DeployContractReturnType}\n *\n * @example\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { deployContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const hash = await deployContract(client, {\n * abi: [],\n * account: '0x…,\n * bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',\n * })\n */\nexport function deployContract(walletClient, { abi, args, bytecode, ...request }) {\n const calldata = encodeDeployData({\n abi,\n args,\n bytecode,\n });\n return sendTransaction(walletClient, {\n ...request,\n data: calldata,\n });\n}\n//# sourceMappingURL=deployContract.js.map","import { checksumAddress, } from '../../utils/address/getAddress.js';\n/**\n * Returns a list of account addresses owned by the wallet or client.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getAddresses.html\n * - JSON-RPC Methods: [`eth_accounts`](https://ethereum.org/en/developers/docs/apis/json-rpc/#eth_accounts)\n *\n * @param client - Client to use\n * @returns List of account addresses owned by the wallet or client. {@link GetAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await getAddresses(client)\n */\nexport async function getAddresses(client) {\n if (client.account?.type === 'local')\n return [client.account.address];\n const addresses = await client.request({ method: 'eth_accounts' });\n return addresses.map((address) => checksumAddress(address));\n}\n//# sourceMappingURL=getAddresses.js.map","/**\n * Gets the wallets current permissions.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/getPermissions.html\n * - JSON-RPC Methods: [`wallet_getPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @returns The wallet permissions. {@link GetPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { getPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await getPermissions(client)\n */\nexport async function getPermissions(client) {\n const permissions = await client.request({ method: 'wallet_getPermissions' });\n return permissions;\n}\n//# sourceMappingURL=getPermissions.js.map","import { getAddress } from '../../utils/address/getAddress.js';\n/**\n * Requests a list of accounts managed by a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestAddresses.html\n * - JSON-RPC Methods: [`eth_requestAccounts`](https://eips.ethereum.org/EIPS/eip-1102)\n *\n * Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).\n *\n * This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.\n *\n * @param client - Client to use\n * @returns List of accounts managed by a wallet {@link RequestAddressesReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestAddresses } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const accounts = await requestAddresses(client)\n */\nexport async function requestAddresses(client) {\n const addresses = await client.request({ method: 'eth_requestAccounts' });\n return addresses.map((address) => getAddress(address));\n}\n//# sourceMappingURL=requestAddresses.js.map","/**\n * Requests permissions for a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/requestPermissions.html\n * - JSON-RPC Methods: [`wallet_requestPermissions`](https://eips.ethereum.org/EIPS/eip-2255)\n *\n * @param client - Client to use\n * @param parameters - {@link RequestPermissionsParameters}\n * @returns The wallet permissions. {@link RequestPermissionsReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { requestPermissions } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const permissions = await requestPermissions(client, {\n * eth_accounts: {}\n * })\n */\nexport async function requestPermissions(client, permissions) {\n return client.request({\n method: 'wallet_requestPermissions',\n params: [permissions],\n });\n}\n//# sourceMappingURL=requestPermissions.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport { stringToHex, toHex, } from '../../utils/encoding/toHex.js';\n/**\n * Calculates an Ethereum-specific signature in [EIP-191 format](https://eips.ethereum.org/EIPS/eip-191): `keccak256(\"\\x19Ethereum Signed Message:\\n\" + len(message) + message))`.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signMessage.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`personal_sign`](https://docs.metamask.io/guide/signing-data.html#personal-sign)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * With the calculated signature, you can:\n * - use [`verifyMessage`](https://viem.sh/docs/utilities/verifyMessage.html) to verify the signature,\n * - use [`recoverMessageAddress`](https://viem.sh/docs/utilities/recoverMessageAddress.html) to recover the signing address from a signature.\n *\n * @param client - Client to use\n * @param parameters - {@link SignMessageParameters}\n * @returns The signed message. {@link SignMessageReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * message: 'hello world',\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, custom } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signMessage } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signMessage(client, {\n * message: 'hello world',\n * })\n */\nexport async function signMessage(client, { account: account_ = client.account, message, }) {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signMessage',\n });\n const account = parseAccount(account_);\n if (account.type === 'local')\n return account.signMessage({ message });\n const message_ = (() => {\n if (typeof message === 'string')\n return stringToHex(message);\n if (message.raw instanceof Uint8Array)\n return toHex(message.raw);\n return message.raw;\n })();\n return client.request({\n method: 'personal_sign',\n params: [message_, account.address],\n });\n}\n//# sourceMappingURL=signMessage.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError } from '../../errors/account.js';\nimport {} from '../../types/rpc.js';\nimport { assertCurrentChain, } from '../../utils/chain/assertCurrentChain.js';\nimport { formatTransactionRequest, } from '../../utils/formatters/transactionRequest.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { numberToHex } from '../../utils/index.js';\nimport { assertRequest, } from '../../utils/transaction/assertRequest.js';\nimport { getChainId } from '../public/getChainId.js';\n/**\n * Signs a transaction.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTransaction.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTransaction`](https://ethereum.github.io/execution-apis/api-documentation/)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param args - {@link SignTransactionParameters}\n * @returns The signed serialized tranasction. {@link SignTransactionReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTransaction } from 'viem/actions'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTransaction(client, {\n * to: '0x0000000000000000000000000000000000000000',\n * value: 1n,\n * })\n */\nexport async function signTransaction(client, args) {\n const { account: account_ = client.account, chain = client.chain, ...transaction } = args;\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTransaction',\n });\n const account = parseAccount(account_);\n assertRequest({\n account,\n ...args,\n });\n const chainId = await getAction(client, getChainId, 'getChainId')({});\n if (chain !== null)\n assertCurrentChain({\n currentChainId: chainId,\n chain,\n });\n const formatters = chain?.formatters || client.chain?.formatters;\n const format = formatters?.transactionRequest?.format || formatTransactionRequest;\n if (account.type === 'local')\n return account.signTransaction({\n ...transaction,\n chainId,\n }, { serializer: client.chain?.serializers?.transaction });\n return await client.request({\n method: 'eth_signTransaction',\n params: [\n {\n ...format(transaction),\n chainId: numberToHex(chainId),\n from: account.address,\n },\n ],\n });\n}\n//# sourceMappingURL=signTransaction.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { AccountNotFoundError, } from '../../errors/account.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { stringify } from '../../utils/stringify.js';\nimport { getTypesForEIP712Domain, validateTypedData, } from '../../utils/typedData.js';\n/**\n * Signs typed data and calculates an Ethereum-specific signature in [https://eips.ethereum.org/EIPS/eip-712](https://eips.ethereum.org/EIPS/eip-712): `sign(keccak256(\"\\x19\\x01\" ‖ domainSeparator ‖ hashStruct(message)))`\n *\n * - Docs: https://viem.sh/docs/actions/wallet/signTypedData.html\n * - JSON-RPC Methods:\n * - JSON-RPC Accounts: [`eth_signTypedData_v4`](https://docs.metamask.io/guide/signing-data.html#signtypeddata-v4)\n * - Local Accounts: Signs locally. No JSON-RPC request.\n *\n * @param client - Client to use\n * @param parameters - {@link SignTypedDataParameters}\n * @returns The signed data. {@link SignTypedDataReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const signature = await signTypedData(client, {\n * account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n *\n * @example\n * // Account Hoisting\n * import { createWalletClient, http } from 'viem'\n * import { privateKeyToAccount } from 'viem/accounts'\n * import { mainnet } from 'viem/chains'\n * import { signTypedData } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * account: privateKeyToAccount('0x…'),\n * chain: mainnet,\n * transport: http(),\n * })\n * const signature = await signTypedData(client, {\n * domain: {\n * name: 'Ether Mail',\n * version: '1',\n * chainId: 1,\n * verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',\n * },\n * types: {\n * Person: [\n * { name: 'name', type: 'string' },\n * { name: 'wallet', type: 'address' },\n * ],\n * Mail: [\n * { name: 'from', type: 'Person' },\n * { name: 'to', type: 'Person' },\n * { name: 'contents', type: 'string' },\n * ],\n * },\n * primaryType: 'Mail',\n * message: {\n * from: {\n * name: 'Cow',\n * wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',\n * },\n * to: {\n * name: 'Bob',\n * wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',\n * },\n * contents: 'Hello, Bob!',\n * },\n * })\n */\nexport async function signTypedData(client, { account: account_ = client.account, domain, message, primaryType, types: types_, }) {\n if (!account_)\n throw new AccountNotFoundError({\n docsPath: '/docs/actions/wallet/signTypedData',\n });\n const account = parseAccount(account_);\n const types = {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n ...types_,\n };\n // Need to do a runtime validation check on addresses, byte ranges, integer ranges, etc\n // as we can't statically check this with TypeScript.\n validateTypedData({\n domain,\n message,\n primaryType,\n types,\n });\n if (account.type === 'local')\n return account.signTypedData({\n domain,\n primaryType,\n types,\n message,\n });\n const typedData = stringify({ domain: domain ?? {}, primaryType, types, message }, (_, value) => (isHex(value) ? value.toLowerCase() : value));\n return client.request({\n method: 'eth_signTypedData_v4',\n params: [account.address, typedData],\n });\n}\n//# sourceMappingURL=signTypedData.js.map","import { numberToHex, } from '../../utils/encoding/toHex.js';\n/**\n * Switch the target chain in a wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/switchChain.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-3326)\n *\n * @param client - Client to use\n * @param parameters - {@link SwitchChainParameters}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet, optimism } from 'viem/chains'\n * import { switchChain } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * await switchChain(client, { id: optimism.id })\n */\nexport async function switchChain(client, { id }) {\n await client.request({\n method: 'wallet_switchEthereumChain',\n params: [\n {\n chainId: numberToHex(id),\n },\n ],\n });\n}\n//# sourceMappingURL=switchChain.js.map","/**\n * Adds an EVM chain to the wallet.\n *\n * - Docs: https://viem.sh/docs/actions/wallet/watchAsset.html\n * - JSON-RPC Methods: [`eth_switchEthereumChain`](https://eips.ethereum.org/EIPS/eip-747)\n *\n * @param client - Client to use\n * @param parameters - {@link WatchAssetParameters}\n * @returns Boolean indicating if the token was successfully added. {@link WatchAssetReturnType}\n *\n * @example\n * import { createWalletClient, custom } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { watchAsset } from 'viem/wallet'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const success = await watchAsset(client, {\n * type: 'ERC20',\n * options: {\n * address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',\n * decimals: 18,\n * symbol: 'WETH',\n * },\n * })\n */\nexport async function watchAsset(client, params) {\n const added = await client.request({\n method: 'wallet_watchAsset',\n params,\n });\n return added;\n}\n//# sourceMappingURL=watchAsset.js.map","import { encodeFunctionData, } from '../../utils/abi/encodeFunctionData.js';\nimport { getAction } from '../../utils/getAction.js';\nimport { sendTransaction, } from './sendTransaction.js';\n/**\n * Executes a write function on a contract.\n *\n * - Docs: https://viem.sh/docs/contract/writeContract.html\n * - Examples: https://stackblitz.com/github/wevm/viem/tree/main/examples/contracts/writing-to-contracts\n *\n * A \"write\" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a [Transaction](https://viem.sh/docs/glossary/terms.html) is needed to be broadcast in order to change the state.\n *\n * Internally, uses a [Wallet Client](https://viem.sh/docs/clients/wallet.html) to call the [`sendTransaction` action](https://viem.sh/docs/actions/wallet/sendTransaction.html) with [ABI-encoded `data`](https://viem.sh/docs/contract/encodeFunctionData.html).\n *\n * __Warning: The `write` internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to [simulate the contract write with `contract.simulate`](https://viem.sh/docs/contract/writeContract.html#usage) before you execute it.__\n *\n * @param client - Client to use\n * @param parameters - {@link WriteContractParameters}\n * @returns A [Transaction Hash](https://viem.sh/docs/glossary/terms.html#hash). {@link WriteContractReturnType}\n *\n * @example\n * import { createWalletClient, custom, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: custom(window.ethereum),\n * })\n * const hash = await writeContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * })\n *\n * @example\n * // With Validation\n * import { createWalletClient, http, parseAbi } from 'viem'\n * import { mainnet } from 'viem/chains'\n * import { simulateContract, writeContract } from 'viem/contract'\n *\n * const client = createWalletClient({\n * chain: mainnet,\n * transport: http(),\n * })\n * const { request } = await simulateContract(client, {\n * address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',\n * abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),\n * functionName: 'mint',\n * args: [69420],\n * }\n * const hash = await writeContract(client, request)\n */\nexport async function writeContract(client, { abi, address, args, dataSuffix, functionName, ...request }) {\n const data = encodeFunctionData({\n abi,\n args,\n functionName,\n });\n const hash = await getAction(client, sendTransaction, 'sendTransaction')({\n data: `${data}${dataSuffix ? dataSuffix.replace('0x', '') : ''}`,\n to: address,\n ...request,\n });\n return hash;\n}\n//# sourceMappingURL=writeContract.js.map","import { createClient, } from './createClient.js';\nimport { walletActions } from './decorators/wallet.js';\nexport function createWalletClient(parameters) {\n const { key = 'wallet', name = 'Wallet Client', transport } = parameters;\n const client = createClient({\n ...parameters,\n key,\n name,\n transport: (opts) => transport({ ...opts, retryCount: 0 }),\n type: 'walletClient',\n });\n return client.extend(walletActions);\n}\n//# sourceMappingURL=createWalletClient.js.map","import { buildRequest } from '../../utils/buildRequest.js';\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport({ key, name, request, retryCount = 3, retryDelay = 150, timeout, type, }, value) {\n return {\n config: { key, name, request, retryCount, retryDelay, timeout, type },\n request: buildRequest(request, { retryCount, retryDelay }),\n value,\n };\n}\n//# sourceMappingURL=createTransport.js.map","import { createTransport, } from './createTransport.js';\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom(provider, config = {}) {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config;\n return ({ retryCount: defaultRetryCount }) => createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n });\n}\n//# sourceMappingURL=custom.js.map","/* [Multicall3](https://github.com/mds1/multicall) */\nexport const multicall3Abi = [\n {\n inputs: [\n {\n components: [\n {\n name: 'target',\n type: 'address',\n },\n {\n name: 'allowFailure',\n type: 'bool',\n },\n {\n name: 'callData',\n type: 'bytes',\n },\n ],\n name: 'calls',\n type: 'tuple[]',\n },\n ],\n name: 'aggregate3',\n outputs: [\n {\n components: [\n {\n name: 'success',\n type: 'bool',\n },\n {\n name: 'returnData',\n type: 'bytes',\n },\n ],\n name: 'returnData',\n type: 'tuple[]',\n },\n ],\n stateMutability: 'view',\n type: 'function',\n },\n];\nconst universalResolverErrors = [\n {\n inputs: [],\n name: 'ResolverNotFound',\n type: 'error',\n },\n {\n inputs: [],\n name: 'ResolverWildcardNotSupported',\n type: 'error',\n },\n];\nexport const universalResolverResolveAbi = [\n ...universalResolverErrors,\n {\n name: 'resolve',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes' },\n { name: 'data', type: 'bytes' },\n ],\n outputs: [\n { name: '', type: 'bytes' },\n { name: 'address', type: 'address' },\n ],\n },\n];\nexport const universalResolverReverseAbi = [\n ...universalResolverErrors,\n {\n name: 'reverse',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ type: 'bytes', name: 'reverseName' }],\n outputs: [\n { type: 'string', name: 'resolvedName' },\n { type: 'address', name: 'resolvedAddress' },\n { type: 'address', name: 'reverseResolver' },\n { type: 'address', name: 'resolver' },\n ],\n },\n];\nexport const textResolverAbi = [\n {\n name: 'text',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'key', type: 'string' },\n ],\n outputs: [{ name: '', type: 'string' }],\n },\n];\nexport const addressResolverAbi = [\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [{ name: 'name', type: 'bytes32' }],\n outputs: [{ name: '', type: 'address' }],\n },\n {\n name: 'addr',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'name', type: 'bytes32' },\n { name: 'coinType', type: 'uint256' },\n ],\n outputs: [{ name: '', type: 'bytes' }],\n },\n];\n// ERC-1271\n// isValidSignature(bytes32 hash, bytes signature) → bytes4 magicValue\nexport const smartAccountAbi = [\n {\n name: 'isValidSignature',\n type: 'function',\n stateMutability: 'view',\n inputs: [\n { name: 'hash', type: 'bytes32' },\n { name: 'signature', type: 'bytes' },\n ],\n outputs: [{ name: '', type: 'bytes4' }],\n },\n];\n// ERC-6492 - universal deployless signature validator contract\n// constructor(address _signer, bytes32 _hash, bytes _signature) → bytes4 returnValue\n// returnValue is either 0x1 (valid) or 0x0 (invalid)\nexport const universalSignatureValidatorAbi = [\n {\n inputs: [\n {\n internalType: 'address',\n name: '_signer',\n type: 'address',\n },\n {\n internalType: 'bytes32',\n name: '_hash',\n type: 'bytes32',\n },\n {\n internalType: 'bytes',\n name: '_signature',\n type: 'bytes',\n },\n ],\n stateMutability: 'nonpayable',\n type: 'constructor',\n },\n];\n//# sourceMappingURL=abis.js.map","// https://docs.soliditylang.org/en/v0.8.16/control-structures.html#panic-via-assert-and-error-via-require\nexport const panicReasons = {\n 1: 'An `assert` condition failed.',\n 17: 'Arithmic operation resulted in underflow or overflow.',\n 18: 'Division or modulo by zero (e.g. `5 / 0` or `23 % 0`).',\n 33: 'Attempted to convert to an invalid type.',\n 34: 'Attempted to access a storage byte array that is incorrectly encoded.',\n 49: 'Performed `.pop()` on an empty array',\n 50: 'Array index is out of bounds.',\n 65: 'Allocated too much memory or created an array which is too large.',\n 81: 'Attempted to call a zero-initialized variable of internal function type.',\n};\nexport const solidityError = {\n inputs: [\n {\n name: 'message',\n type: 'string',\n },\n ],\n name: 'Error',\n type: 'error',\n};\nexport const solidityPanic = {\n inputs: [\n {\n name: 'reason',\n type: 'uint256',\n },\n ],\n name: 'Panic',\n type: 'error',\n};\n//# sourceMappingURL=solidity.js.map","export const etherUnits = {\n gwei: 9,\n wei: 18,\n};\nexport const gweiUnits = {\n ether: -9,\n wei: 9,\n};\nexport const weiUnits = {\n ether: -18,\n gwei: -9,\n};\n//# sourceMappingURL=unit.js.map","import { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js';\nimport { size } from '../utils/data/size.js';\nimport { BaseError } from './base.js';\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiConstructorNotFoundError'\n });\n }\n}\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }) {\n super([\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiConstructorParamsNotFoundError'\n });\n }\n}\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }) {\n super([\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'), { metaMessages: [`Data: ${data} (${size} bytes)`] });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingDataSizeInvalidError'\n });\n }\n}\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n constructor({ data, params, size, }) {\n super([`Data size of ${size} bytes is too small for given parameters.`].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingDataSizeTooSmallError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor() {\n super('Cannot decode zero data (\"0x\") with ABI parameters.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiDecodingZeroDataError'\n });\n }\n}\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, type, }) {\n super([\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingArrayLengthMismatchError'\n });\n }\n}\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }) {\n super(`Size of bytes \"${value}\" (bytes${size(value)}) does not match expected size (bytes${expectedSize}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingBytesSizeMismatchError'\n });\n }\n}\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({ expectedLength, givenLength, }) {\n super([\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEncodingLengthMismatchError'\n });\n }\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName, { docsPath }) {\n super([\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorInputsNotFoundError'\n });\n }\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(errorName, { docsPath } = {}) {\n super([\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorNotFoundError'\n });\n }\n}\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiErrorSignatureNotFoundError'\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.signature = signature;\n }\n}\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventSignatureEmptyTopicsError'\n });\n }\n}\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventSignatureNotFoundError'\n });\n }\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(eventName, { docsPath } = {}) {\n super([\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiEventNotFoundError'\n });\n }\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(functionName, { docsPath } = {}) {\n super([\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionNotFoundError'\n });\n }\n}\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName, { docsPath }) {\n super([\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionOutputsNotFoundError'\n });\n }\n}\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature, { docsPath }) {\n super([\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ].join('\\n'), {\n docsPath,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiFunctionSignatureNotFoundError'\n });\n }\n}\nexport class AbiItemAmbiguityError extends BaseError {\n constructor(x, y) {\n super('Found ambiguous types in overloaded ABI items.', {\n metaMessages: [\n `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AbiItemAmbiguityError'\n });\n }\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, givenSize, }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BytesSizeMismatchError'\n });\n }\n}\nexport class DecodeLogDataMismatch extends BaseError {\n constructor({ abiItem, data, params, size, }) {\n super([\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'), {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DecodeLogDataMismatch'\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"params\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"size\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n this.data = data;\n this.params = params;\n this.size = size;\n }\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n constructor({ abiItem, param, }) {\n super([\n `Expected a topic for indexed event parameter${param.name ? ` \"${param.name}\"` : ''} on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DecodeLogTopicsMismatch'\n });\n Object.defineProperty(this, \"abiItem\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.abiItem = abiItem;\n }\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiEncodingType'\n });\n }\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type, { docsPath }) {\n super([\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'), { docsPath });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAbiDecodingType'\n });\n }\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidArrayError'\n });\n }\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type) {\n super([\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidDefinitionTypeError'\n });\n }\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type) {\n super(`Type \"${type}\" is not supported for packed encoding.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnsupportedPackedAbiType'\n });\n }\n}\n//# sourceMappingURL=abi.js.map","import { BaseError } from './base.js';\nexport class AccountNotFoundError extends BaseError {\n constructor({ docsPath } = {}) {\n super([\n 'Could not find an Account to execute with this Action.',\n 'Please provide an Account with the `account` argument on the Action, or by supplying an `account` to the WalletClient.',\n ].join('\\n'), {\n docsPath,\n docsSlug: 'account',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'AccountNotFoundError'\n });\n }\n}\n//# sourceMappingURL=account.js.map","import { BaseError } from './base.js';\nexport class InvalidAddressError extends BaseError {\n constructor({ address }) {\n super(`Address \"${address}\" is invalid.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidAddressError'\n });\n }\n}\n//# sourceMappingURL=address.js.map","import { getVersion } from './utils.js';\nexport class BaseError extends Error {\n constructor(shortMessage, args = {}) {\n super();\n Object.defineProperty(this, \"details\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"docsPath\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"metaMessages\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"shortMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ViemError'\n });\n Object.defineProperty(this, \"version\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: getVersion()\n });\n const details = args.cause instanceof BaseError\n ? args.cause.details\n : args.cause?.message\n ? args.cause.message\n : args.details;\n const docsPath = args.cause instanceof BaseError\n ? args.cause.docsPath || args.docsPath\n : args.docsPath;\n this.message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsPath\n ? [\n `Docs: https://viem.sh${docsPath}.html${args.docsSlug ? `#${args.docsSlug}` : ''}`,\n ]\n : []),\n ...(details ? [`Details: ${details}`] : []),\n `Version: ${this.version}`,\n ].join('\\n');\n if (args.cause)\n this.cause = args.cause;\n this.details = details;\n this.docsPath = docsPath;\n this.metaMessages = args.metaMessages;\n this.shortMessage = shortMessage;\n }\n walk(fn) {\n return walk(this, fn);\n }\n}\nfunction walk(err, fn) {\n if (fn?.(err))\n return err;\n if (err && typeof err === 'object' && 'cause' in err)\n return walk(err.cause, fn);\n return fn ? null : err;\n}\n//# sourceMappingURL=base.js.map","import { BaseError } from './base.js';\nexport class BlockNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, }) {\n let identifier = 'Block';\n if (blockHash)\n identifier = `Block at hash \"${blockHash}\"`;\n if (blockNumber)\n identifier = `Block at number \"${blockNumber}\"`;\n super(`${identifier} could not be found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BlockNotFoundError'\n });\n }\n}\n//# sourceMappingURL=block.js.map","import { BaseError } from './base.js';\nexport class ChainDoesNotSupportContract extends BaseError {\n constructor({ blockNumber, chain, contract, }) {\n super(`Chain \"${chain.name}\" does not support contract \"${contract.name}\".`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ...(blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber\n ? [\n `- The contract \"${contract.name}\" was not deployed until block ${contract.blockCreated} (current block ${blockNumber}).`,\n ]\n : [\n `- The chain does not have the contract \"${contract.name}\" configured.`,\n ]),\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainDoesNotSupportContract'\n });\n }\n}\nexport class ChainMismatchError extends BaseError {\n constructor({ chain, currentChainId, }) {\n super(`The current chain of the wallet (id: ${currentChainId}) does not match the target chain for the transaction (id: ${chain.id} – ${chain.name}).`, {\n metaMessages: [\n `Current Chain ID: ${currentChainId}`,\n `Expected Chain ID: ${chain.id} – ${chain.name}`,\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainMismatchError'\n });\n }\n}\nexport class ChainNotFoundError extends BaseError {\n constructor() {\n super([\n 'No chain was provided to the request.',\n 'Please provide a chain with the `chain` argument on the Action, or by supplying a `chain` to WalletClient.',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainNotFoundError'\n });\n }\n}\nexport class ClientChainNotConfiguredError extends BaseError {\n constructor() {\n super('No chain was provided to the Client.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ClientChainNotConfiguredError'\n });\n }\n}\nexport class InvalidChainIdError extends BaseError {\n constructor({ chainId }) {\n super(`Chain ID \"${chainId}\" is invalid.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidChainIdError'\n });\n }\n}\n//# sourceMappingURL=chain.js.map","import { stringify } from '../stringify.js';\nexport function formatAbiItemWithArgs({ abiItem, args, includeFunctionName = true, includeName = false, }) {\n if (!('name' in abiItem))\n return;\n if (!('inputs' in abiItem))\n return;\n if (!abiItem.inputs)\n return;\n return `${includeFunctionName ? abiItem.name : ''}(${abiItem.inputs\n .map((input, i) => `${includeName && input.name ? `${input.name}: ` : ''}${typeof args[i] === 'object' ? stringify(args[i]) : args[i]}`)\n .join(', ')})`;\n}\n//# sourceMappingURL=formatAbiItemWithArgs.js.map","import { parseAccount } from '../accounts/utils/parseAccount.js';\nimport { panicReasons } from '../constants/solidity.js';\nimport { decodeErrorResult, } from '../utils/abi/decodeErrorResult.js';\nimport { formatAbiItem } from '../utils/abi/formatAbiItem.js';\nimport { formatAbiItemWithArgs } from '../utils/abi/formatAbiItemWithArgs.js';\nimport { getAbiItem } from '../utils/abi/getAbiItem.js';\nimport { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { AbiErrorSignatureNotFoundError } from './abi.js';\nimport { BaseError } from './base.js';\nimport { prettyPrint } from './transaction.js';\nimport { getContractAddress } from './utils.js';\nexport class CallExecutionError extends BaseError {\n constructor(cause, { account: account_, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const account = account_ ? parseAccount(account_) : undefined;\n const prettyArgs = prettyPrint({\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Raw Call Arguments:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'CallExecutionError'\n });\n this.cause = cause;\n }\n}\nexport class ContractFunctionExecutionError extends BaseError {\n constructor(cause, { abi, args, contractAddress, docsPath, functionName, sender, }) {\n const abiItem = getAbiItem({ abi, args, name: functionName });\n const formattedArgs = abiItem\n ? formatAbiItemWithArgs({\n abiItem,\n args,\n includeFunctionName: false,\n includeName: false,\n })\n : undefined;\n const functionWithParams = abiItem\n ? formatAbiItem(abiItem, { includeName: true })\n : undefined;\n const prettyArgs = prettyPrint({\n address: contractAddress && getContractAddress(contractAddress),\n function: functionWithParams,\n args: formattedArgs &&\n formattedArgs !== '()' &&\n `${[...Array(functionName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`,\n sender,\n });\n super(cause.shortMessage ||\n `An unknown error occurred while executing the contract function \"${functionName}\".`, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Contract Call:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"abi\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"args\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"contractAddress\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"formattedArgs\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"functionName\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"sender\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionExecutionError'\n });\n this.abi = abi;\n this.args = args;\n this.cause = cause;\n this.contractAddress = contractAddress;\n this.functionName = functionName;\n this.sender = sender;\n }\n}\nexport class ContractFunctionRevertedError extends BaseError {\n constructor({ abi, data, functionName, message, }) {\n let cause;\n let decodedData = undefined;\n let metaMessages;\n let reason;\n if (data && data !== '0x') {\n try {\n decodedData = decodeErrorResult({ abi, data });\n const { abiItem, errorName, args: errorArgs } = decodedData;\n if (errorName === 'Error') {\n reason = errorArgs[0];\n }\n else if (errorName === 'Panic') {\n const [firstArg] = errorArgs;\n reason = panicReasons[firstArg];\n }\n else {\n const errorWithParams = abiItem\n ? formatAbiItem(abiItem, { includeName: true })\n : undefined;\n const formattedArgs = abiItem && errorArgs\n ? formatAbiItemWithArgs({\n abiItem,\n args: errorArgs,\n includeFunctionName: false,\n includeName: false,\n })\n : undefined;\n metaMessages = [\n errorWithParams ? `Error: ${errorWithParams}` : '',\n formattedArgs && formattedArgs !== '()'\n ? ` ${[...Array(errorName?.length ?? 0).keys()]\n .map(() => ' ')\n .join('')}${formattedArgs}`\n : '',\n ];\n }\n }\n catch (err) {\n cause = err;\n }\n }\n else if (message)\n reason = message;\n let signature;\n if (cause instanceof AbiErrorSignatureNotFoundError) {\n signature = cause.signature;\n metaMessages = [\n `Unable to decode signature \"${signature}\" as it was not found on the provided ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://openchain.xyz/signatures?query=${signature}.`,\n ];\n }\n super((reason && reason !== 'execution reverted') || signature\n ? [\n `The contract function \"${functionName}\" reverted with the following ${signature ? 'signature' : 'reason'}:`,\n reason || signature,\n ].join('\\n')\n : `The contract function \"${functionName}\" reverted.`, {\n cause,\n metaMessages,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionRevertedError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"reason\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"signature\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = decodedData;\n this.reason = reason;\n this.signature = signature;\n }\n}\nexport class ContractFunctionZeroDataError extends BaseError {\n constructor({ functionName }) {\n super(`The contract function \"${functionName}\" returned no data (\"0x\").`, {\n metaMessages: [\n 'This could be due to any of the following:',\n ` - The contract does not have the function \"${functionName}\",`,\n ' - The parameters passed to the contract function may be invalid, or',\n ' - The address is not a contract.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ContractFunctionZeroDataError'\n });\n }\n}\nexport class RawContractError extends BaseError {\n constructor({ data, message, }) {\n super(message || '');\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RawContractError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = data;\n }\n}\n//# sourceMappingURL=contract.js.map","import { BaseError } from './base.js';\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n constructor({ offset, position, size, }) {\n super(`Slice ${position === 'start' ? 'starting' : 'ending'} at offset \"${offset}\" is out-of-bounds (size: ${size}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SliceOffsetOutOfBoundsError'\n });\n }\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n constructor({ size, targetSize, type, }) {\n super(`${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SizeExceedsPaddingSizeError'\n });\n }\n}\n//# sourceMappingURL=data.js.map","import { BaseError } from './base.js';\n/** @deprecated */\nexport class DataLengthTooLongError extends BaseError {\n constructor({ consumed, length }) {\n super(`Consumed bytes (${consumed}) is shorter than data length (${length - 1}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DataLengthTooLongError'\n });\n }\n}\n/** @deprecated */\nexport class DataLengthTooShortError extends BaseError {\n constructor({ length, dataLength }) {\n super(`Data length (${dataLength - 1}) is shorter than consumed bytes length (${length - 1}).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'DataLengthTooShortError'\n });\n }\n}\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({ max, min, signed, size, value, }) {\n super(`Number \"${value}\" is not in safe ${size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''}integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntegerOutOfRangeError'\n });\n }\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes) {\n super(`Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidBytesBooleanError'\n });\n }\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex) {\n super(`Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidHexBooleanError'\n });\n }\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value) {\n super(`Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidHexValueError'\n });\n }\n}\n/** @deprecated */\nexport class OffsetOutOfBoundsError extends BaseError {\n constructor({ nextOffset, offset }) {\n super(`Next offset (${nextOffset}) is greater than previous offset + consumed bytes (${offset})`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'OffsetOutOfBoundsError'\n });\n }\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }) {\n super(`Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SizeOverflowError'\n });\n }\n}\n//# sourceMappingURL=encoding.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport class BaseFeeScalarError extends BaseError {\n constructor() {\n super('`baseFeeMultiplier` must be greater than 1.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'BaseFeeScalarError'\n });\n }\n}\nexport class Eip1559FeesNotSupportedError extends BaseError {\n constructor() {\n super('Chain does not support EIP-1559 fees.');\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'Eip1559FeesNotSupportedError'\n });\n }\n}\nexport class MaxFeePerGasTooLowError extends BaseError {\n constructor({ maxPriorityFeePerGas }) {\n super(`\\`maxFeePerGas\\` cannot be less than the \\`maxPriorityFeePerGas\\` (${formatGwei(maxPriorityFeePerGas)} gwei).`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MaxFeePerGasTooLowError'\n });\n }\n}\n//# sourceMappingURL=fee.js.map","import { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nclass ExecutionRevertedError extends BaseError {\n constructor({ cause, message, } = {}) {\n const reason = message\n ?.replace('execution reverted: ', '')\n ?.replace('execution reverted', '');\n super(`Execution reverted ${reason ? `with reason: ${reason}` : 'for an unknown reason'}.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ExecutionRevertedError'\n });\n }\n}\nObject.defineProperty(ExecutionRevertedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 3\n});\nObject.defineProperty(ExecutionRevertedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /execution reverted/\n});\nexport { ExecutionRevertedError };\nclass FeeCapTooHighError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}) cannot be higher than the maximum allowed value (2^256-1).`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeCapTooHigh'\n });\n }\n}\nObject.defineProperty(FeeCapTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas higher than 2\\^256-1|fee cap higher than 2\\^256-1/\n});\nexport { FeeCapTooHighError };\nclass FeeCapTooLowError extends BaseError {\n constructor({ cause, maxFeePerGas, } = {}) {\n super(`The fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)}` : ''} gwei) cannot be lower than the block base fee.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeCapTooLow'\n });\n }\n}\nObject.defineProperty(FeeCapTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max fee per gas less than block base fee|fee cap less than block base fee|transaction is outdated/\n});\nexport { FeeCapTooLowError };\nclass NonceTooHighError extends BaseError {\n constructor({ cause, nonce } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is higher than the next one expected.`, { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceTooHighError'\n });\n }\n}\nObject.defineProperty(NonceTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too high/\n});\nexport { NonceTooHighError };\nclass NonceTooLowError extends BaseError {\n constructor({ cause, nonce } = {}) {\n super([\n `Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}is lower than the current nonce of the account.`,\n 'Try increasing the nonce or find the latest nonce with `getTransactionCount`.',\n ].join('\\n'), { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceTooLowError'\n });\n }\n}\nObject.defineProperty(NonceTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce too low|transaction already imported|already known/\n});\nexport { NonceTooLowError };\nclass NonceMaxValueError extends BaseError {\n constructor({ cause, nonce } = {}) {\n super(`Nonce provided for the transaction ${nonce ? `(${nonce}) ` : ''}exceeds the maximum allowed nonce.`, { cause });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'NonceMaxValueError'\n });\n }\n}\nObject.defineProperty(NonceMaxValueError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /nonce has max value/\n});\nexport { NonceMaxValueError };\nclass InsufficientFundsError extends BaseError {\n constructor({ cause } = {}) {\n super([\n 'The total cost (gas * gas fee + value) of executing this transaction exceeds the balance of the account.',\n ].join('\\n'), {\n cause,\n metaMessages: [\n 'This error could arise when the account does not have enough funds to:',\n ' - pay for the total gas fee,',\n ' - pay for the value to send.',\n ' ',\n 'The cost of the transaction is calculated as `gas * gas fee + value`, where:',\n ' - `gas` is the amount of gas needed for transaction to execute,',\n ' - `gas fee` is the gas fee,',\n ' - `value` is the amount of ether to send to the recipient.',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InsufficientFundsError'\n });\n }\n}\nObject.defineProperty(InsufficientFundsError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /insufficient funds/\n});\nexport { InsufficientFundsError };\nclass IntrinsicGasTooHighError extends BaseError {\n constructor({ cause, gas } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction exceeds the limit allowed for the block.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntrinsicGasTooHighError'\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooHighError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too high|gas limit reached/\n});\nexport { IntrinsicGasTooHighError };\nclass IntrinsicGasTooLowError extends BaseError {\n constructor({ cause, gas } = {}) {\n super(`The amount of gas ${gas ? `(${gas}) ` : ''}provided for the transaction is too low.`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'IntrinsicGasTooLowError'\n });\n }\n}\nObject.defineProperty(IntrinsicGasTooLowError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /intrinsic gas too low/\n});\nexport { IntrinsicGasTooLowError };\nclass TransactionTypeNotSupportedError extends BaseError {\n constructor({ cause }) {\n super('The transaction type is not supported for this chain.', {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionTypeNotSupportedError'\n });\n }\n}\nObject.defineProperty(TransactionTypeNotSupportedError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /transaction type not valid/\n});\nexport { TransactionTypeNotSupportedError };\nclass TipAboveFeeCapError extends BaseError {\n constructor({ cause, maxPriorityFeePerGas, maxFeePerGas, } = {}) {\n super([\n `The provided tip (\\`maxPriorityFeePerGas\\`${maxPriorityFeePerGas\n ? ` = ${formatGwei(maxPriorityFeePerGas)} gwei`\n : ''}) cannot be higher than the fee cap (\\`maxFeePerGas\\`${maxFeePerGas ? ` = ${formatGwei(maxFeePerGas)} gwei` : ''}).`,\n ].join('\\n'), {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TipAboveFeeCapError'\n });\n }\n}\nObject.defineProperty(TipAboveFeeCapError, \"nodeMessage\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: /max priority fee per gas higher than max fee per gas|tip higher than fee cap/\n});\nexport { TipAboveFeeCapError };\nexport class UnknownNodeError extends BaseError {\n constructor({ cause }) {\n super(`An error occurred while executing: ${cause?.shortMessage}`, {\n cause,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownNodeError'\n });\n }\n}\n//# sourceMappingURL=node.js.map","import { stringify } from '../utils/stringify.js';\nimport { BaseError } from './base.js';\nimport { getUrl } from './utils.js';\nexport class HttpRequestError extends BaseError {\n constructor({ body, details, headers, status, url, }) {\n super('HTTP request failed.', {\n details,\n metaMessages: [\n status && `Status: ${status}`,\n `URL: ${getUrl(url)}`,\n body && `Request body: ${stringify(body)}`,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'HttpRequestError'\n });\n Object.defineProperty(this, \"body\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"headers\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"status\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"url\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.body = body;\n this.headers = headers;\n this.status = status;\n this.url = url;\n }\n}\nexport class WebSocketRequestError extends BaseError {\n constructor({ body, details, url, }) {\n super('WebSocket request failed.', {\n details,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WebSocketRequestError'\n });\n }\n}\nexport class RpcRequestError extends BaseError {\n constructor({ body, error, url, }) {\n super('RPC Request failed.', {\n cause: error,\n details: error.message,\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RpcRequestError'\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.code = error.code;\n }\n}\nexport class TimeoutError extends BaseError {\n constructor({ body, url, }) {\n super('The request took too long to respond.', {\n details: 'The request timed out.',\n metaMessages: [`URL: ${getUrl(url)}`, `Request body: ${stringify(body)}`],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TimeoutError'\n });\n }\n}\n//# sourceMappingURL=request.js.map","import { BaseError } from './base.js';\nimport { RpcRequestError } from './request.js';\nconst unknownErrorCode = -1;\nexport class RpcError extends BaseError {\n constructor(cause, { code, docsPath, metaMessages, shortMessage }) {\n super(shortMessage, {\n cause,\n docsPath,\n metaMessages: metaMessages || cause?.metaMessages,\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'RpcError'\n });\n Object.defineProperty(this, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = cause.name;\n this.code = (cause instanceof RpcRequestError ? cause.code : code ?? unknownErrorCode);\n }\n}\nexport class ProviderRpcError extends RpcError {\n constructor(cause, options) {\n super(cause, options);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ProviderRpcError'\n });\n Object.defineProperty(this, \"data\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.data = options.data;\n }\n}\nclass ParseRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ParseRpcError.code,\n shortMessage: 'Invalid JSON was received by the server. An error occurred on the server while parsing the JSON text.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ParseRpcError'\n });\n }\n}\nObject.defineProperty(ParseRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32700\n});\nexport { ParseRpcError };\nclass InvalidRequestRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidRequestRpcError.code,\n shortMessage: 'JSON is not a valid request object.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidRequestRpcError'\n });\n }\n}\nObject.defineProperty(InvalidRequestRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32600\n});\nexport { InvalidRequestRpcError };\nclass MethodNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: MethodNotFoundRpcError.code,\n shortMessage: 'The method does not exist / is not available.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MethodNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(MethodNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32601\n});\nexport { MethodNotFoundRpcError };\nclass InvalidParamsRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidParamsRpcError.code,\n shortMessage: [\n 'Invalid parameters were provided to the RPC method.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidParamsRpcError'\n });\n }\n}\nObject.defineProperty(InvalidParamsRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32602\n});\nexport { InvalidParamsRpcError };\nclass InternalRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InternalRpcError.code,\n shortMessage: 'An internal error was received.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InternalRpcError'\n });\n }\n}\nObject.defineProperty(InternalRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32603\n});\nexport { InternalRpcError };\nclass InvalidInputRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: InvalidInputRpcError.code,\n shortMessage: [\n 'Missing or invalid parameters.',\n 'Double check you have provided the correct parameters.',\n ].join('\\n'),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidInputRpcError'\n });\n }\n}\nObject.defineProperty(InvalidInputRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32000\n});\nexport { InvalidInputRpcError };\nclass ResourceNotFoundRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceNotFoundRpcError.code,\n shortMessage: 'Requested resource not found.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceNotFoundRpcError'\n });\n }\n}\nObject.defineProperty(ResourceNotFoundRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32001\n});\nexport { ResourceNotFoundRpcError };\nclass ResourceUnavailableRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: ResourceUnavailableRpcError.code,\n shortMessage: 'Requested resource not available.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ResourceUnavailableRpcError'\n });\n }\n}\nObject.defineProperty(ResourceUnavailableRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32002\n});\nexport { ResourceUnavailableRpcError };\nclass TransactionRejectedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: TransactionRejectedRpcError.code,\n shortMessage: 'Transaction creation failed.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionRejectedRpcError'\n });\n }\n}\nObject.defineProperty(TransactionRejectedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32003\n});\nexport { TransactionRejectedRpcError };\nclass MethodNotSupportedRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: MethodNotSupportedRpcError.code,\n shortMessage: 'Method is not implemented.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'MethodNotSupportedRpcError'\n });\n }\n}\nObject.defineProperty(MethodNotSupportedRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32004\n});\nexport { MethodNotSupportedRpcError };\nclass LimitExceededRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: LimitExceededRpcError.code,\n shortMessage: 'Request exceeds defined limit.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'LimitExceededRpcError'\n });\n }\n}\nObject.defineProperty(LimitExceededRpcError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32005\n});\nexport { LimitExceededRpcError };\nclass JsonRpcVersionUnsupportedError extends RpcError {\n constructor(cause) {\n super(cause, {\n code: JsonRpcVersionUnsupportedError.code,\n shortMessage: 'Version of JSON-RPC protocol is not supported.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'JsonRpcVersionUnsupportedError'\n });\n }\n}\nObject.defineProperty(JsonRpcVersionUnsupportedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: -32006\n});\nexport { JsonRpcVersionUnsupportedError };\nclass UserRejectedRequestError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UserRejectedRequestError.code,\n shortMessage: 'User rejected the request.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UserRejectedRequestError'\n });\n }\n}\nObject.defineProperty(UserRejectedRequestError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4001\n});\nexport { UserRejectedRequestError };\nclass UnauthorizedProviderError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnauthorizedProviderError.code,\n shortMessage: 'The requested method and/or account has not been authorized by the user.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnauthorizedProviderError'\n });\n }\n}\nObject.defineProperty(UnauthorizedProviderError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4100\n});\nexport { UnauthorizedProviderError };\nclass UnsupportedProviderMethodError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: UnsupportedProviderMethodError.code,\n shortMessage: 'The Provider does not support the requested method.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnsupportedProviderMethodError'\n });\n }\n}\nObject.defineProperty(UnsupportedProviderMethodError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4200\n});\nexport { UnsupportedProviderMethodError };\nclass ProviderDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ProviderDisconnectedError.code,\n shortMessage: 'The Provider is disconnected from all chains.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ProviderDisconnectedError'\n });\n }\n}\nObject.defineProperty(ProviderDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4900\n});\nexport { ProviderDisconnectedError };\nclass ChainDisconnectedError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: ChainDisconnectedError.code,\n shortMessage: 'The Provider is not connected to the requested chain.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'ChainDisconnectedError'\n });\n }\n}\nObject.defineProperty(ChainDisconnectedError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4901\n});\nexport { ChainDisconnectedError };\nclass SwitchChainError extends ProviderRpcError {\n constructor(cause) {\n super(cause, {\n code: SwitchChainError.code,\n shortMessage: 'An error occurred when attempting to switch chain.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'SwitchChainError'\n });\n }\n}\nObject.defineProperty(SwitchChainError, \"code\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 4902\n});\nexport { SwitchChainError };\nexport class UnknownRpcError extends RpcError {\n constructor(cause) {\n super(cause, {\n shortMessage: 'An unknown RPC error occurred.',\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'UnknownRpcError'\n });\n }\n}\n//# sourceMappingURL=rpc.js.map","import { formatEther } from '../utils/unit/formatEther.js';\nimport { formatGwei } from '../utils/unit/formatGwei.js';\nimport { BaseError } from './base.js';\nexport function prettyPrint(args) {\n const entries = Object.entries(args)\n .map(([key, value]) => {\n if (value === undefined || value === false)\n return null;\n return [key, value];\n })\n .filter(Boolean);\n const maxLength = entries.reduce((acc, [key]) => Math.max(acc, key.length), 0);\n return entries\n .map(([key, value]) => ` ${`${key}:`.padEnd(maxLength + 1)} ${value}`)\n .join('\\n');\n}\nexport class FeeConflictError extends BaseError {\n constructor() {\n super([\n 'Cannot specify both a `gasPrice` and a `maxFeePerGas`/`maxPriorityFeePerGas`.',\n 'Use `maxFeePerGas`/`maxPriorityFeePerGas` for EIP-1559 compatible networks, and `gasPrice` for others.',\n ].join('\\n'));\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'FeeConflictError'\n });\n }\n}\nexport class InvalidLegacyVError extends BaseError {\n constructor({ v }) {\n super(`Invalid \\`v\\` value \"${v}\". Expected 27 or 28.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidLegacyVError'\n });\n }\n}\nexport class InvalidSerializableTransactionError extends BaseError {\n constructor({ transaction }) {\n super('Cannot infer a transaction type from provided transaction.', {\n metaMessages: [\n 'Provided Transaction:',\n '{',\n prettyPrint(transaction),\n '}',\n '',\n 'To infer the type, either provide:',\n '- a `type` to the Transaction, or',\n '- an EIP-1559 Transaction with `maxFeePerGas`, or',\n '- an EIP-2930 Transaction with `gasPrice` & `accessList`, or',\n '- a Legacy Transaction with `gasPrice`',\n ],\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializableTransactionError'\n });\n }\n}\nexport class InvalidSerializedTransactionTypeError extends BaseError {\n constructor({ serializedType }) {\n super(`Serialized transaction type \"${serializedType}\" is invalid.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializedTransactionType'\n });\n Object.defineProperty(this, \"serializedType\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedType = serializedType;\n }\n}\nexport class InvalidSerializedTransactionError extends BaseError {\n constructor({ attributes, serializedTransaction, type, }) {\n const missing = Object.entries(attributes)\n .map(([key, value]) => (typeof value === 'undefined' ? key : undefined))\n .filter(Boolean);\n super(`Invalid serialized transaction of type \"${type}\" was provided.`, {\n metaMessages: [\n `Serialized Transaction: \"${serializedTransaction}\"`,\n missing.length > 0 ? `Missing Attributes: ${missing.join(', ')}` : '',\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidSerializedTransactionError'\n });\n Object.defineProperty(this, \"serializedTransaction\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"type\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.serializedTransaction = serializedTransaction;\n this.type = type;\n }\n}\nexport class InvalidStorageKeySizeError extends BaseError {\n constructor({ storageKey }) {\n super(`Size for storage key \"${storageKey}\" is invalid. Expected 32 bytes. Got ${Math.floor((storageKey.length - 2) / 2)} bytes.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'InvalidStorageKeySizeError'\n });\n }\n}\nexport class TransactionExecutionError extends BaseError {\n constructor(cause, { account, docsPath, chain, data, gas, gasPrice, maxFeePerGas, maxPriorityFeePerGas, nonce, to, value, }) {\n const prettyArgs = prettyPrint({\n chain: chain && `${chain?.name} (id: ${chain?.id})`,\n from: account?.address,\n to,\n value: typeof value !== 'undefined' &&\n `${formatEther(value)} ${chain?.nativeCurrency?.symbol || 'ETH'}`,\n data,\n gas,\n gasPrice: typeof gasPrice !== 'undefined' && `${formatGwei(gasPrice)} gwei`,\n maxFeePerGas: typeof maxFeePerGas !== 'undefined' &&\n `${formatGwei(maxFeePerGas)} gwei`,\n maxPriorityFeePerGas: typeof maxPriorityFeePerGas !== 'undefined' &&\n `${formatGwei(maxPriorityFeePerGas)} gwei`,\n nonce,\n });\n super(cause.shortMessage, {\n cause,\n docsPath,\n metaMessages: [\n ...(cause.metaMessages ? [...cause.metaMessages, ' '] : []),\n 'Request Arguments:',\n prettyArgs,\n ].filter(Boolean),\n });\n Object.defineProperty(this, \"cause\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionExecutionError'\n });\n this.cause = cause;\n }\n}\nexport class TransactionNotFoundError extends BaseError {\n constructor({ blockHash, blockNumber, blockTag, hash, index, }) {\n let identifier = 'Transaction';\n if (blockTag && index !== undefined)\n identifier = `Transaction at block time \"${blockTag}\" at index \"${index}\"`;\n if (blockHash && index !== undefined)\n identifier = `Transaction at block hash \"${blockHash}\" at index \"${index}\"`;\n if (blockNumber && index !== undefined)\n identifier = `Transaction at block number \"${blockNumber}\" at index \"${index}\"`;\n if (hash)\n identifier = `Transaction with hash \"${hash}\"`;\n super(`${identifier} could not be found.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionNotFoundError'\n });\n }\n}\nexport class TransactionReceiptNotFoundError extends BaseError {\n constructor({ hash }) {\n super(`Transaction receipt with hash \"${hash}\" could not be found. The Transaction may not be processed on a block yet.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'TransactionReceiptNotFoundError'\n });\n }\n}\nexport class WaitForTransactionReceiptTimeoutError extends BaseError {\n constructor({ hash }) {\n super(`Timed out while waiting for transaction with hash \"${hash}\" to be confirmed.`);\n Object.defineProperty(this, \"name\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: 'WaitForTransactionReceiptTimeoutError'\n });\n }\n}\n//# sourceMappingURL=transaction.js.map","export const version = '1.21.3';\n//# sourceMappingURL=version.js.map","import { version } from './version.js';\nexport const getContractAddress = (address) => address;\nexport const getUrl = (url) => url;\nexport const getVersion = () => `viem@${version}`;\n//# sourceMappingURL=utils.js.map","import { AbiDecodingDataSizeTooSmallError, AbiDecodingZeroDataError, InvalidAbiDecodingTypeError, } from '../../errors/abi.js';\nimport { checksumAddress, } from '../address/getAddress.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBigInt, hexToBool, hexToNumber, hexToString, } from '../encoding/fromHex.js';\nimport { getArrayComponents, } from './encodeAbiParameters.js';\nexport function decodeAbiParameters(params, data) {\n if (data === '0x' && params.length > 0)\n throw new AbiDecodingZeroDataError();\n if (size(data) && size(data) < 32)\n throw new AbiDecodingDataSizeTooSmallError({\n data,\n params: params,\n size: size(data),\n });\n return decodeParams({\n data,\n params: params,\n });\n}\nfunction decodeParams({ data, params, }) {\n const decodedValues = [];\n let position = 0;\n for (let i = 0; i < params.length; i++) {\n if (position >= size(data))\n throw new AbiDecodingDataSizeTooSmallError({\n data,\n params,\n size: size(data),\n });\n const param = params[i];\n const { consumed, value } = decodeParam({ data, param, position });\n decodedValues.push(value);\n // Step across the data by the amount of data consumed by this parameter.\n position += consumed;\n }\n return decodedValues;\n}\nfunction decodeParam({ data, param, position, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return decodeArray(data, {\n length,\n param: { ...param, type: type },\n position,\n });\n }\n if (param.type === 'tuple') {\n return decodeTuple(data, { param: param, position });\n }\n if (param.type === 'string') {\n return decodeString(data, { position });\n }\n if (param.type.startsWith('bytes')) {\n return decodeBytes(data, { param, position });\n }\n const value = slice(data, position, position + 32, { strict: true });\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n return decodeNumber(value, { param });\n }\n if (param.type === 'address') {\n return decodeAddress(value);\n }\n if (param.type === 'bool') {\n return decodeBool(value);\n }\n throw new InvalidAbiDecodingTypeError(param.type, {\n docsPath: '/docs/contract/decodeAbiParameters',\n });\n}\nfunction decodeAddress(value) {\n return { consumed: 32, value: checksumAddress(slice(value, -20)) };\n}\nfunction decodeArray(data, { param, length, position, }) {\n // If the length of the array is not known in advance (dynamic array),\n // we will need to decode the offset of the array data.\n if (!length) {\n // Get the offset of the array data.\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n // Get the length of the array from the offset.\n const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }));\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const decodedChild = decodeParam({\n data: slice(data, offset + 32),\n param,\n position: consumed,\n });\n consumed += decodedChild.consumed;\n value.push(decodedChild.value);\n }\n return { value, consumed: 32 };\n }\n // If the length of the array is known in advance,\n // and the length of an element deeply nested in the array is not known,\n // we need to decode the offset of the array data.\n if (hasDynamicChild(param)) {\n // Get the child type of the array.\n const arrayComponents = getArrayComponents(param.type);\n // If the child type is not known, the array is dynamic.\n const dynamicChild = !arrayComponents?.[0];\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n const decodedChild = decodeParam({\n data: slice(data, offset),\n param,\n position: dynamicChild ? consumed : i * 32,\n });\n consumed += decodedChild.consumed;\n value.push(decodedChild.value);\n }\n return { value, consumed: 32 };\n }\n // If the length of the array is known in advance,\n // and the length of each element in the array is known,\n // the array data is encoded contiguously after the array.\n let consumed = 0;\n const value = [];\n for (let i = 0; i < length; ++i) {\n const decodedChild = decodeParam({\n data,\n param,\n position: position + consumed,\n });\n consumed += decodedChild.consumed;\n value.push(decodedChild.value);\n }\n return { value, consumed };\n}\nfunction decodeBool(value) {\n return { consumed: 32, value: hexToBool(value) };\n}\nfunction decodeBytes(data, { param, position }) {\n const [_, size] = param.type.split('bytes');\n if (!size) {\n // If we don't have a size, we're dealing with a dynamic-size array\n // so we need to read the offset of the data part first.\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }));\n // If there is no length, we have zero data.\n if (length === 0)\n return { consumed: 32, value: '0x' };\n const value = slice(data, offset + 32, offset + 32 + length, {\n strict: true,\n });\n return { consumed: 32, value };\n }\n const value = slice(data, position, position + parseInt(size), {\n strict: true,\n });\n return { consumed: 32, value };\n}\nfunction decodeNumber(value, { param }) {\n const signed = param.type.startsWith('int');\n const size = parseInt(param.type.split('int')[1] || '256');\n return {\n consumed: 32,\n value: size > 48\n ? hexToBigInt(value, { signed })\n : hexToNumber(value, { signed }),\n };\n}\nfunction decodeString(data, { position }) {\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n const length = hexToNumber(slice(data, offset, offset + 32, { strict: true }));\n // If there is no length, we have zero data (empty string).\n if (length === 0)\n return { consumed: 32, value: '' };\n const value = hexToString(trim(slice(data, offset + 32, offset + 32 + length, { strict: true })));\n return { consumed: 32, value };\n}\nfunction decodeTuple(data, { param, position }) {\n // Tuples can have unnamed components (i.e. they are arrays), so we must\n // determine whether the tuple is named or unnamed. In the case of a named\n // tuple, the value will be an object where each property is the name of the\n // component. In the case of an unnamed tuple, the value will be an array.\n const hasUnnamedChild = param.components.length === 0 || param.components.some(({ name }) => !name);\n // Initialize the value to an object or an array, depending on whether the\n // tuple is named or unnamed.\n const value = hasUnnamedChild ? [] : {};\n let consumed = 0;\n // If the tuple has a dynamic child, we must first decode the offset to the\n // tuple data.\n if (hasDynamicChild(param)) {\n const offset = hexToNumber(slice(data, position, position + 32, { strict: true }));\n // Decode each component of the tuple, starting at the offset.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const decodedChild = decodeParam({\n data: slice(data, offset),\n param: component,\n position: consumed,\n });\n consumed += decodedChild.consumed;\n value[hasUnnamedChild ? i : component?.name] = decodedChild.value;\n }\n return { consumed: 32, value };\n }\n // If the tuple has static children, we can just decode each component\n // in sequence.\n for (let i = 0; i < param.components.length; ++i) {\n const component = param.components[i];\n const decodedChild = decodeParam({\n data,\n param: component,\n position: position + consumed,\n });\n consumed += decodedChild.consumed;\n value[hasUnnamedChild ? i : component?.name] = decodedChild.value;\n }\n return { consumed, value };\n}\nfunction hasDynamicChild(param) {\n const { type } = param;\n if (type === 'string')\n return true;\n if (type === 'bytes')\n return true;\n if (type.endsWith('[]'))\n return true;\n if (type === 'tuple')\n return param.components?.some(hasDynamicChild);\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents &&\n hasDynamicChild({ ...param, type: arrayComponents[1] }))\n return true;\n return false;\n}\n//# sourceMappingURL=decodeAbiParameters.js.map","import { solidityError, solidityPanic } from '../../constants/solidity.js';\nimport { AbiDecodingZeroDataError, AbiErrorSignatureNotFoundError, } from '../../errors/abi.js';\nimport { slice } from '../data/slice.js';\nimport { getFunctionSelector, } from '../hash/getFunctionSelector.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nexport function decodeErrorResult({ abi, data, }) {\n const signature = slice(data, 0, 4);\n if (signature === '0x')\n throw new AbiDecodingZeroDataError();\n const abi_ = [...(abi || []), solidityError, solidityPanic];\n const abiItem = abi_.find((x) => x.type === 'error' && signature === getFunctionSelector(formatAbiItem(x)));\n if (!abiItem)\n throw new AbiErrorSignatureNotFoundError(signature, {\n docsPath: '/docs/contract/decodeErrorResult',\n });\n return {\n abiItem,\n args: ('inputs' in abiItem && abiItem.inputs && abiItem.inputs.length > 0\n ? decodeAbiParameters(abiItem.inputs, slice(data, 4))\n : undefined),\n errorName: abiItem.name,\n };\n}\n//# sourceMappingURL=decodeErrorResult.js.map","import { AbiFunctionNotFoundError, AbiFunctionOutputsNotFoundError, } from '../../errors/abi.js';\nimport { decodeAbiParameters, } from './decodeAbiParameters.js';\nimport { getAbiItem, } from './getAbiItem.js';\nconst docsPath = '/docs/contract/decodeFunctionResult';\nexport function decodeFunctionResult({ abi, args, functionName, data, }) {\n let abiItem = abi[0];\n if (functionName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: functionName,\n });\n if (!abiItem)\n throw new AbiFunctionNotFoundError(functionName, { docsPath });\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, { docsPath });\n if (!abiItem.outputs)\n throw new AbiFunctionOutputsNotFoundError(abiItem.name, { docsPath });\n const values = decodeAbiParameters(abiItem.outputs, data);\n if (values && values.length > 1)\n return values;\n if (values && values.length === 1)\n return values[0];\n return undefined;\n}\n//# sourceMappingURL=decodeFunctionResult.js.map","import { AbiEncodingArrayLengthMismatchError, AbiEncodingBytesSizeMismatchError, AbiEncodingLengthMismatchError, InvalidAbiEncodingTypeError, InvalidArrayError, } from '../../errors/abi.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { isAddress } from '../address/isAddress.js';\nimport { concat } from '../data/concat.js';\nimport { padHex } from '../data/pad.js';\nimport { size } from '../data/size.js';\nimport { slice } from '../data/slice.js';\nimport { boolToHex, numberToHex, stringToHex, } from '../encoding/toHex.js';\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n */\nexport function encodeAbiParameters(params, values) {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length,\n givenLength: values.length,\n });\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params,\n values,\n });\n const data = encodeParams(preparedParams);\n if (data.length === 0)\n return '0x';\n return data;\n}\nfunction prepareParams({ params, values, }) {\n const preparedParams = [];\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }));\n }\n return preparedParams;\n}\nfunction prepareParam({ param, value, }) {\n const arrayComponents = getArrayComponents(param.type);\n if (arrayComponents) {\n const [length, type] = arrayComponents;\n return encodeArray(value, { length, param: { ...param, type } });\n }\n if (param.type === 'tuple') {\n return encodeTuple(value, {\n param: param,\n });\n }\n if (param.type === 'address') {\n return encodeAddress(value);\n }\n if (param.type === 'bool') {\n return encodeBool(value);\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int');\n return encodeNumber(value, { signed });\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value, { param });\n }\n if (param.type === 'string') {\n return encodeString(value);\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n });\n}\nfunction encodeParams(preparedParams) {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic)\n staticSize += 32;\n else\n staticSize += size(encoded);\n }\n // 2. Split the parameters into static and dynamic parts.\n const staticParams = [];\n const dynamicParams = [];\n let dynamicSize = 0;\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i];\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }));\n dynamicParams.push(encoded);\n dynamicSize += size(encoded);\n }\n else {\n staticParams.push(encoded);\n }\n }\n // 3. Concatenate static and dynamic parts.\n return concat([...staticParams, ...dynamicParams]);\n}\nfunction encodeAddress(value) {\n if (!isAddress(value))\n throw new InvalidAddressError({ address: value });\n return { dynamic: false, encoded: padHex(value.toLowerCase()) };\n}\nfunction encodeArray(value, { length, param, }) {\n const dynamic = length === null;\n if (!Array.isArray(value))\n throw new InvalidArrayError(value);\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n });\n let dynamicChild = false;\n const preparedParams = [];\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] });\n if (preparedParam.dynamic)\n dynamicChild = true;\n preparedParams.push(preparedParam);\n }\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams);\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 });\n return {\n dynamic: true,\n encoded: preparedParams.length > 0 ? concat([length, data]) : length,\n };\n }\n if (dynamicChild)\n return { dynamic: true, encoded: data };\n }\n return {\n dynamic: false,\n encoded: concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nfunction encodeBytes(value, { param }) {\n const [, paramSize] = param.type.split('bytes');\n const bytesSize = size(value);\n if (!paramSize) {\n let value_ = value;\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n });\n return {\n dynamic: true,\n encoded: concat([padHex(numberToHex(bytesSize, { size: 32 })), value_]),\n };\n }\n if (bytesSize !== parseInt(paramSize))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: parseInt(paramSize),\n value,\n });\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) };\n}\nfunction encodeBool(value) {\n return { dynamic: false, encoded: padHex(boolToHex(value)) };\n}\nfunction encodeNumber(value, { signed }) {\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n };\n}\nfunction encodeString(value) {\n const hexValue = stringToHex(value);\n const partsLength = Math.ceil(size(hexValue) / 32);\n const parts = [];\n for (let i = 0; i < partsLength; i++) {\n parts.push(padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }));\n }\n return {\n dynamic: true,\n encoded: concat([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n };\n}\nfunction encodeTuple(value, { param }) {\n let dynamic = false;\n const preparedParams = [];\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i];\n const index = Array.isArray(value) ? i : param_.name;\n const preparedParam = prepareParam({\n param: param_,\n value: value[index],\n });\n preparedParams.push(preparedParam);\n if (preparedParam.dynamic)\n dynamic = true;\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concat(preparedParams.map(({ encoded }) => encoded)),\n };\n}\nexport function getArrayComponents(type) {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/);\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined;\n}\n//# sourceMappingURL=encodeAbiParameters.js.map","import { AbiConstructorNotFoundError, AbiConstructorParamsNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nconst docsPath = '/docs/contract/encodeDeployData';\nexport function encodeDeployData({ abi, args, bytecode, }) {\n if (!args || args.length === 0)\n return bytecode;\n const description = abi.find((x) => 'type' in x && x.type === 'constructor');\n if (!description)\n throw new AbiConstructorNotFoundError({ docsPath });\n if (!('inputs' in description))\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n if (!description.inputs || description.inputs.length === 0)\n throw new AbiConstructorParamsNotFoundError({ docsPath });\n const data = encodeAbiParameters(description.inputs, args);\n return concatHex([bytecode, data]);\n}\n//# sourceMappingURL=encodeDeployData.js.map","import { AbiFunctionNotFoundError, } from '../../errors/abi.js';\nimport { concatHex } from '../data/concat.js';\nimport { getFunctionSelector, } from '../hash/getFunctionSelector.js';\nimport { encodeAbiParameters, } from './encodeAbiParameters.js';\nimport { formatAbiItem } from './formatAbiItem.js';\nimport { getAbiItem, } from './getAbiItem.js';\nexport function encodeFunctionData({ abi, args, functionName, }) {\n let abiItem = abi[0];\n if (functionName) {\n abiItem = getAbiItem({\n abi,\n args,\n name: functionName,\n });\n if (!abiItem)\n throw new AbiFunctionNotFoundError(functionName, {\n docsPath: '/docs/contract/encodeFunctionData',\n });\n }\n if (abiItem.type !== 'function')\n throw new AbiFunctionNotFoundError(undefined, {\n docsPath: '/docs/contract/encodeFunctionData',\n });\n const definition = formatAbiItem(abiItem);\n const signature = getFunctionSelector(definition);\n const data = 'inputs' in abiItem && abiItem.inputs\n ? encodeAbiParameters(abiItem.inputs, (args ?? []))\n : undefined;\n return concatHex([signature, data ?? '0x']);\n}\n//# sourceMappingURL=encodeFunctionData.js.map","import { InvalidDefinitionTypeError, } from '../../errors/abi.js';\nexport function formatAbiItem(abiItem, { includeName = false } = {}) {\n if (abiItem.type !== 'function' &&\n abiItem.type !== 'event' &&\n abiItem.type !== 'error')\n throw new InvalidDefinitionTypeError(abiItem.type);\n return `${abiItem.name}(${formatAbiParams(abiItem.inputs, { includeName })})`;\n}\nexport function formatAbiParams(params, { includeName = false } = {}) {\n if (!params)\n return '';\n return params\n .map((param) => formatAbiParam(param, { includeName }))\n .join(includeName ? ', ' : ',');\n}\nfunction formatAbiParam(param, { includeName }) {\n if (param.type.startsWith('tuple')) {\n return `(${formatAbiParams(param.components, { includeName })})${param.type.slice('tuple'.length)}`;\n }\n return param.type + (includeName && param.name ? ` ${param.name}` : '');\n}\n//# sourceMappingURL=formatAbiItem.js.map","import {} from 'abitype';\nimport { AbiItemAmbiguityError } from '../../errors/abi.js';\nimport { isHex } from '../../utils/data/isHex.js';\nimport { getEventSelector } from '../../utils/hash/getEventSelector.js';\nimport { getFunctionSelector, } from '../../utils/hash/getFunctionSelector.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function getAbiItem({ abi, args = [], name, }) {\n const isSelector = isHex(name, { strict: false });\n const abiItems = abi.filter((abiItem) => {\n if (isSelector) {\n if (abiItem.type === 'function')\n return getFunctionSelector(abiItem) === name;\n if (abiItem.type === 'event')\n return getEventSelector(abiItem) === name;\n return false;\n }\n return 'name' in abiItem && abiItem.name === name;\n });\n if (abiItems.length === 0)\n return undefined;\n if (abiItems.length === 1)\n return abiItems[0];\n let matchedAbiItem = undefined;\n for (const abiItem of abiItems) {\n if (!('inputs' in abiItem))\n continue;\n if (!args || args.length === 0) {\n if (!abiItem.inputs || abiItem.inputs.length === 0)\n return abiItem;\n continue;\n }\n if (!abiItem.inputs)\n continue;\n if (abiItem.inputs.length === 0)\n continue;\n if (abiItem.inputs.length !== args.length)\n continue;\n const matched = args.every((arg, index) => {\n const abiParameter = 'inputs' in abiItem && abiItem.inputs[index];\n if (!abiParameter)\n return false;\n return isArgOfType(arg, abiParameter);\n });\n if (matched) {\n // Check for ambiguity against already matched parameters (e.g. `address` vs `bytes20`).\n if (matchedAbiItem &&\n 'inputs' in matchedAbiItem &&\n matchedAbiItem.inputs) {\n const ambiguousTypes = getAmbiguousTypes(abiItem.inputs, matchedAbiItem.inputs, args);\n if (ambiguousTypes)\n throw new AbiItemAmbiguityError({\n abiItem,\n type: ambiguousTypes[0],\n }, {\n abiItem: matchedAbiItem,\n type: ambiguousTypes[1],\n });\n }\n matchedAbiItem = abiItem;\n }\n }\n if (matchedAbiItem)\n return matchedAbiItem;\n return abiItems[0];\n}\nexport function isArgOfType(arg, abiParameter) {\n const argType = typeof arg;\n const abiParameterType = abiParameter.type;\n switch (abiParameterType) {\n case 'address':\n return isAddress(arg);\n case 'bool':\n return argType === 'boolean';\n case 'function':\n return argType === 'string';\n case 'string':\n return argType === 'string';\n default: {\n if (abiParameterType === 'tuple' && 'components' in abiParameter)\n return Object.values(abiParameter.components).every((component, index) => {\n return isArgOfType(Object.values(arg)[index], component);\n });\n // `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n // https://regexr.com/6v8hp\n if (/^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/.test(abiParameterType))\n return argType === 'number' || argType === 'bigint';\n // `bytes`: binary type of `M` bytes, `0 < M <= 32`\n // https://regexr.com/6va55\n if (/^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/.test(abiParameterType))\n return argType === 'string' || arg instanceof Uint8Array;\n // fixed-length (`[M]`) and dynamic (`[]`) arrays\n // https://regexr.com/6va6i\n if (/[a-z]+[1-9]{0,3}(\\[[0-9]{0,}\\])+$/.test(abiParameterType)) {\n return (Array.isArray(arg) &&\n arg.every((x) => isArgOfType(x, {\n ...abiParameter,\n // Pop off `[]` or `[M]` from end of type\n type: abiParameterType.replace(/(\\[[0-9]{0,}\\])$/, ''),\n })));\n }\n return false;\n }\n }\n}\nexport function getAmbiguousTypes(sourceParameters, targetParameters, args) {\n for (const parameterIndex in sourceParameters) {\n const sourceParameter = sourceParameters[parameterIndex];\n const targetParameter = targetParameters[parameterIndex];\n if (sourceParameter.type === 'tuple' &&\n targetParameter.type === 'tuple' &&\n 'components' in sourceParameter &&\n 'components' in targetParameter)\n return getAmbiguousTypes(sourceParameter.components, targetParameter.components, args[parameterIndex]);\n const types = [sourceParameter.type, targetParameter.type];\n const ambiguous = (() => {\n if (types.includes('address') && types.includes('bytes20'))\n return true;\n if (types.includes('address') && types.includes('string'))\n return isAddress(args[parameterIndex]);\n if (types.includes('address') && types.includes('bytes'))\n return isAddress(args[parameterIndex]);\n return false;\n })();\n if (ambiguous)\n return types;\n }\n return;\n}\n//# sourceMappingURL=getAbiItem.js.map","import { InvalidAddressError } from '../../errors/address.js';\nimport { stringToBytes, } from '../encoding/toBytes.js';\nimport { keccak256 } from '../hash/keccak256.js';\nimport { isAddress } from './isAddress.js';\nexport function checksumAddress(address_, chainId) {\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase();\n const hash = keccak256(stringToBytes(hexAddress), 'bytes');\n const address = (chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress).split('');\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase();\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase();\n }\n }\n return `0x${address.join('')}`;\n}\nexport function getAddress(address, chainId) {\n if (!isAddress(address))\n throw new InvalidAddressError({ address });\n return checksumAddress(address, chainId);\n}\n//# sourceMappingURL=getAddress.js.map","const addressRegex = /^0x[a-fA-F0-9]{40}$/;\nexport function isAddress(address) {\n return addressRegex.test(address);\n}\n//# sourceMappingURL=isAddress.js.map","import { BaseError } from '../errors/base.js';\nimport { HttpRequestError, } from '../errors/request.js';\nimport { ChainDisconnectedError, InternalRpcError, InvalidInputRpcError, InvalidParamsRpcError, InvalidRequestRpcError, JsonRpcVersionUnsupportedError, LimitExceededRpcError, MethodNotFoundRpcError, MethodNotSupportedRpcError, ParseRpcError, ProviderDisconnectedError, ResourceNotFoundRpcError, ResourceUnavailableRpcError, SwitchChainError, TransactionRejectedRpcError, UnauthorizedProviderError, UnknownRpcError, UnsupportedProviderMethodError, UserRejectedRequestError, } from '../errors/rpc.js';\nimport { withRetry } from './promise/withRetry.js';\nexport const isDeterministicError = (error) => {\n if ('code' in error)\n return (error.code !== -1 &&\n error.code !== -32004 &&\n error.code !== -32005 &&\n error.code !== -32042 &&\n error.code !== -32603);\n if (error instanceof HttpRequestError && error.status)\n return (error.status !== 403 &&\n error.status !== 408 &&\n error.status !== 413 &&\n error.status !== 429 &&\n error.status !== 500 &&\n error.status !== 502 &&\n error.status !== 503 &&\n error.status !== 504);\n return false;\n};\nexport function buildRequest(request, { retryDelay = 150, retryCount = 3, } = {}) {\n return (async (args) => withRetry(async () => {\n try {\n return await request(args);\n }\n catch (err_) {\n const err = err_;\n switch (err.code) {\n // -32700\n case ParseRpcError.code:\n throw new ParseRpcError(err);\n // -32600\n case InvalidRequestRpcError.code:\n throw new InvalidRequestRpcError(err);\n // -32601\n case MethodNotFoundRpcError.code:\n throw new MethodNotFoundRpcError(err);\n // -32602\n case InvalidParamsRpcError.code:\n throw new InvalidParamsRpcError(err);\n // -32603\n case InternalRpcError.code:\n throw new InternalRpcError(err);\n // -32000\n case InvalidInputRpcError.code:\n throw new InvalidInputRpcError(err);\n // -32001\n case ResourceNotFoundRpcError.code:\n throw new ResourceNotFoundRpcError(err);\n // -32002\n case ResourceUnavailableRpcError.code:\n throw new ResourceUnavailableRpcError(err);\n // -32003\n case TransactionRejectedRpcError.code:\n throw new TransactionRejectedRpcError(err);\n // -32004\n case MethodNotSupportedRpcError.code:\n throw new MethodNotSupportedRpcError(err);\n // -32005\n case LimitExceededRpcError.code:\n throw new LimitExceededRpcError(err);\n // -32006\n case JsonRpcVersionUnsupportedError.code:\n throw new JsonRpcVersionUnsupportedError(err);\n // 4001\n case UserRejectedRequestError.code:\n throw new UserRejectedRequestError(err);\n // 4100\n case UnauthorizedProviderError.code:\n throw new UnauthorizedProviderError(err);\n // 4200\n case UnsupportedProviderMethodError.code:\n throw new UnsupportedProviderMethodError(err);\n // 4900\n case ProviderDisconnectedError.code:\n throw new ProviderDisconnectedError(err);\n // 4901\n case ChainDisconnectedError.code:\n throw new ChainDisconnectedError(err);\n // 4902\n case SwitchChainError.code:\n throw new SwitchChainError(err);\n // CAIP-25: User Rejected Error\n // https://docs.walletconnect.com/2.0/specs/clients/sign/error-codes#rejected-caip-25\n case 5000:\n throw new UserRejectedRequestError(err);\n default:\n if (err_ instanceof BaseError)\n throw err_;\n throw new UnknownRpcError(err);\n }\n }\n }, {\n delay: ({ count, error }) => {\n // If we find a Retry-After header, let's retry after the given time.\n if (error && error instanceof HttpRequestError) {\n const retryAfter = error?.headers?.get('Retry-After');\n if (retryAfter?.match(/\\d/))\n return parseInt(retryAfter) * 1000;\n }\n // Otherwise, let's retry with an exponential backoff.\n return ~~(1 << count) * retryDelay;\n },\n retryCount,\n shouldRetry: ({ error }) => !isDeterministicError(error),\n }));\n}\n//# sourceMappingURL=buildRequest.js.map","import { ChainDoesNotSupportContract, } from '../../errors/chain.js';\nexport function getChainContractAddress({ blockNumber, chain, contract: name, }) {\n const contract = chain?.contracts?.[name];\n if (!contract)\n throw new ChainDoesNotSupportContract({\n chain,\n contract: { name },\n });\n if (blockNumber &&\n contract.blockCreated &&\n contract.blockCreated > blockNumber)\n throw new ChainDoesNotSupportContract({\n blockNumber,\n chain,\n contract: {\n name,\n blockCreated: contract.blockCreated,\n },\n });\n return contract.address;\n}\n//# sourceMappingURL=getChainContractAddress.js.map","export function concat(values) {\n if (typeof values[0] === 'string')\n return concatHex(values);\n return concatBytes(values);\n}\nexport function concatBytes(values) {\n let length = 0;\n for (const arr of values) {\n length += arr.length;\n }\n const result = new Uint8Array(length);\n let offset = 0;\n for (const arr of values) {\n result.set(arr, offset);\n offset += arr.length;\n }\n return result;\n}\nexport function concatHex(values) {\n return `0x${values.reduce((acc, x) => acc + x.replace('0x', ''), '')}`;\n}\n//# sourceMappingURL=concat.js.map","export function isHex(value, { strict = true } = {}) {\n if (!value)\n return false;\n if (typeof value !== 'string')\n return false;\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x');\n}\n//# sourceMappingURL=isHex.js.map","import { SizeExceedsPaddingSizeError, } from '../../errors/data.js';\nexport function pad(hexOrBytes, { dir, size = 32 } = {}) {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size });\n return padBytes(hexOrBytes, { dir, size });\n}\nexport function padHex(hex_, { dir, size = 32 } = {}) {\n if (size === null)\n return hex_;\n const hex = hex_.replace('0x', '');\n if (hex.length > size * 2)\n throw new SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'hex',\n });\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](size * 2, '0')}`;\n}\nexport function padBytes(bytes, { dir, size = 32 } = {}) {\n if (size === null)\n return bytes;\n if (bytes.length > size)\n throw new SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'bytes',\n });\n const paddedBytes = new Uint8Array(size);\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right';\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1];\n }\n return paddedBytes;\n}\n//# sourceMappingURL=pad.js.map","import { isHex } from './isHex.js';\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value) {\n if (isHex(value, { strict: false }))\n return Math.ceil((value.length - 2) / 2);\n return value.length;\n}\n//# sourceMappingURL=size.js.map","import { SliceOffsetOutOfBoundsError, } from '../../errors/data.js';\nimport { isHex } from './isHex.js';\nimport { size } from './size.js';\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(value, start, end, { strict } = {}) {\n if (isHex(value, { strict: false }))\n return sliceHex(value, start, end, {\n strict,\n });\n return sliceBytes(value, start, end, {\n strict,\n });\n}\nfunction assertStartOffset(value, start) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n });\n}\nfunction assertEndOffset(value, start, end) {\n if (typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n });\n }\n}\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = value_.slice(start, end);\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(value_, start, end, { strict } = {}) {\n assertStartOffset(value_, start);\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}`;\n if (strict)\n assertEndOffset(value, start, end);\n return value;\n}\n//# sourceMappingURL=slice.js.map","export function trim(hexOrBytes, { dir = 'left' } = {}) {\n let data = typeof hexOrBytes === 'string' ? hexOrBytes.replace('0x', '') : hexOrBytes;\n let sliceLength = 0;\n for (let i = 0; i < data.length - 1; i++) {\n if (data[dir === 'left' ? i : data.length - i - 1].toString() === '0')\n sliceLength++;\n else\n break;\n }\n data =\n dir === 'left'\n ? data.slice(sliceLength)\n : data.slice(0, data.length - sliceLength);\n if (typeof hexOrBytes === 'string') {\n if (data.length === 1 && dir === 'right')\n data = `${data}0`;\n return `0x${data.length % 2 === 1 ? `0${data}` : data}`;\n }\n return data;\n}\n//# sourceMappingURL=trim.js.map","import { InvalidHexBooleanError, SizeOverflowError, } from '../../errors/encoding.js';\nimport { size as size_ } from '../data/size.js';\nimport { trim } from '../data/trim.js';\nimport { hexToBytes } from './toBytes.js';\nexport function assertSize(hexOrBytes, { size }) {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n });\n}\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html\n * - Example: https://viem.sh/docs/utilities/fromHex.html#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex(hex, toOrOpts) {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts;\n const to = opts.to;\n if (to === 'number')\n return hexToNumber(hex, opts);\n if (to === 'bigint')\n return hexToBigInt(hex, opts);\n if (to === 'string')\n return hexToString(hex, opts);\n if (to === 'boolean')\n return hexToBool(hex, opts);\n return hexToBytes(hex, opts);\n}\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex, opts = {}) {\n const { signed } = opts;\n if (opts.size)\n assertSize(hex, { size: opts.size });\n const value = BigInt(hex);\n if (!signed)\n return value;\n const size = (hex.length - 2) / 2;\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n if (value <= max)\n return value;\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n;\n}\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = trim(hex);\n }\n if (trim(hex) === '0x00')\n return false;\n if (trim(hex) === '0x01')\n return true;\n throw new InvalidHexBooleanError(hex);\n}\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex, opts = {}) {\n return Number(hexToBigInt(hex, opts));\n}\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex.html#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex, opts = {}) {\n let bytes = hexToBytes(hex);\n if (opts.size) {\n assertSize(bytes, { size: opts.size });\n bytes = trim(bytes, { dir: 'right' });\n }\n return new TextDecoder().decode(bytes);\n}\n//# sourceMappingURL=fromHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { isHex } from '../data/isHex.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nimport { numberToHex, } from './toHex.js';\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html\n * - Example: https://viem.sh/docs/utilities/toBytes.html#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts);\n if (typeof value === 'boolean')\n return boolToBytes(value, opts);\n if (isHex(value))\n return hexToBytes(value, opts);\n return stringToBytes(value, opts);\n}\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value, opts = {}) {\n const bytes = new Uint8Array(1);\n bytes[0] = Number(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { size: opts.size });\n }\n return bytes;\n}\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n};\nfunction charCodeToBase16(char) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero;\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10);\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10);\n return undefined;\n}\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_, opts = {}) {\n let hex = hex_;\n if (opts.size) {\n assertSize(hex, { size: opts.size });\n hex = pad(hex, { dir: 'right', size: opts.size });\n }\n let hexString = hex.slice(2);\n if (hexString.length % 2)\n hexString = `0${hexString}`;\n const length = hexString.length / 2;\n const bytes = new Uint8Array(length);\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++));\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++));\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new BaseError(`Invalid byte sequence (\"${hexString[j - 2]}${hexString[j - 1]}\" in \"${hexString}\").`);\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight;\n }\n return bytes;\n}\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(value, opts) {\n const hex = numberToHex(value, opts);\n return hexToBytes(hex);\n}\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes.html#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(value, opts = {}) {\n const bytes = encoder.encode(value);\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size });\n return pad(bytes, { dir: 'right', size: opts.size });\n }\n return bytes;\n}\n//# sourceMappingURL=toBytes.js.map","import { IntegerOutOfRangeError, } from '../../errors/encoding.js';\nimport { pad } from '../data/pad.js';\nimport { assertSize } from './fromHex.js';\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) => i.toString(16).padStart(2, '0'));\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html\n * - Example: https://viem.sh/docs/utilities/toHex.html#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(value, opts = {}) {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts);\n if (typeof value === 'string') {\n return stringToHex(value, opts);\n }\n if (typeof value === 'boolean')\n return boolToHex(value, opts);\n return bytesToHex(value, opts);\n}\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value, opts = {}) {\n const hex = `0x${Number(value)}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value, opts = {}) {\n let string = '';\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]];\n }\n const hex = `0x${string}`;\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size });\n return pad(hex, { dir: 'right', size: opts.size });\n }\n return hex;\n}\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(value_, opts = {}) {\n const { signed, size } = opts;\n const value = BigInt(value_);\n let maxValue;\n if (size) {\n if (signed)\n maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n;\n else\n maxValue = 2n ** (BigInt(size) * 8n) - 1n;\n }\n else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER);\n }\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0;\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : '';\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n });\n }\n const hex = `0x${(signed && value < 0\n ? (1n << BigInt(size * 8)) + BigInt(value)\n : value).toString(16)}`;\n if (size)\n return pad(hex, { size });\n return hex;\n}\nconst encoder = /*#__PURE__*/ new TextEncoder();\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex.html#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_, opts = {}) {\n const value = encoder.encode(value_);\n return bytesToHex(value, opts);\n}\n//# sourceMappingURL=toHex.js.map","import { BaseError } from '../../errors/base.js';\nimport { ExecutionRevertedError, FeeCapTooHighError, FeeCapTooLowError, InsufficientFundsError, IntrinsicGasTooHighError, IntrinsicGasTooLowError, NonceMaxValueError, NonceTooHighError, NonceTooLowError, TipAboveFeeCapError, TransactionTypeNotSupportedError, UnknownNodeError, } from '../../errors/node.js';\nimport { RpcRequestError } from '../../errors/request.js';\nimport { InvalidInputRpcError, TransactionRejectedRpcError, } from '../../errors/rpc.js';\nexport function containsNodeError(err) {\n return (err instanceof TransactionRejectedRpcError ||\n err instanceof InvalidInputRpcError ||\n (err instanceof RpcRequestError && err.code === ExecutionRevertedError.code));\n}\nexport function getNodeError(err, args) {\n const message = (err.details || '').toLowerCase();\n const executionRevertedError = err.walk((e) => e.code === ExecutionRevertedError.code);\n if (executionRevertedError instanceof BaseError) {\n return new ExecutionRevertedError({\n cause: err,\n message: executionRevertedError.details,\n });\n }\n if (ExecutionRevertedError.nodeMessage.test(message))\n return new ExecutionRevertedError({\n cause: err,\n message: err.details,\n });\n if (FeeCapTooHighError.nodeMessage.test(message))\n return new FeeCapTooHighError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n });\n if (FeeCapTooLowError.nodeMessage.test(message))\n return new FeeCapTooLowError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n });\n if (NonceTooHighError.nodeMessage.test(message))\n return new NonceTooHighError({ cause: err, nonce: args?.nonce });\n if (NonceTooLowError.nodeMessage.test(message))\n return new NonceTooLowError({ cause: err, nonce: args?.nonce });\n if (NonceMaxValueError.nodeMessage.test(message))\n return new NonceMaxValueError({ cause: err, nonce: args?.nonce });\n if (InsufficientFundsError.nodeMessage.test(message))\n return new InsufficientFundsError({ cause: err });\n if (IntrinsicGasTooHighError.nodeMessage.test(message))\n return new IntrinsicGasTooHighError({ cause: err, gas: args?.gas });\n if (IntrinsicGasTooLowError.nodeMessage.test(message))\n return new IntrinsicGasTooLowError({ cause: err, gas: args?.gas });\n if (TransactionTypeNotSupportedError.nodeMessage.test(message))\n return new TransactionTypeNotSupportedError({ cause: err });\n if (TipAboveFeeCapError.nodeMessage.test(message))\n return new TipAboveFeeCapError({\n cause: err,\n maxFeePerGas: args?.maxFeePerGas,\n maxPriorityFeePerGas: args?.maxPriorityFeePerGas,\n });\n return new UnknownNodeError({\n cause: err,\n });\n}\n//# sourceMappingURL=getNodeError.js.map","import { defineFormatter } from './formatter.js';\nimport { formatTransaction } from './transaction.js';\nexport function formatBlock(block) {\n const transactions = block.transactions?.map((transaction) => {\n if (typeof transaction === 'string')\n return transaction;\n return formatTransaction(transaction);\n });\n return {\n ...block,\n baseFeePerGas: block.baseFeePerGas ? BigInt(block.baseFeePerGas) : null,\n difficulty: block.difficulty ? BigInt(block.difficulty) : undefined,\n gasLimit: block.gasLimit ? BigInt(block.gasLimit) : undefined,\n gasUsed: block.gasUsed ? BigInt(block.gasUsed) : undefined,\n hash: block.hash ? block.hash : null,\n logsBloom: block.logsBloom ? block.logsBloom : null,\n nonce: block.nonce ? block.nonce : null,\n number: block.number ? BigInt(block.number) : null,\n size: block.size ? BigInt(block.size) : undefined,\n timestamp: block.timestamp ? BigInt(block.timestamp) : undefined,\n transactions,\n totalDifficulty: block.totalDifficulty\n ? BigInt(block.totalDifficulty)\n : null,\n };\n}\nexport const defineBlock = /*#__PURE__*/ defineFormatter('block', formatBlock);\n//# sourceMappingURL=block.js.map","/**\n * @description Picks out the keys from `value` that exist in the formatter..\n */\nexport function extract(value_, { format }) {\n if (!format)\n return {};\n const value = {};\n function extract_(formatted) {\n const keys = Object.keys(formatted);\n for (const key of keys) {\n if (key in value_)\n value[key] = value_[key];\n if (formatted[key] &&\n typeof formatted[key] === 'object' &&\n !Array.isArray(formatted[key]))\n extract_(formatted[key]);\n }\n }\n const formatted = format(value_ || {});\n extract_(formatted);\n return value;\n}\n//# sourceMappingURL=extract.js.map","import { hexToNumber } from '../encoding/fromHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const transactionType = {\n '0x0': 'legacy',\n '0x1': 'eip2930',\n '0x2': 'eip1559',\n};\nexport function formatTransaction(transaction) {\n const transaction_ = {\n ...transaction,\n blockHash: transaction.blockHash ? transaction.blockHash : null,\n blockNumber: transaction.blockNumber\n ? BigInt(transaction.blockNumber)\n : null,\n chainId: transaction.chainId ? hexToNumber(transaction.chainId) : undefined,\n gas: transaction.gas ? BigInt(transaction.gas) : undefined,\n gasPrice: transaction.gasPrice ? BigInt(transaction.gasPrice) : undefined,\n maxFeePerGas: transaction.maxFeePerGas\n ? BigInt(transaction.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: transaction.maxPriorityFeePerGas\n ? BigInt(transaction.maxPriorityFeePerGas)\n : undefined,\n nonce: transaction.nonce ? hexToNumber(transaction.nonce) : undefined,\n to: transaction.to ? transaction.to : null,\n transactionIndex: transaction.transactionIndex\n ? Number(transaction.transactionIndex)\n : null,\n type: transaction.type ? transactionType[transaction.type] : undefined,\n typeHex: transaction.type ? transaction.type : undefined,\n value: transaction.value ? BigInt(transaction.value) : undefined,\n v: transaction.v ? BigInt(transaction.v) : undefined,\n };\n transaction_.yParity = (() => {\n // If `yParity` is provided, we will use it.\n if (transaction.yParity)\n return Number(transaction.yParity);\n // If no `yParity` provided, try derive from `v`.\n if (typeof transaction_.v === 'bigint') {\n if (transaction_.v === 0n || transaction_.v === 27n)\n return 0;\n if (transaction_.v === 1n || transaction_.v === 28n)\n return 1;\n if (transaction_.v >= 35n)\n return transaction_.v % 2n === 0n ? 1 : 0;\n }\n return undefined;\n })();\n if (transaction_.type === 'legacy') {\n delete transaction_.accessList;\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n delete transaction_.yParity;\n }\n if (transaction_.type === 'eip2930') {\n delete transaction_.maxFeePerGas;\n delete transaction_.maxPriorityFeePerGas;\n }\n return transaction_;\n}\nexport const defineTransaction = /*#__PURE__*/ defineFormatter('transaction', formatTransaction);\n//# sourceMappingURL=transaction.js.map","import { numberToHex } from '../encoding/toHex.js';\nimport { defineFormatter } from './formatter.js';\nexport const rpcTransactionType = {\n legacy: '0x0',\n eip2930: '0x1',\n eip1559: '0x2',\n};\nexport function formatTransactionRequest(transactionRequest) {\n return {\n ...transactionRequest,\n gas: typeof transactionRequest.gas !== 'undefined'\n ? numberToHex(transactionRequest.gas)\n : undefined,\n gasPrice: typeof transactionRequest.gasPrice !== 'undefined'\n ? numberToHex(transactionRequest.gasPrice)\n : undefined,\n maxFeePerGas: typeof transactionRequest.maxFeePerGas !== 'undefined'\n ? numberToHex(transactionRequest.maxFeePerGas)\n : undefined,\n maxPriorityFeePerGas: typeof transactionRequest.maxPriorityFeePerGas !== 'undefined'\n ? numberToHex(transactionRequest.maxPriorityFeePerGas)\n : undefined,\n nonce: typeof transactionRequest.nonce !== 'undefined'\n ? numberToHex(transactionRequest.nonce)\n : undefined,\n type: typeof transactionRequest.type !== 'undefined'\n ? rpcTransactionType[transactionRequest.type]\n : undefined,\n value: typeof transactionRequest.value !== 'undefined'\n ? numberToHex(transactionRequest.value)\n : undefined,\n };\n}\nexport const defineTransactionRequest = /*#__PURE__*/ defineFormatter('transactionRequest', formatTransactionRequest);\n//# sourceMappingURL=transactionRequest.js.map","/**\n * Retrieves and returns an action from the client (if exists), and falls\n * back to the tree-shakable action.\n *\n * Useful for extracting overridden actions from a client (ie. if a consumer\n * wants to override the `sendTransaction` implementation).\n */\nexport function getAction(client, action, \n// Some minifiers drop `Function.prototype.name`, meaning that `action.name`\n// will not work. For that case, the consumer needs to pass the name explicitly.\nname) {\n return (params) => client[action.name || name]?.(params) ?? action(client, params);\n}\n//# sourceMappingURL=getAction.js.map","import { toBytes } from '../encoding/toBytes.js';\nimport { getEventSignature } from './getEventSignature.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport const getEventSelector = (fn) => hash(getEventSignature(fn));\n//# sourceMappingURL=getEventSelector.js.map","import { getFunctionSignature, } from './getFunctionSignature.js';\nexport const getEventSignature = (fn) => {\n return getFunctionSignature(fn);\n};\n//# sourceMappingURL=getEventSignature.js.map","import { slice } from '../data/slice.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { getFunctionSignature, } from './getFunctionSignature.js';\nimport { keccak256 } from './keccak256.js';\nconst hash = (value) => keccak256(toBytes(value));\nexport const getFunctionSelector = (fn) => slice(hash(getFunctionSignature(fn)), 0, 4);\n//# sourceMappingURL=getFunctionSelector.js.map","export function execTyped(regex, string) {\n const match = regex.exec(string);\n return match?.groups;\n}\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\nexport const integerRegex = /^u?int(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\nexport const isTupleRegex = /^\\(.+?\\).*?$/;\n//# sourceMappingURL=regex.js.map","import { execTyped } from '../regex.js';\nconst tupleRegex = /^tuple(?(\\[(\\d*)\\])*)$/;\nexport function formatAbiParameter(abiParameter) {\n let type = abiParameter.type;\n if (tupleRegex.test(abiParameter.type) && 'components' in abiParameter) {\n type = '(';\n const length = abiParameter.components.length;\n for (let i = 0; i < length; i++) {\n const component = abiParameter.components[i];\n type += formatAbiParameter(component);\n if (i < length - 1)\n type += ', ';\n }\n const result = execTyped(tupleRegex, abiParameter.type);\n type += `)${result?.array ?? ''}`;\n return formatAbiParameter({\n ...abiParameter,\n type,\n });\n }\n if ('indexed' in abiParameter && abiParameter.indexed)\n type = `${type} indexed`;\n if (abiParameter.name)\n return `${type} ${abiParameter.name}`;\n return type;\n}\n//# sourceMappingURL=formatAbiParameter.js.map","import { formatAbiParameter, } from './formatAbiParameter.js';\nexport function formatAbiParameters(abiParameters) {\n let params = '';\n const length = abiParameters.length;\n for (let i = 0; i < length; i++) {\n const abiParameter = abiParameters[i];\n params += formatAbiParameter(abiParameter);\n if (i !== length - 1)\n params += ', ';\n }\n return params;\n}\n//# sourceMappingURL=formatAbiParameters.js.map","import { formatAbiItem } from 'abitype';\nimport { normalizeSignature, } from './normalizeSignature.js';\nexport const getFunctionSignature = (fn_) => {\n const fn = (() => {\n if (typeof fn_ === 'string')\n return fn_;\n return formatAbiItem(fn_);\n })();\n return normalizeSignature(fn);\n};\n//# sourceMappingURL=getFunctionSignature.js.map","import { BaseError } from '../../errors/base.js';\nexport function normalizeSignature(signature) {\n let active = true;\n let current = '';\n let level = 0;\n let result = '';\n let valid = false;\n for (let i = 0; i < signature.length; i++) {\n const char = signature[i];\n // If the character is a separator, we want to reactivate.\n if (['(', ')', ','].includes(char))\n active = true;\n // If the character is a \"level\" token, we want to increment/decrement.\n if (char === '(')\n level++;\n if (char === ')')\n level--;\n // If we aren't active, we don't want to mutate the result.\n if (!active)\n continue;\n // If level === 0, we are at the definition level.\n if (level === 0) {\n if (char === ' ' && ['event', 'function', ''].includes(result))\n result = '';\n else {\n result += char;\n // If we are at the end of the definition, we must be finished.\n if (char === ')') {\n valid = true;\n break;\n }\n }\n continue;\n }\n // Ignore spaces\n if (char === ' ') {\n // If the previous character is a separator, and the current section isn't empty, we want to deactivate.\n if (signature[i - 1] !== ',' && current !== ',' && current !== ',(') {\n current = '';\n active = false;\n }\n continue;\n }\n result += char;\n current += char;\n }\n if (!valid)\n throw new BaseError('Unable to normalize signature.');\n return result;\n}\n//# sourceMappingURL=normalizeSignature.js.map","import { formatAbiParameters, } from './formatAbiParameters.js';\nexport function formatAbiItem(abiItem) {\n if (abiItem.type === 'function')\n return `function ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability && abiItem.stateMutability !== 'nonpayable'\n ? ` ${abiItem.stateMutability}`\n : ''}${abiItem.outputs.length\n ? ` returns (${formatAbiParameters(abiItem.outputs)})`\n : ''}`;\n else if (abiItem.type === 'event')\n return `event ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n else if (abiItem.type === 'error')\n return `error ${abiItem.name}(${formatAbiParameters(abiItem.inputs)})`;\n else if (abiItem.type === 'constructor')\n return `constructor(${formatAbiParameters(abiItem.inputs)})${abiItem.stateMutability === 'payable' ? ' payable' : ''}`;\n else if (abiItem.type === 'fallback')\n return 'fallback()';\n return 'receive() external payable';\n}\n//# sourceMappingURL=formatAbiItem.js.map","function number(n) {\n if (!Number.isSafeInteger(n) || n < 0)\n throw new Error(`Wrong positive integer: ${n}`);\n}\nfunction bool(b) {\n if (typeof b !== 'boolean')\n throw new Error(`Expected boolean, not ${b}`);\n}\nfunction bytes(b, ...lengths) {\n if (!(b instanceof Uint8Array))\n throw new Error('Expected Uint8Array');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error(`Expected Uint8Array of length ${lengths}, not of length=${b.length}`);\n}\nfunction hash(hash) {\n if (typeof hash !== 'function' || typeof hash.create !== 'function')\n throw new Error('Hash should be wrapped by utils.wrapConstructor');\n number(hash.outputLen);\n number(hash.blockLen);\n}\nfunction exists(instance, checkFinished = true) {\n if (instance.destroyed)\n throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished)\n throw new Error('Hash#digest() has already been called');\n}\nfunction output(out, instance) {\n bytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error(`digestInto() expects output buffer of length at least ${min}`);\n }\n}\nexport { number, bool, bytes, hash, exists, output };\nconst assert = { number, bool, bytes, hash, exists, output };\nexport default assert;\n//# sourceMappingURL=_assert.js.map","const U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n// We are not using BigUint64Array, because they are extremely slow as per 2022\nfunction fromBig(n, le = false) {\n if (le)\n return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\nfunction split(lst, le = false) {\n let Ah = new Uint32Array(lst.length);\n let Al = new Uint32Array(lst.length);\n for (let i = 0; i < lst.length; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\nconst toBig = (h, l) => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h, _l, s) => h >>> s;\nconst shrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h, l, s) => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h, l, s) => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h, l, s) => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h, l, s) => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h, l) => l;\nconst rotr32L = (h, _l) => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h, l, s) => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h, l, s) => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h, l, s) => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h, l, s) => (h << (s - 32)) | (l >>> (64 - s));\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(Ah, Al, Bh, Bl) {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al, Bl, Cl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low, Ah, Bh, Ch) => (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al, Bl, Cl, Dl) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low, Ah, Bh, Ch, Dh) => (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al, Bl, Cl, Dl, El) => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low, Ah, Bh, Ch, Dh, Eh) => (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n// prettier-ignore\nexport { fromBig, split, toBig, shrSH, shrSL, rotrSH, rotrSL, rotrBH, rotrBL, rotr32H, rotr32L, rotlSH, rotlSL, rotlBH, rotlBL, add, add3L, add3H, add4L, add4H, add5H, add5L, };\n// prettier-ignore\nconst u64 = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n//# sourceMappingURL=_u64.js.map","/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated, we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\nconst u8a = (a) => a instanceof Uint8Array;\n// Cast array to different type\nexport const u8 = (arr) => new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\nexport const u32 = (arr) => new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n// Cast array to view\nexport const createView = (arr) => new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n// The rotate right (circular right shift) operation for uint32\nexport const rotr = (word, shift) => (word << (32 - shift)) | (word >>> shift);\n// big-endian hardware is rare. Just in case someone still decides to run hashes:\n// early-throw an error because we don't support BE yet.\nexport const isLE = new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44;\nif (!isLE)\n throw new Error('Non little-endian hardware is not supported');\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) => i.toString(16).padStart(2, '0'));\n/**\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes) {\n if (!u8a(bytes))\n throw new Error('Uint8Array expected');\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n/**\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex) {\n if (typeof hex !== 'string')\n throw new Error('hex string expected, got ' + typeof hex);\n const len = hex.length;\n if (len % 2)\n throw new Error('padded hex string expected, got unpadded hex of length ' + len);\n const array = new Uint8Array(len / 2);\n for (let i = 0; i < array.length; i++) {\n const j = i * 2;\n const hexByte = hex.slice(j, j + 2);\n const byte = Number.parseInt(hexByte, 16);\n if (Number.isNaN(byte) || byte < 0)\n throw new Error('Invalid byte sequence');\n array[i] = byte;\n }\n return array;\n}\n// There is no setImmediate in browser and setTimeout is slow.\n// call of async fn will return Promise, which will be fullfiled only on\n// next scheduler queue processing step and this is exactly what we need.\nexport const nextTick = async () => { };\n// Returns control to thread each 'tick' ms to avoid blocking\nexport async function asyncLoop(iters, tick, cb) {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick)\n continue;\n await nextTick();\n ts += diff;\n }\n}\n/**\n * @example utf8ToBytes('abc') // new Uint8Array([97, 98, 99])\n */\nexport function utf8ToBytes(str) {\n if (typeof str !== 'string')\n throw new Error(`utf8ToBytes expected string, got ${typeof str}`);\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data) {\n if (typeof data === 'string')\n data = utf8ToBytes(data);\n if (!u8a(data))\n throw new Error(`expected Uint8Array, got ${typeof data}`);\n return data;\n}\n/**\n * Copies several Uint8Arrays into one.\n */\nexport function concatBytes(...arrays) {\n const r = new Uint8Array(arrays.reduce((sum, a) => sum + a.length, 0));\n let pad = 0; // walk through each item, ensure they have proper type\n arrays.forEach((a) => {\n if (!u8a(a))\n throw new Error('Uint8Array expected');\n r.set(a, pad);\n pad += a.length;\n });\n return r;\n}\n// For runtime check if class implements interface\nexport class Hash {\n // Safe version that clones internal state\n clone() {\n return this._cloneInto();\n }\n}\nconst toStr = {}.toString;\nexport function checkOpts(defaults, opts) {\n if (opts !== undefined && toStr.call(opts) !== '[object Object]')\n throw new Error('Options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged;\n}\nexport function wrapConstructor(hashCons) {\n const hashC = (msg) => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\nexport function wrapConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\nexport function wrapXOFConstructorWithOpts(hashCons) {\n const hashC = (msg, opts) => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({});\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts) => hashCons(opts);\n return hashC;\n}\n/**\n * Secure PRNG. Uses `crypto.getRandomValues`, which defers to OS.\n */\nexport function randomBytes(bytesLength = 32) {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n//# sourceMappingURL=utils.js.map","import { bytes, exists, number, output } from './_assert.js';\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.js';\nimport { Hash, u32, toBytes, wrapConstructor, wrapXOFConstructorWithOpts, } from './utils.js';\n// SHA3 (keccak) is based on a new design: basically, the internal state is bigger than output size.\n// It's called a sponge function.\n// Various per round constants calculations\nconst [SHA3_PI, SHA3_ROTL, _SHA3_IOTA] = [[], [], []];\nconst _0n = /* @__PURE__ */ BigInt(0);\nconst _1n = /* @__PURE__ */ BigInt(1);\nconst _2n = /* @__PURE__ */ BigInt(2);\nconst _7n = /* @__PURE__ */ BigInt(7);\nconst _256n = /* @__PURE__ */ BigInt(256);\nconst _0x71n = /* @__PURE__ */ BigInt(0x71);\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n)\n t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst [SHA3_IOTA_H, SHA3_IOTA_L] = /* @__PURE__ */ split(_SHA3_IOTA, true);\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h, l, s) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h, l, s) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n// Same as keccakf1600, but allows to skip some rounds\nexport function keccakP(s, rounds = 24) {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta θ\n for (let x = 0; x < 10; x++)\n B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (ρ) and Pi (π)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (χ)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++)\n B[x] = s[y + x];\n for (let x = 0; x < 10; x++)\n s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (ι)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n B.fill(0);\n}\nexport class Keccak extends Hash {\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(blockLen, suffix, outputLen, enableXOF = false, rounds = 24) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n this.pos = 0;\n this.posOut = 0;\n this.finished = false;\n this.destroyed = false;\n // Can be passed from user as dkLen\n number(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n if (0 >= this.blockLen || this.blockLen >= 200)\n throw new Error('Sha3 supports only keccak-f1600 function');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n keccak() {\n keccakP(this.state32, this.rounds);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data) {\n exists(this);\n const { blockLen, state } = this;\n data = toBytes(data);\n const len = data.length;\n for (let pos = 0; pos < len;) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++)\n state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen)\n this.keccak();\n }\n return this;\n }\n finish() {\n if (this.finished)\n return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1)\n this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n writeInto(out) {\n exists(this, false);\n bytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len;) {\n if (this.posOut >= blockLen)\n this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out) {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF)\n throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes) {\n number(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out) {\n output(out, this);\n if (this.finished)\n throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest() {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy() {\n this.destroyed = true;\n this.state.fill(0);\n }\n _cloneInto(to) {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to || (to = new Keccak(blockLen, suffix, outputLen, enableXOF, rounds));\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\nconst gen = (suffix, blockLen, outputLen) => wrapConstructor(() => new Keccak(blockLen, suffix, outputLen));\nexport const sha3_224 = /* @__PURE__ */ gen(0x06, 144, 224 / 8);\n/**\n * SHA3-256 hash function\n * @param message - that would be hashed\n */\nexport const sha3_256 = /* @__PURE__ */ gen(0x06, 136, 256 / 8);\nexport const sha3_384 = /* @__PURE__ */ gen(0x06, 104, 384 / 8);\nexport const sha3_512 = /* @__PURE__ */ gen(0x06, 72, 512 / 8);\nexport const keccak_224 = /* @__PURE__ */ gen(0x01, 144, 224 / 8);\n/**\n * keccak-256 hash function. Different from SHA3-256.\n * @param message - that would be hashed\n */\nexport const keccak_256 = /* @__PURE__ */ gen(0x01, 136, 256 / 8);\nexport const keccak_384 = /* @__PURE__ */ gen(0x01, 104, 384 / 8);\nexport const keccak_512 = /* @__PURE__ */ gen(0x01, 72, 512 / 8);\nconst genShake = (suffix, blockLen, outputLen) => wrapXOFConstructorWithOpts((opts = {}) => new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true));\nexport const shake128 = /* @__PURE__ */ genShake(0x1f, 168, 128 / 8);\nexport const shake256 = /* @__PURE__ */ genShake(0x1f, 136, 256 / 8);\n//# sourceMappingURL=sha3.js.map","import { keccak_256 } from '@noble/hashes/sha3';\nimport { isHex } from '../data/isHex.js';\nimport { toBytes } from '../encoding/toBytes.js';\nimport { toHex } from '../encoding/toHex.js';\nexport function keccak256(value, to_) {\n const to = to_ || 'hex';\n const bytes = keccak_256(isHex(value, { strict: false }) ? toBytes(value) : value);\n if (to === 'bytes')\n return bytes;\n return toHex(bytes);\n}\n//# sourceMappingURL=keccak256.js.map","const schedulerCache = /*#__PURE__*/ new Map();\nexport function createBatchScheduler({ fn, id, shouldSplitBatch, wait = 0, sort, }) {\n const exec = async () => {\n const scheduler = getScheduler();\n flush();\n const args = scheduler.map(({ args }) => args);\n if (args.length === 0)\n return;\n fn(args)\n .then((data) => {\n if (sort && Array.isArray(data))\n data.sort(sort);\n for (let i = 0; i < scheduler.length; i++) {\n const { pendingPromise } = scheduler[i];\n pendingPromise.resolve?.([data[i], data]);\n }\n })\n .catch((err) => {\n for (let i = 0; i < scheduler.length; i++) {\n const { pendingPromise } = scheduler[i];\n pendingPromise.reject?.(err);\n }\n });\n };\n const flush = () => schedulerCache.delete(id);\n const getBatchedArgs = () => getScheduler().map(({ args }) => args);\n const getScheduler = () => schedulerCache.get(id) || [];\n const setScheduler = (item) => schedulerCache.set(id, [...getScheduler(), item]);\n return {\n flush,\n async schedule(args) {\n const pendingPromise = {};\n const promise = new Promise((resolve, reject) => {\n pendingPromise.resolve = resolve;\n pendingPromise.reject = reject;\n });\n const split = shouldSplitBatch?.([...getBatchedArgs(), args]);\n if (split)\n exec();\n const hasActiveScheduler = getScheduler().length > 0;\n if (hasActiveScheduler) {\n setScheduler({ args, pendingPromise });\n return promise;\n }\n setScheduler({ args, pendingPromise });\n setTimeout(exec, wait);\n return promise;\n },\n };\n}\n//# sourceMappingURL=createBatchScheduler.js.map","import { wait } from '../wait.js';\nexport function withRetry(fn, { delay: delay_ = 100, retryCount = 2, shouldRetry = () => true, } = {}) {\n return new Promise((resolve, reject) => {\n const attemptRetry = async ({ count = 0 } = {}) => {\n const retry = async ({ error }) => {\n const delay = typeof delay_ === 'function' ? delay_({ count, error }) : delay_;\n if (delay)\n await wait(delay);\n attemptRetry({ count: count + 1 });\n };\n try {\n const data = await fn();\n resolve(data);\n }\n catch (err) {\n if (count < retryCount &&\n (await shouldRetry({ count, error: err })))\n return retry({ error: err });\n reject(err);\n }\n };\n attemptRetry();\n });\n}\n//# sourceMappingURL=withRetry.js.map","export const stringify = (value, replacer, space) => JSON.stringify(value, (key, value_) => {\n const value = typeof value_ === 'bigint' ? value_.toString() : value_;\n return typeof replacer === 'function' ? replacer(key, value) : value;\n}, space);\n//# sourceMappingURL=stringify.js.map","import { parseAccount, } from '../../accounts/utils/parseAccount.js';\nimport { InvalidAddressError, } from '../../errors/address.js';\nimport { FeeCapTooHighError, TipAboveFeeCapError, } from '../../errors/node.js';\nimport { FeeConflictError, } from '../../errors/transaction.js';\nimport { isAddress } from '../address/isAddress.js';\nexport function assertRequest(args) {\n const { account: account_, gasPrice, maxFeePerGas, maxPriorityFeePerGas, to, } = args;\n const account = account_ ? parseAccount(account_) : undefined;\n if (account && !isAddress(account.address))\n throw new InvalidAddressError({ address: account.address });\n if (to && !isAddress(to))\n throw new InvalidAddressError({ address: to });\n if (typeof gasPrice !== 'undefined' &&\n (typeof maxFeePerGas !== 'undefined' ||\n typeof maxPriorityFeePerGas !== 'undefined'))\n throw new FeeConflictError();\n if (maxFeePerGas && maxFeePerGas > 2n ** 256n - 1n)\n throw new FeeCapTooHighError({ maxFeePerGas });\n if (maxPriorityFeePerGas &&\n maxFeePerGas &&\n maxPriorityFeePerGas > maxFeePerGas)\n throw new TipAboveFeeCapError({ maxFeePerGas, maxPriorityFeePerGas });\n}\n//# sourceMappingURL=assertRequest.js.map","export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/;\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/;\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex = /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/;\n//# sourceMappingURL=regex.js.map","import { BytesSizeMismatchError } from '../errors/abi.js';\nimport { InvalidAddressError } from '../errors/address.js';\nimport { isAddress } from './address/isAddress.js';\nimport { size } from './data/size.js';\nimport { numberToHex } from './encoding/toHex.js';\nimport { bytesRegex, integerRegex } from './regex.js';\nimport { hashDomain, } from './signature/hashTypedData.js';\nexport function validateTypedData({ domain, message, primaryType, types: types_, }) {\n const types = types_;\n const validateData = (struct, value_) => {\n for (const param of struct) {\n const { name, type: type_ } = param;\n const type = type_;\n const value = value_[name];\n const integerMatch = type.match(integerRegex);\n if (integerMatch &&\n (typeof value === 'number' || typeof value === 'bigint')) {\n const [_type, base, size_] = integerMatch;\n // If number cannot be cast to a sized hex value, it is out of range\n // and will throw.\n numberToHex(value, {\n signed: base === 'int',\n size: parseInt(size_) / 8,\n });\n }\n if (type === 'address' && typeof value === 'string' && !isAddress(value))\n throw new InvalidAddressError({ address: value });\n const bytesMatch = type.match(bytesRegex);\n if (bytesMatch) {\n const [_type, size_] = bytesMatch;\n if (size_ && size(value) !== parseInt(size_))\n throw new BytesSizeMismatchError({\n expectedSize: parseInt(size_),\n givenSize: size(value),\n });\n }\n const struct = types[type];\n if (struct)\n validateData(struct, value);\n }\n };\n // Validate domain types.\n if (types.EIP712Domain && domain)\n validateData(types.EIP712Domain, domain);\n if (primaryType !== 'EIP712Domain') {\n // Validate message types.\n const type = types[primaryType];\n validateData(type, message);\n }\n}\nexport function getTypesForEIP712Domain({ domain, }) {\n return [\n typeof domain?.name === 'string' && { name: 'name', type: 'string' },\n domain?.version && { name: 'version', type: 'string' },\n typeof domain?.chainId === 'number' && {\n name: 'chainId',\n type: 'uint256',\n },\n domain?.verifyingContract && {\n name: 'verifyingContract',\n type: 'address',\n },\n domain?.salt && { name: 'salt', type: 'bytes32' },\n ].filter(Boolean);\n}\nexport function domainSeparator({ domain }) {\n return hashDomain({\n domain,\n types: {\n EIP712Domain: getTypesForEIP712Domain({ domain }),\n },\n });\n}\n//# sourceMappingURL=typedData.js.map","import { etherUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of ether.\n *\n * - Docs: https://viem.sh/docs/utilities/formatEther.html\n *\n * @example\n * import { formatEther } from 'viem'\n *\n * formatEther(1000000000000000000n)\n * // '1'\n */\nexport function formatEther(wei, unit = 'wei') {\n return formatUnits(wei, etherUnits[unit]);\n}\n//# sourceMappingURL=formatEther.js.map","import { gweiUnits } from '../../constants/unit.js';\nimport { formatUnits } from './formatUnits.js';\n/**\n * Converts numerical wei to a string representation of gwei.\n *\n * - Docs: https://viem.sh/docs/utilities/formatGwei.html\n *\n * @example\n * import { formatGwei } from 'viem'\n *\n * formatGwei(1000000000n)\n * // '1'\n */\nexport function formatGwei(wei, unit = 'wei') {\n return formatUnits(wei, gweiUnits[unit]);\n}\n//# sourceMappingURL=formatGwei.js.map","/**\n * Divides a number by a given exponent of base 10 (10exponent), and formats it into a string representation of the number..\n *\n * - Docs: https://viem.sh/docs/utilities/formatUnits.html\n *\n * @example\n * import { formatUnits } from 'viem'\n *\n * formatUnits(420000000000n, 9)\n * // '420'\n */\nexport function formatUnits(value, decimals) {\n let display = value.toString();\n const negative = display.startsWith('-');\n if (negative)\n display = display.slice(1);\n display = display.padStart(decimals, '0');\n let [integer, fraction] = [\n display.slice(0, display.length - decimals),\n display.slice(display.length - decimals),\n ];\n fraction = fraction.replace(/(0+)$/, '');\n return `${negative ? '-' : ''}${integer || '0'}${fraction ? `.${fraction}` : ''}`;\n}\n//# sourceMappingURL=formatUnits.js.map","export async function wait(time) {\n return new Promise((res) => setTimeout(res, time));\n}\n//# sourceMappingURL=wait.js.map","function createSyncStoragePersister({\n storage,\n key = \"REACT_QUERY_OFFLINE_CACHE\",\n throttleTime = 1000,\n serialize = JSON.stringify,\n deserialize = JSON.parse,\n retry\n}) {\n if (storage) {\n const trySave = persistedClient => {\n try {\n storage.setItem(key, serialize(persistedClient));\n return;\n } catch (error) {\n return error;\n }\n };\n\n return {\n persistClient: throttle(persistedClient => {\n let client = persistedClient;\n let error = trySave(client);\n let errorCount = 0;\n\n while (error && client) {\n errorCount++;\n client = retry == null ? void 0 : retry({\n persistedClient: client,\n error,\n errorCount\n });\n\n if (client) {\n error = trySave(client);\n }\n }\n }, throttleTime),\n restoreClient: () => {\n const cacheString = storage.getItem(key);\n\n if (!cacheString) {\n return;\n }\n\n return deserialize(cacheString);\n },\n removeClient: () => {\n storage.removeItem(key);\n }\n };\n }\n\n return {\n persistClient: noop,\n restoreClient: () => undefined,\n removeClient: noop\n };\n}\n\nfunction throttle(func, wait = 100) {\n let timer = null;\n let params;\n return function (...args) {\n params = args;\n\n if (timer === null) {\n timer = setTimeout(() => {\n func(...params);\n timer = null;\n }, wait);\n }\n };\n} // eslint-disable-next-line @typescript-eslint/no-empty-function\n\n\nfunction noop() {}\n\nexport { createSyncStoragePersister };\n//# sourceMappingURL=index.mjs.map\n","// TYPES\n// UTILS\nconst isServer = typeof window === 'undefined' || 'Deno' in window;\nfunction noop() {\n return undefined;\n}\nfunction functionalUpdate(updater, input) {\n return typeof updater === 'function' ? updater(input) : updater;\n}\nfunction isValidTimeout(value) {\n return typeof value === 'number' && value >= 0 && value !== Infinity;\n}\nfunction difference(array1, array2) {\n return array1.filter(x => !array2.includes(x));\n}\nfunction replaceAt(array, index, value) {\n const copy = array.slice(0);\n copy[index] = value;\n return copy;\n}\nfunction timeUntilStale(updatedAt, staleTime) {\n return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n\n if (typeof arg2 === 'function') {\n return { ...arg3,\n queryKey: arg1,\n queryFn: arg2\n };\n }\n\n return { ...arg2,\n queryKey: arg1\n };\n}\nfunction parseMutationArgs(arg1, arg2, arg3) {\n if (isQueryKey(arg1)) {\n if (typeof arg2 === 'function') {\n return { ...arg3,\n mutationKey: arg1,\n mutationFn: arg2\n };\n }\n\n return { ...arg2,\n mutationKey: arg1\n };\n }\n\n if (typeof arg1 === 'function') {\n return { ...arg2,\n mutationFn: arg1\n };\n }\n\n return { ...arg1\n };\n}\nfunction parseFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n queryKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction parseMutationFilterArgs(arg1, arg2, arg3) {\n return isQueryKey(arg1) ? [{ ...arg2,\n mutationKey: arg1\n }, arg3] : [arg1 || {}, arg2];\n}\nfunction matchQuery(filters, query) {\n const {\n type = 'all',\n exact,\n fetchStatus,\n predicate,\n queryKey,\n stale\n } = filters;\n\n if (isQueryKey(queryKey)) {\n if (exact) {\n if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {\n return false;\n }\n } else if (!partialMatchKey(query.queryKey, queryKey)) {\n return false;\n }\n }\n\n if (type !== 'all') {\n const isActive = query.isActive();\n\n if (type === 'active' && !isActive) {\n return false;\n }\n\n if (type === 'inactive' && isActive) {\n return false;\n }\n }\n\n if (typeof stale === 'boolean' && query.isStale() !== stale) {\n return false;\n }\n\n if (typeof fetchStatus !== 'undefined' && fetchStatus !== query.state.fetchStatus) {\n return false;\n }\n\n if (predicate && !predicate(query)) {\n return false;\n }\n\n return true;\n}\nfunction matchMutation(filters, mutation) {\n const {\n exact,\n fetching,\n predicate,\n mutationKey\n } = filters;\n\n if (isQueryKey(mutationKey)) {\n if (!mutation.options.mutationKey) {\n return false;\n }\n\n if (exact) {\n if (hashQueryKey(mutation.options.mutationKey) !== hashQueryKey(mutationKey)) {\n return false;\n }\n } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {\n return false;\n }\n }\n\n if (typeof fetching === 'boolean' && mutation.state.status === 'loading' !== fetching) {\n return false;\n }\n\n if (predicate && !predicate(mutation)) {\n return false;\n }\n\n return true;\n}\nfunction hashQueryKeyByOptions(queryKey, options) {\n const hashFn = (options == null ? void 0 : options.queryKeyHashFn) || hashQueryKey;\n return hashFn(queryKey);\n}\n/**\n * Default query keys hash function.\n * Hashes the value into a stable hash.\n */\n\nfunction hashQueryKey(queryKey) {\n return JSON.stringify(queryKey, (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : val);\n}\n/**\n * Checks if key `b` partially matches with key `a`.\n */\n\nfunction partialMatchKey(a, b) {\n return partialDeepEqual(a, b);\n}\n/**\n * Checks if `b` partially matches with `a`.\n */\n\nfunction partialDeepEqual(a, b) {\n if (a === b) {\n return true;\n }\n\n if (typeof a !== typeof b) {\n return false;\n }\n\n if (a && b && typeof a === 'object' && typeof b === 'object') {\n return !Object.keys(b).some(key => !partialDeepEqual(a[key], b[key]));\n }\n\n return false;\n}\n/**\n * This function returns `a` if `b` is deeply equal.\n * If not, it will replace any deeply equal children of `b` with those of `a`.\n * This can be used for structural sharing between JSON values for example.\n */\n\nfunction replaceEqualDeep(a, b) {\n if (a === b) {\n return a;\n }\n\n const array = isPlainArray(a) && isPlainArray(b);\n\n if (array || isPlainObject(a) && isPlainObject(b)) {\n const aSize = array ? a.length : Object.keys(a).length;\n const bItems = array ? b : Object.keys(b);\n const bSize = bItems.length;\n const copy = array ? [] : {};\n let equalItems = 0;\n\n for (let i = 0; i < bSize; i++) {\n const key = array ? i : bItems[i];\n copy[key] = replaceEqualDeep(a[key], b[key]);\n\n if (copy[key] === a[key]) {\n equalItems++;\n }\n }\n\n return aSize === bSize && equalItems === aSize ? a : copy;\n }\n\n return b;\n}\n/**\n * Shallow compare objects. Only works with objects that always have the same properties.\n */\n\nfunction shallowEqualObjects(a, b) {\n if (a && !b || b && !a) {\n return false;\n }\n\n for (const key in a) {\n if (a[key] !== b[key]) {\n return false;\n }\n }\n\n return true;\n}\nfunction isPlainArray(value) {\n return Array.isArray(value) && value.length === Object.keys(value).length;\n} // Copied from: https://github.com/jonschlinkert/is-plain-object\n\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n } // If has modified constructor\n\n\n const ctor = o.constructor;\n\n if (typeof ctor === 'undefined') {\n return true;\n } // If has modified prototype\n\n\n const prot = ctor.prototype;\n\n if (!hasObjectPrototype(prot)) {\n return false;\n } // If constructor does not have an Object-specific method\n\n\n if (!prot.hasOwnProperty('isPrototypeOf')) {\n return false;\n } // Most likely a plain Object\n\n\n return true;\n}\n\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isError(value) {\n return value instanceof Error;\n}\nfunction sleep(timeout) {\n return new Promise(resolve => {\n setTimeout(resolve, timeout);\n });\n}\n/**\n * Schedules a microtask.\n * This can be useful to schedule state updates after rendering.\n */\n\nfunction scheduleMicrotask(callback) {\n sleep(0).then(callback);\n}\nfunction getAbortController() {\n if (typeof AbortController === 'function') {\n return new AbortController();\n }\n\n return;\n}\nfunction replaceData(prevData, data, options) {\n // Use prev data if an isDataEqual function is defined and returns `true`\n if (options.isDataEqual != null && options.isDataEqual(prevData, data)) {\n return prevData;\n } else if (typeof options.structuralSharing === 'function') {\n return options.structuralSharing(prevData, data);\n } else if (options.structuralSharing !== false) {\n // Structurally share data between prev and new data if needed\n return replaceEqualDeep(prevData, data);\n }\n\n return data;\n}\n\nexport { difference, functionalUpdate, getAbortController, hashQueryKey, hashQueryKeyByOptions, isError, isPlainArray, isPlainObject, isQueryKey, isServer, isValidTimeout, matchMutation, matchQuery, noop, parseFilterArgs, parseMutationArgs, parseMutationFilterArgs, parseQueryArgs, partialDeepEqual, partialMatchKey, replaceAt, replaceData, replaceEqualDeep, scheduleMicrotask, shallowEqualObjects, sleep, timeUntilStale };\n//# sourceMappingURL=utils.mjs.map\n","const defaultLogger = console;\n\nexport { defaultLogger };\n//# sourceMappingURL=logger.mjs.map\n","import { scheduleMicrotask } from './utils.mjs';\n\nfunction createNotifyManager() {\n let queue = [];\n let transactions = 0;\n\n let notifyFn = callback => {\n callback();\n };\n\n let batchNotifyFn = callback => {\n callback();\n };\n\n const batch = callback => {\n let result;\n transactions++;\n\n try {\n result = callback();\n } finally {\n transactions--;\n\n if (!transactions) {\n flush();\n }\n }\n\n return result;\n };\n\n const schedule = callback => {\n if (transactions) {\n queue.push(callback);\n } else {\n scheduleMicrotask(() => {\n notifyFn(callback);\n });\n }\n };\n /**\n * All calls to the wrapped function will be batched.\n */\n\n\n const batchCalls = callback => {\n return (...args) => {\n schedule(() => {\n callback(...args);\n });\n };\n };\n\n const flush = () => {\n const originalQueue = queue;\n queue = [];\n\n if (originalQueue.length) {\n scheduleMicrotask(() => {\n batchNotifyFn(() => {\n originalQueue.forEach(callback => {\n notifyFn(callback);\n });\n });\n });\n }\n };\n /**\n * Use this method to set a custom notify function.\n * This can be used to for example wrap notifications with `React.act` while running tests.\n */\n\n\n const setNotifyFunction = fn => {\n notifyFn = fn;\n };\n /**\n * Use this method to set a custom function to batch notifications together into a single tick.\n * By default React Query will use the batch function provided by ReactDOM or React Native.\n */\n\n\n const setBatchNotifyFunction = fn => {\n batchNotifyFn = fn;\n };\n\n return {\n batch,\n batchCalls,\n schedule,\n setNotifyFunction,\n setBatchNotifyFunction\n };\n} // SINGLETON\n\nconst notifyManager = createNotifyManager();\n\nexport { createNotifyManager, notifyManager };\n//# sourceMappingURL=notifyManager.mjs.map\n","class Subscribable {\n constructor() {\n this.listeners = new Set();\n this.subscribe = this.subscribe.bind(this);\n }\n\n subscribe(listener) {\n const identity = {\n listener\n };\n this.listeners.add(identity);\n this.onSubscribe();\n return () => {\n this.listeners.delete(identity);\n this.onUnsubscribe();\n };\n }\n\n hasListeners() {\n return this.listeners.size > 0;\n }\n\n onSubscribe() {// Do nothing\n }\n\n onUnsubscribe() {// Do nothing\n }\n\n}\n\nexport { Subscribable };\n//# sourceMappingURL=subscribable.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nclass FocusManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onFocus => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onFocus(); // Listen to visibillitychange and focus\n\n\n window.addEventListener('visibilitychange', listener, false);\n window.addEventListener('focus', listener, false);\n return () => {\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', listener);\n window.removeEventListener('focus', listener);\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(focused => {\n if (typeof focused === 'boolean') {\n this.setFocused(focused);\n } else {\n this.onFocus();\n }\n });\n }\n\n setFocused(focused) {\n const changed = this.focused !== focused;\n\n if (changed) {\n this.focused = focused;\n this.onFocus();\n }\n }\n\n onFocus() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isFocused() {\n if (typeof this.focused === 'boolean') {\n return this.focused;\n } // document global can be unavailable in react native\n\n\n if (typeof document === 'undefined') {\n return true;\n }\n\n return [undefined, 'visible', 'prerender'].includes(document.visibilityState);\n }\n\n}\nconst focusManager = new FocusManager();\n\nexport { FocusManager, focusManager };\n//# sourceMappingURL=focusManager.mjs.map\n","import { Subscribable } from './subscribable.mjs';\nimport { isServer } from './utils.mjs';\n\nconst onlineEvents = ['online', 'offline'];\nclass OnlineManager extends Subscribable {\n constructor() {\n super();\n\n this.setup = onOnline => {\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n const listener = () => onOnline(); // Listen to online\n\n\n onlineEvents.forEach(event => {\n window.addEventListener(event, listener, false);\n });\n return () => {\n // Be sure to unsubscribe if a new handler is set\n onlineEvents.forEach(event => {\n window.removeEventListener(event, listener);\n });\n };\n }\n\n return;\n };\n }\n\n onSubscribe() {\n if (!this.cleanup) {\n this.setEventListener(this.setup);\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n var _this$cleanup;\n\n (_this$cleanup = this.cleanup) == null ? void 0 : _this$cleanup.call(this);\n this.cleanup = undefined;\n }\n }\n\n setEventListener(setup) {\n var _this$cleanup2;\n\n this.setup = setup;\n (_this$cleanup2 = this.cleanup) == null ? void 0 : _this$cleanup2.call(this);\n this.cleanup = setup(online => {\n if (typeof online === 'boolean') {\n this.setOnline(online);\n } else {\n this.onOnline();\n }\n });\n }\n\n setOnline(online) {\n const changed = this.online !== online;\n\n if (changed) {\n this.online = online;\n this.onOnline();\n }\n }\n\n onOnline() {\n this.listeners.forEach(({\n listener\n }) => {\n listener();\n });\n }\n\n isOnline() {\n if (typeof this.online === 'boolean') {\n return this.online;\n }\n\n if (typeof navigator === 'undefined' || typeof navigator.onLine === 'undefined') {\n return true;\n }\n\n return navigator.onLine;\n }\n\n}\nconst onlineManager = new OnlineManager();\n\nexport { OnlineManager, onlineManager };\n//# sourceMappingURL=onlineManager.mjs.map\n","import { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { sleep } from './utils.mjs';\n\nfunction defaultRetryDelay(failureCount) {\n return Math.min(1000 * 2 ** failureCount, 30000);\n}\n\nfunction canFetch(networkMode) {\n return (networkMode != null ? networkMode : 'online') === 'online' ? onlineManager.isOnline() : true;\n}\nclass CancelledError {\n constructor(options) {\n this.revert = options == null ? void 0 : options.revert;\n this.silent = options == null ? void 0 : options.silent;\n }\n\n}\nfunction isCancelledError(value) {\n return value instanceof CancelledError;\n}\nfunction createRetryer(config) {\n let isRetryCancelled = false;\n let failureCount = 0;\n let isResolved = false;\n let continueFn;\n let promiseResolve;\n let promiseReject;\n const promise = new Promise((outerResolve, outerReject) => {\n promiseResolve = outerResolve;\n promiseReject = outerReject;\n });\n\n const cancel = cancelOptions => {\n if (!isResolved) {\n reject(new CancelledError(cancelOptions));\n config.abort == null ? void 0 : config.abort();\n }\n };\n\n const cancelRetry = () => {\n isRetryCancelled = true;\n };\n\n const continueRetry = () => {\n isRetryCancelled = false;\n };\n\n const shouldPause = () => !focusManager.isFocused() || config.networkMode !== 'always' && !onlineManager.isOnline();\n\n const resolve = value => {\n if (!isResolved) {\n isResolved = true;\n config.onSuccess == null ? void 0 : config.onSuccess(value);\n continueFn == null ? void 0 : continueFn();\n promiseResolve(value);\n }\n };\n\n const reject = value => {\n if (!isResolved) {\n isResolved = true;\n config.onError == null ? void 0 : config.onError(value);\n continueFn == null ? void 0 : continueFn();\n promiseReject(value);\n }\n };\n\n const pause = () => {\n return new Promise(continueResolve => {\n continueFn = value => {\n const canContinue = isResolved || !shouldPause();\n\n if (canContinue) {\n continueResolve(value);\n }\n\n return canContinue;\n };\n\n config.onPause == null ? void 0 : config.onPause();\n }).then(() => {\n continueFn = undefined;\n\n if (!isResolved) {\n config.onContinue == null ? void 0 : config.onContinue();\n }\n });\n }; // Create loop function\n\n\n const run = () => {\n // Do nothing if already resolved\n if (isResolved) {\n return;\n }\n\n let promiseOrValue; // Execute query\n\n try {\n promiseOrValue = config.fn();\n } catch (error) {\n promiseOrValue = Promise.reject(error);\n }\n\n Promise.resolve(promiseOrValue).then(resolve).catch(error => {\n var _config$retry, _config$retryDelay;\n\n // Stop if the fetch is already resolved\n if (isResolved) {\n return;\n } // Do we need to retry the request?\n\n\n const retry = (_config$retry = config.retry) != null ? _config$retry : 3;\n const retryDelay = (_config$retryDelay = config.retryDelay) != null ? _config$retryDelay : defaultRetryDelay;\n const delay = typeof retryDelay === 'function' ? retryDelay(failureCount, error) : retryDelay;\n const shouldRetry = retry === true || typeof retry === 'number' && failureCount < retry || typeof retry === 'function' && retry(failureCount, error);\n\n if (isRetryCancelled || !shouldRetry) {\n // We are done if the query does not need to be retried\n reject(error);\n return;\n }\n\n failureCount++; // Notify on fail\n\n config.onFail == null ? void 0 : config.onFail(failureCount, error); // Delay\n\n sleep(delay) // Pause if the document is not visible or when the device is offline\n .then(() => {\n if (shouldPause()) {\n return pause();\n }\n\n return;\n }).then(() => {\n if (isRetryCancelled) {\n reject(error);\n } else {\n run();\n }\n });\n });\n }; // Start loop\n\n\n if (canFetch(config.networkMode)) {\n run();\n } else {\n pause().then(run);\n }\n\n return {\n promise,\n cancel,\n continue: () => {\n const didContinue = continueFn == null ? void 0 : continueFn();\n return didContinue ? promise : Promise.resolve();\n },\n cancelRetry,\n continueRetry\n };\n}\n\nexport { CancelledError, canFetch, createRetryer, isCancelledError };\n//# sourceMappingURL=retryer.mjs.map\n","import { isValidTimeout, isServer } from './utils.mjs';\n\nclass Removable {\n destroy() {\n this.clearGcTimeout();\n }\n\n scheduleGc() {\n this.clearGcTimeout();\n\n if (isValidTimeout(this.cacheTime)) {\n this.gcTimeout = setTimeout(() => {\n this.optionalRemove();\n }, this.cacheTime);\n }\n }\n\n updateCacheTime(newCacheTime) {\n // Default to 5 minutes (Infinity for server-side) if no cache time is set\n this.cacheTime = Math.max(this.cacheTime || 0, newCacheTime != null ? newCacheTime : isServer ? Infinity : 5 * 60 * 1000);\n }\n\n clearGcTimeout() {\n if (this.gcTimeout) {\n clearTimeout(this.gcTimeout);\n this.gcTimeout = undefined;\n }\n }\n\n}\n\nexport { Removable };\n//# sourceMappingURL=removable.mjs.map\n","import { replaceData, noop, timeUntilStale, getAbortController } from './utils.mjs';\nimport { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { createRetryer, isCancelledError, canFetch } from './retryer.mjs';\nimport { Removable } from './removable.mjs';\n\n// CLASS\nclass Query extends Removable {\n constructor(config) {\n super();\n this.abortSignalConsumed = false;\n this.defaultOptions = config.defaultOptions;\n this.setOptions(config.options);\n this.observers = [];\n this.cache = config.cache;\n this.logger = config.logger || defaultLogger;\n this.queryKey = config.queryKey;\n this.queryHash = config.queryHash;\n this.initialState = config.state || getDefaultState(this.options);\n this.state = this.initialState;\n this.scheduleGc();\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n optionalRemove() {\n if (!this.observers.length && this.state.fetchStatus === 'idle') {\n this.cache.remove(this);\n }\n }\n\n setData(newData, options) {\n const data = replaceData(this.state.data, newData, this.options); // Set data and mark it as cached\n\n this.dispatch({\n data,\n type: 'success',\n dataUpdatedAt: options == null ? void 0 : options.updatedAt,\n manual: options == null ? void 0 : options.manual\n });\n return data;\n }\n\n setState(state, setStateOptions) {\n this.dispatch({\n type: 'setState',\n state,\n setStateOptions\n });\n }\n\n cancel(options) {\n var _this$retryer;\n\n const promise = this.promise;\n (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.cancel(options);\n return promise ? promise.then(noop).catch(noop) : Promise.resolve();\n }\n\n destroy() {\n super.destroy();\n this.cancel({\n silent: true\n });\n }\n\n reset() {\n this.destroy();\n this.setState(this.initialState);\n }\n\n isActive() {\n return this.observers.some(observer => observer.options.enabled !== false);\n }\n\n isDisabled() {\n return this.getObserversCount() > 0 && !this.isActive();\n }\n\n isStale() {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || this.observers.some(observer => observer.getCurrentResult().isStale);\n }\n\n isStaleByTime(staleTime = 0) {\n return this.state.isInvalidated || !this.state.dataUpdatedAt || !timeUntilStale(this.state.dataUpdatedAt, staleTime);\n }\n\n onFocus() {\n var _this$retryer2;\n\n const observer = this.observers.find(x => x.shouldFetchOnWindowFocus());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer2 = this.retryer) == null ? void 0 : _this$retryer2.continue();\n }\n\n onOnline() {\n var _this$retryer3;\n\n const observer = this.observers.find(x => x.shouldFetchOnReconnect());\n\n if (observer) {\n observer.refetch({\n cancelRefetch: false\n });\n } // Continue fetch if currently paused\n\n\n (_this$retryer3 = this.retryer) == null ? void 0 : _this$retryer3.continue();\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the query from being garbage collected\n\n this.clearGcTimeout();\n this.cache.notify({\n type: 'observerAdded',\n query: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n if (this.observers.includes(observer)) {\n this.observers = this.observers.filter(x => x !== observer);\n\n if (!this.observers.length) {\n // If the transport layer does not support cancellation\n // we'll let the query continue so the result can be cached\n if (this.retryer) {\n if (this.abortSignalConsumed) {\n this.retryer.cancel({\n revert: true\n });\n } else {\n this.retryer.cancelRetry();\n }\n }\n\n this.scheduleGc();\n }\n\n this.cache.notify({\n type: 'observerRemoved',\n query: this,\n observer\n });\n }\n }\n\n getObserversCount() {\n return this.observers.length;\n }\n\n invalidate() {\n if (!this.state.isInvalidated) {\n this.dispatch({\n type: 'invalidate'\n });\n }\n }\n\n fetch(options, fetchOptions) {\n var _this$options$behavio, _context$fetchOptions;\n\n if (this.state.fetchStatus !== 'idle') {\n if (this.state.dataUpdatedAt && fetchOptions != null && fetchOptions.cancelRefetch) {\n // Silently cancel current fetch if the user wants to cancel refetches\n this.cancel({\n silent: true\n });\n } else if (this.promise) {\n var _this$retryer4;\n\n // make sure that retries that were potentially cancelled due to unmounts can continue\n (_this$retryer4 = this.retryer) == null ? void 0 : _this$retryer4.continueRetry(); // Return current promise if we are already fetching\n\n return this.promise;\n }\n } // Update config if passed, otherwise the config from the last execution is used\n\n\n if (options) {\n this.setOptions(options);\n } // Use the options from the first observer with a query function if no function is found.\n // This can happen when the query is hydrated or created with setQueryData.\n\n\n if (!this.options.queryFn) {\n const observer = this.observers.find(x => x.options.queryFn);\n\n if (observer) {\n this.setOptions(observer.options);\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!Array.isArray(this.options.queryKey)) {\n this.logger.error(\"As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']\");\n }\n }\n\n const abortController = getAbortController(); // Create query function context\n\n const queryFnContext = {\n queryKey: this.queryKey,\n pageParam: undefined,\n meta: this.meta\n }; // Adds an enumerable signal property to the object that\n // which sets abortSignalConsumed to true when the signal\n // is read.\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n if (abortController) {\n this.abortSignalConsumed = true;\n return abortController.signal;\n }\n\n return undefined;\n }\n });\n };\n\n addSignalProperty(queryFnContext); // Create fetch function\n\n const fetchFn = () => {\n if (!this.options.queryFn) {\n return Promise.reject(\"Missing queryFn for queryKey '\" + this.options.queryHash + \"'\");\n }\n\n this.abortSignalConsumed = false;\n return this.options.queryFn(queryFnContext);\n }; // Trigger behavior hook\n\n\n const context = {\n fetchOptions,\n options: this.options,\n queryKey: this.queryKey,\n state: this.state,\n fetchFn\n };\n addSignalProperty(context);\n (_this$options$behavio = this.options.behavior) == null ? void 0 : _this$options$behavio.onFetch(context); // Store state in case the current fetch needs to be reverted\n\n this.revertState = this.state; // Set to fetching state if not already in it\n\n if (this.state.fetchStatus === 'idle' || this.state.fetchMeta !== ((_context$fetchOptions = context.fetchOptions) == null ? void 0 : _context$fetchOptions.meta)) {\n var _context$fetchOptions2;\n\n this.dispatch({\n type: 'fetch',\n meta: (_context$fetchOptions2 = context.fetchOptions) == null ? void 0 : _context$fetchOptions2.meta\n });\n }\n\n const onError = error => {\n // Optimistically update state if needed\n if (!(isCancelledError(error) && error.silent)) {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n\n if (!isCancelledError(error)) {\n var _this$cache$config$on, _this$cache$config, _this$cache$config$on2, _this$cache$config2;\n\n // Notify cache callback\n (_this$cache$config$on = (_this$cache$config = this.cache.config).onError) == null ? void 0 : _this$cache$config$on.call(_this$cache$config, error, this);\n (_this$cache$config$on2 = (_this$cache$config2 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on2.call(_this$cache$config2, this.state.data, error, this);\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n }\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n }; // Try to fetch the data\n\n\n this.retryer = createRetryer({\n fn: context.fetchFn,\n abort: abortController == null ? void 0 : abortController.abort.bind(abortController),\n onSuccess: data => {\n var _this$cache$config$on3, _this$cache$config3, _this$cache$config$on4, _this$cache$config4;\n\n if (typeof data === 'undefined') {\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(\"Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: \" + this.queryHash);\n }\n\n onError(new Error(this.queryHash + \" data is undefined\"));\n return;\n }\n\n this.setData(data); // Notify cache callback\n\n (_this$cache$config$on3 = (_this$cache$config3 = this.cache.config).onSuccess) == null ? void 0 : _this$cache$config$on3.call(_this$cache$config3, data, this);\n (_this$cache$config$on4 = (_this$cache$config4 = this.cache.config).onSettled) == null ? void 0 : _this$cache$config$on4.call(_this$cache$config4, data, this.state.error, this);\n\n if (!this.isFetchingOptimistic) {\n // Schedule query gc after fetching\n this.scheduleGc();\n }\n\n this.isFetchingOptimistic = false;\n },\n onError,\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: context.options.retry,\n retryDelay: context.options.retryDelay,\n networkMode: context.options.networkMode\n });\n this.promise = this.retryer.promise;\n return this.promise;\n }\n\n dispatch(action) {\n const reducer = state => {\n var _action$meta, _action$dataUpdatedAt;\n\n switch (action.type) {\n case 'failed':\n return { ...state,\n fetchFailureCount: action.failureCount,\n fetchFailureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n fetchStatus: 'paused'\n };\n\n case 'continue':\n return { ...state,\n fetchStatus: 'fetching'\n };\n\n case 'fetch':\n return { ...state,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: (_action$meta = action.meta) != null ? _action$meta : null,\n fetchStatus: canFetch(this.options.networkMode) ? 'fetching' : 'paused',\n ...(!state.dataUpdatedAt && {\n error: null,\n status: 'loading'\n })\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n dataUpdateCount: state.dataUpdateCount + 1,\n dataUpdatedAt: (_action$dataUpdatedAt = action.dataUpdatedAt) != null ? _action$dataUpdatedAt : Date.now(),\n error: null,\n isInvalidated: false,\n status: 'success',\n ...(!action.manual && {\n fetchStatus: 'idle',\n fetchFailureCount: 0,\n fetchFailureReason: null\n })\n };\n\n case 'error':\n const error = action.error;\n\n if (isCancelledError(error) && error.revert && this.revertState) {\n return { ...this.revertState,\n fetchStatus: 'idle'\n };\n }\n\n return { ...state,\n error: error,\n errorUpdateCount: state.errorUpdateCount + 1,\n errorUpdatedAt: Date.now(),\n fetchFailureCount: state.fetchFailureCount + 1,\n fetchFailureReason: error,\n fetchStatus: 'idle',\n status: 'error'\n };\n\n case 'invalidate':\n return { ...state,\n isInvalidated: true\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onQueryUpdate(action);\n });\n this.cache.notify({\n query: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\n\nfunction getDefaultState(options) {\n const data = typeof options.initialData === 'function' ? options.initialData() : options.initialData;\n const hasData = typeof data !== 'undefined';\n const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === 'function' ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;\n return {\n data,\n dataUpdateCount: 0,\n dataUpdatedAt: hasData ? initialDataUpdatedAt != null ? initialDataUpdatedAt : Date.now() : 0,\n error: null,\n errorUpdateCount: 0,\n errorUpdatedAt: 0,\n fetchFailureCount: 0,\n fetchFailureReason: null,\n fetchMeta: null,\n isInvalidated: false,\n status: hasData ? 'success' : 'loading',\n fetchStatus: 'idle'\n };\n}\n\nexport { Query };\n//# sourceMappingURL=query.mjs.map\n","import { hashQueryKeyByOptions, parseFilterArgs, matchQuery } from './utils.mjs';\nimport { Query } from './query.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass QueryCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.queries = [];\n this.queriesMap = {};\n }\n\n build(client, options, state) {\n var _options$queryHash;\n\n const queryKey = options.queryKey;\n const queryHash = (_options$queryHash = options.queryHash) != null ? _options$queryHash : hashQueryKeyByOptions(queryKey, options);\n let query = this.get(queryHash);\n\n if (!query) {\n query = new Query({\n cache: this,\n logger: client.getLogger(),\n queryKey,\n queryHash,\n options: client.defaultQueryOptions(options),\n state,\n defaultOptions: client.getQueryDefaults(queryKey)\n });\n this.add(query);\n }\n\n return query;\n }\n\n add(query) {\n if (!this.queriesMap[query.queryHash]) {\n this.queriesMap[query.queryHash] = query;\n this.queries.push(query);\n this.notify({\n type: 'added',\n query\n });\n }\n }\n\n remove(query) {\n const queryInMap = this.queriesMap[query.queryHash];\n\n if (queryInMap) {\n query.destroy();\n this.queries = this.queries.filter(x => x !== query);\n\n if (queryInMap === query) {\n delete this.queriesMap[query.queryHash];\n }\n\n this.notify({\n type: 'removed',\n query\n });\n }\n }\n\n clear() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n this.remove(query);\n });\n });\n }\n\n get(queryHash) {\n return this.queriesMap[queryHash];\n }\n\n getAll() {\n return this.queries;\n }\n\n find(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.queries.find(query => matchQuery(filters, query));\n }\n\n findAll(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n return Object.keys(filters).length > 0 ? this.queries.filter(query => matchQuery(filters, query)) : this.queries;\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n onFocus() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onFocus();\n });\n });\n }\n\n onOnline() {\n notifyManager.batch(() => {\n this.queries.forEach(query => {\n query.onOnline();\n });\n });\n }\n\n}\n\nexport { QueryCache };\n//# sourceMappingURL=queryCache.mjs.map\n","import { defaultLogger } from './logger.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { Removable } from './removable.mjs';\nimport { createRetryer, canFetch } from './retryer.mjs';\n\n// CLASS\nclass Mutation extends Removable {\n constructor(config) {\n super();\n this.defaultOptions = config.defaultOptions;\n this.mutationId = config.mutationId;\n this.mutationCache = config.mutationCache;\n this.logger = config.logger || defaultLogger;\n this.observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n\n setOptions(options) {\n this.options = { ...this.defaultOptions,\n ...options\n };\n this.updateCacheTime(this.options.cacheTime);\n }\n\n get meta() {\n return this.options.meta;\n }\n\n setState(state) {\n this.dispatch({\n type: 'setState',\n state\n });\n }\n\n addObserver(observer) {\n if (!this.observers.includes(observer)) {\n this.observers.push(observer); // Stop the mutation from being garbage collected\n\n this.clearGcTimeout();\n this.mutationCache.notify({\n type: 'observerAdded',\n mutation: this,\n observer\n });\n }\n }\n\n removeObserver(observer) {\n this.observers = this.observers.filter(x => x !== observer);\n this.scheduleGc();\n this.mutationCache.notify({\n type: 'observerRemoved',\n mutation: this,\n observer\n });\n }\n\n optionalRemove() {\n if (!this.observers.length) {\n if (this.state.status === 'loading') {\n this.scheduleGc();\n } else {\n this.mutationCache.remove(this);\n }\n }\n }\n\n continue() {\n var _this$retryer$continu, _this$retryer;\n\n return (_this$retryer$continu = (_this$retryer = this.retryer) == null ? void 0 : _this$retryer.continue()) != null ? _this$retryer$continu : this.execute();\n }\n\n async execute() {\n const executeMutation = () => {\n var _this$options$retry;\n\n this.retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject('No mutationFn found');\n }\n\n return this.options.mutationFn(this.state.variables);\n },\n onFail: (failureCount, error) => {\n this.dispatch({\n type: 'failed',\n failureCount,\n error\n });\n },\n onPause: () => {\n this.dispatch({\n type: 'pause'\n });\n },\n onContinue: () => {\n this.dispatch({\n type: 'continue'\n });\n },\n retry: (_this$options$retry = this.options.retry) != null ? _this$options$retry : 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode\n });\n return this.retryer.promise;\n };\n\n const restored = this.state.status === 'loading';\n\n try {\n var _this$mutationCache$c3, _this$mutationCache$c4, _this$options$onSucce, _this$options2, _this$mutationCache$c5, _this$mutationCache$c6, _this$options$onSettl, _this$options3;\n\n if (!restored) {\n var _this$mutationCache$c, _this$mutationCache$c2, _this$options$onMutat, _this$options;\n\n this.dispatch({\n type: 'loading',\n variables: this.options.variables\n }); // Notify cache callback\n\n await ((_this$mutationCache$c = (_this$mutationCache$c2 = this.mutationCache.config).onMutate) == null ? void 0 : _this$mutationCache$c.call(_this$mutationCache$c2, this.state.variables, this));\n const context = await ((_this$options$onMutat = (_this$options = this.options).onMutate) == null ? void 0 : _this$options$onMutat.call(_this$options, this.state.variables));\n\n if (context !== this.state.context) {\n this.dispatch({\n type: 'loading',\n context,\n variables: this.state.variables\n });\n }\n }\n\n const data = await executeMutation(); // Notify cache callback\n\n await ((_this$mutationCache$c3 = (_this$mutationCache$c4 = this.mutationCache.config).onSuccess) == null ? void 0 : _this$mutationCache$c3.call(_this$mutationCache$c4, data, this.state.variables, this.state.context, this));\n await ((_this$options$onSucce = (_this$options2 = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options2, data, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c5 = (_this$mutationCache$c6 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c5.call(_this$mutationCache$c6, data, null, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl = (_this$options3 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options3, data, null, this.state.variables, this.state.context));\n this.dispatch({\n type: 'success',\n data\n });\n return data;\n } catch (error) {\n try {\n var _this$mutationCache$c7, _this$mutationCache$c8, _this$options$onError, _this$options4, _this$mutationCache$c9, _this$mutationCache$c10, _this$options$onSettl2, _this$options5;\n\n // Notify cache callback\n await ((_this$mutationCache$c7 = (_this$mutationCache$c8 = this.mutationCache.config).onError) == null ? void 0 : _this$mutationCache$c7.call(_this$mutationCache$c8, error, this.state.variables, this.state.context, this));\n\n if (process.env.NODE_ENV !== 'production') {\n this.logger.error(error);\n }\n\n await ((_this$options$onError = (_this$options4 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options4, error, this.state.variables, this.state.context)); // Notify cache callback\n\n await ((_this$mutationCache$c9 = (_this$mutationCache$c10 = this.mutationCache.config).onSettled) == null ? void 0 : _this$mutationCache$c9.call(_this$mutationCache$c10, undefined, error, this.state.variables, this.state.context, this));\n await ((_this$options$onSettl2 = (_this$options5 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options5, undefined, error, this.state.variables, this.state.context));\n throw error;\n } finally {\n this.dispatch({\n type: 'error',\n error: error\n });\n }\n }\n }\n\n dispatch(action) {\n const reducer = state => {\n switch (action.type) {\n case 'failed':\n return { ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n\n case 'pause':\n return { ...state,\n isPaused: true\n };\n\n case 'continue':\n return { ...state,\n isPaused: false\n };\n\n case 'loading':\n return { ...state,\n context: action.context,\n data: undefined,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: !canFetch(this.options.networkMode),\n status: 'loading',\n variables: action.variables\n };\n\n case 'success':\n return { ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: 'success',\n isPaused: false\n };\n\n case 'error':\n return { ...state,\n data: undefined,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: 'error'\n };\n\n case 'setState':\n return { ...state,\n ...action.state\n };\n }\n };\n\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.observers.forEach(observer => {\n observer.onMutationUpdate(action);\n });\n this.mutationCache.notify({\n mutation: this,\n type: 'updated',\n action\n });\n });\n }\n\n}\nfunction getDefaultState() {\n return {\n context: undefined,\n data: undefined,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: 'idle',\n variables: undefined\n };\n}\n\nexport { Mutation, getDefaultState };\n//# sourceMappingURL=mutation.mjs.map\n","import { notifyManager } from './notifyManager.mjs';\nimport { Mutation } from './mutation.mjs';\nimport { matchMutation, noop } from './utils.mjs';\nimport { Subscribable } from './subscribable.mjs';\n\n// CLASS\nclass MutationCache extends Subscribable {\n constructor(config) {\n super();\n this.config = config || {};\n this.mutations = [];\n this.mutationId = 0;\n }\n\n build(client, options, state) {\n const mutation = new Mutation({\n mutationCache: this,\n logger: client.getLogger(),\n mutationId: ++this.mutationId,\n options: client.defaultMutationOptions(options),\n state,\n defaultOptions: options.mutationKey ? client.getMutationDefaults(options.mutationKey) : undefined\n });\n this.add(mutation);\n return mutation;\n }\n\n add(mutation) {\n this.mutations.push(mutation);\n this.notify({\n type: 'added',\n mutation\n });\n }\n\n remove(mutation) {\n this.mutations = this.mutations.filter(x => x !== mutation);\n this.notify({\n type: 'removed',\n mutation\n });\n }\n\n clear() {\n notifyManager.batch(() => {\n this.mutations.forEach(mutation => {\n this.remove(mutation);\n });\n });\n }\n\n getAll() {\n return this.mutations;\n }\n\n find(filters) {\n if (typeof filters.exact === 'undefined') {\n filters.exact = true;\n }\n\n return this.mutations.find(mutation => matchMutation(filters, mutation));\n }\n\n findAll(filters) {\n return this.mutations.filter(mutation => matchMutation(filters, mutation));\n }\n\n notify(event) {\n notifyManager.batch(() => {\n this.listeners.forEach(({\n listener\n }) => {\n listener(event);\n });\n });\n }\n\n resumePausedMutations() {\n var _this$resuming;\n\n this.resuming = ((_this$resuming = this.resuming) != null ? _this$resuming : Promise.resolve()).then(() => {\n const pausedMutations = this.mutations.filter(x => x.state.isPaused);\n return notifyManager.batch(() => pausedMutations.reduce((promise, mutation) => promise.then(() => mutation.continue().catch(noop)), Promise.resolve()));\n }).then(() => {\n this.resuming = undefined;\n });\n return this.resuming;\n }\n\n}\n\nexport { MutationCache };\n//# sourceMappingURL=mutationCache.mjs.map\n","function infiniteQueryBehavior() {\n return {\n onFetch: context => {\n context.fetchFn = () => {\n var _context$fetchOptions, _context$fetchOptions2, _context$fetchOptions3, _context$fetchOptions4, _context$state$data, _context$state$data2;\n\n const refetchPage = (_context$fetchOptions = context.fetchOptions) == null ? void 0 : (_context$fetchOptions2 = _context$fetchOptions.meta) == null ? void 0 : _context$fetchOptions2.refetchPage;\n const fetchMore = (_context$fetchOptions3 = context.fetchOptions) == null ? void 0 : (_context$fetchOptions4 = _context$fetchOptions3.meta) == null ? void 0 : _context$fetchOptions4.fetchMore;\n const pageParam = fetchMore == null ? void 0 : fetchMore.pageParam;\n const isFetchingNextPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'forward';\n const isFetchingPreviousPage = (fetchMore == null ? void 0 : fetchMore.direction) === 'backward';\n const oldPages = ((_context$state$data = context.state.data) == null ? void 0 : _context$state$data.pages) || [];\n const oldPageParams = ((_context$state$data2 = context.state.data) == null ? void 0 : _context$state$data2.pageParams) || [];\n let newPageParams = oldPageParams;\n let cancelled = false;\n\n const addSignalProperty = object => {\n Object.defineProperty(object, 'signal', {\n enumerable: true,\n get: () => {\n var _context$signal;\n\n if ((_context$signal = context.signal) != null && _context$signal.aborted) {\n cancelled = true;\n } else {\n var _context$signal2;\n\n (_context$signal2 = context.signal) == null ? void 0 : _context$signal2.addEventListener('abort', () => {\n cancelled = true;\n });\n }\n\n return context.signal;\n }\n });\n }; // Get query function\n\n\n const queryFn = context.options.queryFn || (() => Promise.reject(\"Missing queryFn for queryKey '\" + context.options.queryHash + \"'\"));\n\n const buildNewPages = (pages, param, page, previous) => {\n newPageParams = previous ? [param, ...newPageParams] : [...newPageParams, param];\n return previous ? [page, ...pages] : [...pages, page];\n }; // Create function to fetch a page\n\n\n const fetchPage = (pages, manual, param, previous) => {\n if (cancelled) {\n return Promise.reject('Cancelled');\n }\n\n if (typeof param === 'undefined' && !manual && pages.length) {\n return Promise.resolve(pages);\n }\n\n const queryFnContext = {\n queryKey: context.queryKey,\n pageParam: param,\n meta: context.options.meta\n };\n addSignalProperty(queryFnContext);\n const queryFnResult = queryFn(queryFnContext);\n const promise = Promise.resolve(queryFnResult).then(page => buildNewPages(pages, param, page, previous));\n return promise;\n };\n\n let promise; // Fetch first page?\n\n if (!oldPages.length) {\n promise = fetchPage([]);\n } // Fetch next page?\n else if (isFetchingNextPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getNextPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param);\n } // Fetch previous page?\n else if (isFetchingPreviousPage) {\n const manual = typeof pageParam !== 'undefined';\n const param = manual ? pageParam : getPreviousPageParam(context.options, oldPages);\n promise = fetchPage(oldPages, manual, param, true);\n } // Refetch pages\n else {\n newPageParams = [];\n const manual = typeof context.options.getNextPageParam === 'undefined';\n const shouldFetchFirstPage = refetchPage && oldPages[0] ? refetchPage(oldPages[0], 0, oldPages) : true; // Fetch first page\n\n promise = shouldFetchFirstPage ? fetchPage([], manual, oldPageParams[0]) : Promise.resolve(buildNewPages([], oldPageParams[0], oldPages[0])); // Fetch remaining pages\n\n for (let i = 1; i < oldPages.length; i++) {\n promise = promise.then(pages => {\n const shouldFetchNextPage = refetchPage && oldPages[i] ? refetchPage(oldPages[i], i, oldPages) : true;\n\n if (shouldFetchNextPage) {\n const param = manual ? oldPageParams[i] : getNextPageParam(context.options, pages);\n return fetchPage(pages, manual, param);\n }\n\n return Promise.resolve(buildNewPages(pages, oldPageParams[i], oldPages[i]));\n });\n }\n }\n\n const finalPromise = promise.then(pages => ({\n pages,\n pageParams: newPageParams\n }));\n return finalPromise;\n };\n }\n };\n}\nfunction getNextPageParam(options, pages) {\n return options.getNextPageParam == null ? void 0 : options.getNextPageParam(pages[pages.length - 1], pages);\n}\nfunction getPreviousPageParam(options, pages) {\n return options.getPreviousPageParam == null ? void 0 : options.getPreviousPageParam(pages[0], pages);\n}\n/**\n * Checks if there is a next page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasNextPage(options, pages) {\n if (options.getNextPageParam && Array.isArray(pages)) {\n const nextPageParam = getNextPageParam(options, pages);\n return typeof nextPageParam !== 'undefined' && nextPageParam !== null && nextPageParam !== false;\n }\n\n return;\n}\n/**\n * Checks if there is a previous page.\n * Returns `undefined` if it cannot be determined.\n */\n\nfunction hasPreviousPage(options, pages) {\n if (options.getPreviousPageParam && Array.isArray(pages)) {\n const previousPageParam = getPreviousPageParam(options, pages);\n return typeof previousPageParam !== 'undefined' && previousPageParam !== null && previousPageParam !== false;\n }\n\n return;\n}\n\nexport { getNextPageParam, getPreviousPageParam, hasNextPage, hasPreviousPage, infiniteQueryBehavior };\n//# sourceMappingURL=infiniteQueryBehavior.mjs.map\n","import { parseFilterArgs, parseQueryArgs, functionalUpdate, noop, hashQueryKey, partialMatchKey, hashQueryKeyByOptions } from './utils.mjs';\nimport { QueryCache } from './queryCache.mjs';\nimport { MutationCache } from './mutationCache.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { onlineManager } from './onlineManager.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { infiniteQueryBehavior } from './infiniteQueryBehavior.mjs';\nimport { defaultLogger } from './logger.mjs';\n\n// CLASS\nclass QueryClient {\n constructor(config = {}) {\n this.queryCache = config.queryCache || new QueryCache();\n this.mutationCache = config.mutationCache || new MutationCache();\n this.logger = config.logger || defaultLogger;\n this.defaultOptions = config.defaultOptions || {};\n this.queryDefaults = [];\n this.mutationDefaults = [];\n this.mountCount = 0;\n\n if (process.env.NODE_ENV !== 'production' && config.logger) {\n this.logger.error(\"Passing a custom logger has been deprecated and will be removed in the next major version.\");\n }\n }\n\n mount() {\n this.mountCount++;\n if (this.mountCount !== 1) return;\n this.unsubscribeFocus = focusManager.subscribe(() => {\n if (focusManager.isFocused()) {\n this.resumePausedMutations();\n this.queryCache.onFocus();\n }\n });\n this.unsubscribeOnline = onlineManager.subscribe(() => {\n if (onlineManager.isOnline()) {\n this.resumePausedMutations();\n this.queryCache.onOnline();\n }\n });\n }\n\n unmount() {\n var _this$unsubscribeFocu, _this$unsubscribeOnli;\n\n this.mountCount--;\n if (this.mountCount !== 0) return;\n (_this$unsubscribeFocu = this.unsubscribeFocus) == null ? void 0 : _this$unsubscribeFocu.call(this);\n this.unsubscribeFocus = undefined;\n (_this$unsubscribeOnli = this.unsubscribeOnline) == null ? void 0 : _this$unsubscribeOnli.call(this);\n this.unsubscribeOnline = undefined;\n }\n\n isFetching(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n filters.fetchStatus = 'fetching';\n return this.queryCache.findAll(filters).length;\n }\n\n isMutating(filters) {\n return this.mutationCache.findAll({ ...filters,\n fetching: true\n }).length;\n }\n\n getQueryData(queryKey, filters) {\n var _this$queryCache$find;\n\n return (_this$queryCache$find = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find.state.data;\n }\n\n ensureQueryData(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const cachedData = this.getQueryData(parsedOptions.queryKey);\n return cachedData ? Promise.resolve(cachedData) : this.fetchQuery(parsedOptions);\n }\n\n getQueriesData(queryKeyOrFilters) {\n return this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey,\n state\n }) => {\n const data = state.data;\n return [queryKey, data];\n });\n }\n\n setQueryData(queryKey, updater, options) {\n const query = this.queryCache.find(queryKey);\n const prevData = query == null ? void 0 : query.state.data;\n const data = functionalUpdate(updater, prevData);\n\n if (typeof data === 'undefined') {\n return undefined;\n }\n\n const parsedOptions = parseQueryArgs(queryKey);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions);\n return this.queryCache.build(this, defaultedOptions).setData(data, { ...options,\n manual: true\n });\n }\n\n setQueriesData(queryKeyOrFilters, updater, options) {\n return notifyManager.batch(() => this.getQueryCache().findAll(queryKeyOrFilters).map(({\n queryKey\n }) => [queryKey, this.setQueryData(queryKey, updater, options)]));\n }\n\n getQueryState(queryKey, filters) {\n var _this$queryCache$find2;\n\n return (_this$queryCache$find2 = this.queryCache.find(queryKey, filters)) == null ? void 0 : _this$queryCache$find2.state;\n }\n\n removeQueries(arg1, arg2) {\n const [filters] = parseFilterArgs(arg1, arg2);\n const queryCache = this.queryCache;\n notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n queryCache.remove(query);\n });\n });\n }\n\n resetQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const queryCache = this.queryCache;\n const refetchFilters = {\n type: 'active',\n ...filters\n };\n return notifyManager.batch(() => {\n queryCache.findAll(filters).forEach(query => {\n query.reset();\n });\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n cancelQueries(arg1, arg2, arg3) {\n const [filters, cancelOptions = {}] = parseFilterArgs(arg1, arg2, arg3);\n\n if (typeof cancelOptions.revert === 'undefined') {\n cancelOptions.revert = true;\n }\n\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).map(query => query.cancel(cancelOptions)));\n return Promise.all(promises).then(noop).catch(noop);\n }\n\n invalidateQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n return notifyManager.batch(() => {\n var _ref, _filters$refetchType;\n\n this.queryCache.findAll(filters).forEach(query => {\n query.invalidate();\n });\n\n if (filters.refetchType === 'none') {\n return Promise.resolve();\n }\n\n const refetchFilters = { ...filters,\n type: (_ref = (_filters$refetchType = filters.refetchType) != null ? _filters$refetchType : filters.type) != null ? _ref : 'active'\n };\n return this.refetchQueries(refetchFilters, options);\n });\n }\n\n refetchQueries(arg1, arg2, arg3) {\n const [filters, options] = parseFilterArgs(arg1, arg2, arg3);\n const promises = notifyManager.batch(() => this.queryCache.findAll(filters).filter(query => !query.isDisabled()).map(query => {\n var _options$cancelRefetc;\n\n return query.fetch(undefined, { ...options,\n cancelRefetch: (_options$cancelRefetc = options == null ? void 0 : options.cancelRefetch) != null ? _options$cancelRefetc : true,\n meta: {\n refetchPage: filters.refetchPage\n }\n });\n }));\n let promise = Promise.all(promises).then(noop);\n\n if (!(options != null && options.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n fetchQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const defaultedOptions = this.defaultQueryOptions(parsedOptions); // https://github.com/tannerlinsley/react-query/issues/652\n\n if (typeof defaultedOptions.retry === 'undefined') {\n defaultedOptions.retry = false;\n }\n\n const query = this.queryCache.build(this, defaultedOptions);\n return query.isStaleByTime(defaultedOptions.staleTime) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);\n }\n\n prefetchQuery(arg1, arg2, arg3) {\n return this.fetchQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n fetchInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n parsedOptions.behavior = infiniteQueryBehavior();\n return this.fetchQuery(parsedOptions);\n }\n\n prefetchInfiniteQuery(arg1, arg2, arg3) {\n return this.fetchInfiniteQuery(arg1, arg2, arg3).then(noop).catch(noop);\n }\n\n resumePausedMutations() {\n return this.mutationCache.resumePausedMutations();\n }\n\n getQueryCache() {\n return this.queryCache;\n }\n\n getMutationCache() {\n return this.mutationCache;\n }\n\n getLogger() {\n return this.logger;\n }\n\n getDefaultOptions() {\n return this.defaultOptions;\n }\n\n setDefaultOptions(options) {\n this.defaultOptions = options;\n }\n\n setQueryDefaults(queryKey, options) {\n const result = this.queryDefaults.find(x => hashQueryKey(queryKey) === hashQueryKey(x.queryKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.queryDefaults.push({\n queryKey,\n defaultOptions: options\n });\n }\n }\n\n getQueryDefaults(queryKey) {\n if (!queryKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.queryDefaults.find(x => partialMatchKey(queryKey, x.queryKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.queryDefaults.filter(x => partialMatchKey(queryKey, x.queryKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several query defaults match with key '\" + JSON.stringify(queryKey) + \"'. The first matching query defaults are used. Please check how query defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetquerydefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n setMutationDefaults(mutationKey, options) {\n const result = this.mutationDefaults.find(x => hashQueryKey(mutationKey) === hashQueryKey(x.mutationKey));\n\n if (result) {\n result.defaultOptions = options;\n } else {\n this.mutationDefaults.push({\n mutationKey,\n defaultOptions: options\n });\n }\n }\n\n getMutationDefaults(mutationKey) {\n if (!mutationKey) {\n return undefined;\n } // Get the first matching defaults\n\n\n const firstMatchingDefaults = this.mutationDefaults.find(x => partialMatchKey(mutationKey, x.mutationKey)); // Additional checks and error in dev mode\n\n if (process.env.NODE_ENV !== 'production') {\n // Retrieve all matching defaults for the given key\n const matchingDefaults = this.mutationDefaults.filter(x => partialMatchKey(mutationKey, x.mutationKey)); // It is ok not having defaults, but it is error prone to have more than 1 default for a given key\n\n if (matchingDefaults.length > 1) {\n this.logger.error(\"[QueryClient] Several mutation defaults match with key '\" + JSON.stringify(mutationKey) + \"'. The first matching mutation defaults are used. Please check how mutation defaults are registered. Order does matter here. cf. https://react-query.tanstack.com/reference/QueryClient#queryclientsetmutationdefaults.\");\n }\n }\n\n return firstMatchingDefaults == null ? void 0 : firstMatchingDefaults.defaultOptions;\n }\n\n defaultQueryOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n const defaultedOptions = { ...this.defaultOptions.queries,\n ...this.getQueryDefaults(options == null ? void 0 : options.queryKey),\n ...options,\n _defaulted: true\n };\n\n if (!defaultedOptions.queryHash && defaultedOptions.queryKey) {\n defaultedOptions.queryHash = hashQueryKeyByOptions(defaultedOptions.queryKey, defaultedOptions);\n } // dependent default values\n\n\n if (typeof defaultedOptions.refetchOnReconnect === 'undefined') {\n defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== 'always';\n }\n\n if (typeof defaultedOptions.useErrorBoundary === 'undefined') {\n defaultedOptions.useErrorBoundary = !!defaultedOptions.suspense;\n }\n\n return defaultedOptions;\n }\n\n defaultMutationOptions(options) {\n if (options != null && options._defaulted) {\n return options;\n }\n\n return { ...this.defaultOptions.mutations,\n ...this.getMutationDefaults(options == null ? void 0 : options.mutationKey),\n ...options,\n _defaulted: true\n };\n }\n\n clear() {\n this.queryCache.clear();\n this.mutationCache.clear();\n }\n\n}\n\nexport { QueryClient };\n//# sourceMappingURL=queryClient.mjs.map\n","// TYPES\n// FUNCTIONS\nfunction dehydrateMutation(mutation) {\n return {\n mutationKey: mutation.options.mutationKey,\n state: mutation.state\n };\n} // Most config is not dehydrated but instead meant to configure again when\n// consuming the de/rehydrated data, typically with useQuery on the client.\n// Sometimes it might make sense to prefetch data on the server and include\n// in the html-payload, but not consume it on the initial render.\n\n\nfunction dehydrateQuery(query) {\n return {\n state: query.state,\n queryKey: query.queryKey,\n queryHash: query.queryHash\n };\n}\n\nfunction defaultShouldDehydrateMutation(mutation) {\n return mutation.state.isPaused;\n}\nfunction defaultShouldDehydrateQuery(query) {\n return query.state.status === 'success';\n}\nfunction dehydrate(client, options = {}) {\n const mutations = [];\n const queries = [];\n\n if (options.dehydrateMutations !== false) {\n const shouldDehydrateMutation = options.shouldDehydrateMutation || defaultShouldDehydrateMutation;\n client.getMutationCache().getAll().forEach(mutation => {\n if (shouldDehydrateMutation(mutation)) {\n mutations.push(dehydrateMutation(mutation));\n }\n });\n }\n\n if (options.dehydrateQueries !== false) {\n const shouldDehydrateQuery = options.shouldDehydrateQuery || defaultShouldDehydrateQuery;\n client.getQueryCache().getAll().forEach(query => {\n if (shouldDehydrateQuery(query)) {\n queries.push(dehydrateQuery(query));\n }\n });\n }\n\n return {\n mutations,\n queries\n };\n}\nfunction hydrate(client, dehydratedState, options) {\n if (typeof dehydratedState !== 'object' || dehydratedState === null) {\n return;\n }\n\n const mutationCache = client.getMutationCache();\n const queryCache = client.getQueryCache(); // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const mutations = dehydratedState.mutations || []; // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n\n const queries = dehydratedState.queries || [];\n mutations.forEach(dehydratedMutation => {\n var _options$defaultOptio;\n\n mutationCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio = options.defaultOptions) == null ? void 0 : _options$defaultOptio.mutations),\n mutationKey: dehydratedMutation.mutationKey\n }, dehydratedMutation.state);\n });\n queries.forEach(({\n queryKey,\n state,\n queryHash\n }) => {\n var _options$defaultOptio2;\n\n const query = queryCache.get(queryHash); // Do not hydrate if an existing query exists with newer data\n\n if (query) {\n if (query.state.dataUpdatedAt < state.dataUpdatedAt) {\n // omit fetchStatus from dehydrated state\n // so that query stays in its current fetchStatus\n const {\n fetchStatus: _ignored,\n ...dehydratedQueryState\n } = state;\n query.setState(dehydratedQueryState);\n }\n\n return;\n } // Restore query\n\n\n queryCache.build(client, { ...(options == null ? void 0 : (_options$defaultOptio2 = options.defaultOptions) == null ? void 0 : _options$defaultOptio2.queries),\n queryKey,\n queryHash\n }, // Reset fetch status to idle to avoid\n // query being stuck in fetching state upon hydration\n { ...state,\n fetchStatus: 'idle'\n });\n });\n}\n\nexport { defaultShouldDehydrateMutation, defaultShouldDehydrateQuery, dehydrate, hydrate };\n//# sourceMappingURL=hydration.mjs.map\n","import { hydrate, dehydrate } from '@tanstack/query-core';\n\n/**\n * Checks if emitted event is about cache change and not about observers.\n * Useful for persist, where we only want to trigger save when cache is changed.\n */\nconst cacheableEventTypes = ['added', 'removed', 'updated'];\n\nfunction isCacheableEventType(eventType) {\n return cacheableEventTypes.includes(eventType);\n}\n/**\n * Restores persisted data to the QueryCache\n * - data obtained from persister.restoreClient\n * - data is hydrated using hydrateOptions\n * If data is expired, busted, empty, or throws, it runs persister.removeClient\n */\n\n\nasync function persistQueryClientRestore({\n queryClient,\n persister,\n maxAge = 1000 * 60 * 60 * 24,\n buster = '',\n hydrateOptions\n}) {\n try {\n const persistedClient = await persister.restoreClient();\n\n if (persistedClient) {\n if (persistedClient.timestamp) {\n const expired = Date.now() - persistedClient.timestamp > maxAge;\n const busted = persistedClient.buster !== buster;\n\n if (expired || busted) {\n persister.removeClient();\n } else {\n hydrate(queryClient, persistedClient.clientState, hydrateOptions);\n }\n } else {\n persister.removeClient();\n }\n }\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n queryClient.getLogger().error(err);\n queryClient.getLogger().warn('Encountered an error attempting to restore client cache from persisted location. As a precaution, the persisted cache will be discarded.');\n }\n\n persister.removeClient();\n }\n}\n/**\n * Persists data from the QueryCache\n * - data dehydrated using dehydrateOptions\n * - data is persisted using persister.persistClient\n */\n\nasync function persistQueryClientSave({\n queryClient,\n persister,\n buster = '',\n dehydrateOptions\n}) {\n const persistClient = {\n buster,\n timestamp: Date.now(),\n clientState: dehydrate(queryClient, dehydrateOptions)\n };\n await persister.persistClient(persistClient);\n}\n/**\n * Subscribe to QueryCache and MutationCache updates (for persisting)\n * @returns an unsubscribe function (to discontinue monitoring)\n */\n\nfunction persistQueryClientSubscribe(props) {\n const unsubscribeQueryCache = props.queryClient.getQueryCache().subscribe(event => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n const unusbscribeMutationCache = props.queryClient.getMutationCache().subscribe(event => {\n if (isCacheableEventType(event.type)) {\n persistQueryClientSave(props);\n }\n });\n return () => {\n unsubscribeQueryCache();\n unusbscribeMutationCache();\n };\n}\n/**\n * Restores persisted data to QueryCache and persists further changes.\n */\n\nfunction persistQueryClient(props) {\n let hasUnsubscribed = false;\n let persistQueryClientUnsubscribe;\n\n const unsubscribe = () => {\n hasUnsubscribed = true;\n persistQueryClientUnsubscribe == null ? void 0 : persistQueryClientUnsubscribe();\n }; // Attempt restore\n\n\n const restorePromise = persistQueryClientRestore(props).then(() => {\n if (!hasUnsubscribed) {\n // Subscribe to changes in the query cache to trigger the save\n persistQueryClientUnsubscribe = persistQueryClientSubscribe(props);\n }\n });\n return [unsubscribe, restorePromise];\n}\n\nexport { persistQueryClient, persistQueryClientRestore, persistQueryClientSave, persistQueryClientSubscribe };\n//# sourceMappingURL=persist.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst defaultContext = /*#__PURE__*/React.createContext(undefined);\nconst QueryClientSharingContext = /*#__PURE__*/React.createContext(false); // If we are given a context, we will use it.\n// Otherwise, if contextSharing is on, we share the first and at least one\n// instance of the context across the window\n// to ensure that if React Query is used across\n// different bundles or microfrontends they will\n// all use the same **instance** of context, regardless\n// of module scoping.\n\nfunction getQueryClientContext(context, contextSharing) {\n if (context) {\n return context;\n }\n\n if (contextSharing && typeof window !== 'undefined') {\n if (!window.ReactQueryClientContext) {\n window.ReactQueryClientContext = defaultContext;\n }\n\n return window.ReactQueryClientContext;\n }\n\n return defaultContext;\n}\n\nconst useQueryClient = ({\n context\n} = {}) => {\n const queryClient = React.useContext(getQueryClientContext(context, React.useContext(QueryClientSharingContext)));\n\n if (!queryClient) {\n throw new Error('No QueryClient set, use QueryClientProvider to set one');\n }\n\n return queryClient;\n};\nconst QueryClientProvider = ({\n client,\n children,\n context,\n contextSharing = false\n}) => {\n React.useEffect(() => {\n client.mount();\n return () => {\n client.unmount();\n };\n }, [client]);\n\n if (process.env.NODE_ENV !== 'production' && contextSharing) {\n client.getLogger().error(\"The contextSharing option has been deprecated and will be removed in the next major version\");\n }\n\n const Context = getQueryClientContext(context, contextSharing);\n return /*#__PURE__*/React.createElement(QueryClientSharingContext.Provider, {\n value: !context && contextSharing\n }, /*#__PURE__*/React.createElement(Context.Provider, {\n value: client\n }, children));\n};\n\nexport { QueryClientProvider, defaultContext, useQueryClient };\n//# sourceMappingURL=QueryClientProvider.mjs.map\n","'use client';\nimport * as React from 'react';\n\nconst IsRestoringContext = /*#__PURE__*/React.createContext(false);\nconst useIsRestoring = () => React.useContext(IsRestoringContext);\nconst IsRestoringProvider = IsRestoringContext.Provider;\n\nexport { IsRestoringProvider, useIsRestoring };\n//# sourceMappingURL=isRestoring.mjs.map\n","'use client';\nimport * as React from 'react';\n\nfunction createValue() {\n let isReset = false;\n return {\n clearReset: () => {\n isReset = false;\n },\n reset: () => {\n isReset = true;\n },\n isReset: () => {\n return isReset;\n }\n };\n}\n\nconst QueryErrorResetBoundaryContext = /*#__PURE__*/React.createContext(createValue()); // HOOK\n\nconst useQueryErrorResetBoundary = () => React.useContext(QueryErrorResetBoundaryContext); // COMPONENT\n\nconst QueryErrorResetBoundary = ({\n children\n}) => {\n const [value] = React.useState(() => createValue());\n return /*#__PURE__*/React.createElement(QueryErrorResetBoundaryContext.Provider, {\n value: value\n }, typeof children === 'function' ? children(value) : children);\n};\n\nexport { QueryErrorResetBoundary, useQueryErrorResetBoundary };\n//# sourceMappingURL=QueryErrorResetBoundary.mjs.map\n","import { shallowEqualObjects, noop, isServer, isValidTimeout, timeUntilStale, replaceData } from './utils.mjs';\nimport { notifyManager } from './notifyManager.mjs';\nimport { focusManager } from './focusManager.mjs';\nimport { Subscribable } from './subscribable.mjs';\nimport { canFetch, isCancelledError } from './retryer.mjs';\n\nclass QueryObserver extends Subscribable {\n constructor(client, options) {\n super();\n this.client = client;\n this.options = options;\n this.trackedProps = new Set();\n this.selectError = null;\n this.bindMethods();\n this.setOptions(options);\n }\n\n bindMethods() {\n this.remove = this.remove.bind(this);\n this.refetch = this.refetch.bind(this);\n }\n\n onSubscribe() {\n if (this.listeners.size === 1) {\n this.currentQuery.addObserver(this);\n\n if (shouldFetchOnMount(this.currentQuery, this.options)) {\n this.executeFetch();\n }\n\n this.updateTimers();\n }\n }\n\n onUnsubscribe() {\n if (!this.hasListeners()) {\n this.destroy();\n }\n }\n\n shouldFetchOnReconnect() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnReconnect);\n }\n\n shouldFetchOnWindowFocus() {\n return shouldFetchOn(this.currentQuery, this.options, this.options.refetchOnWindowFocus);\n }\n\n destroy() {\n this.listeners = new Set();\n this.clearStaleTimeout();\n this.clearRefetchInterval();\n this.currentQuery.removeObserver(this);\n }\n\n setOptions(options, notifyOptions) {\n const prevOptions = this.options;\n const prevQuery = this.currentQuery;\n this.options = this.client.defaultQueryOptions(options);\n\n if (process.env.NODE_ENV !== 'production' && typeof (options == null ? void 0 : options.isDataEqual) !== 'undefined') {\n this.client.getLogger().error(\"The isDataEqual option has been deprecated and will be removed in the next major version. You can achieve the same functionality by passing a function as the structuralSharing option\");\n }\n\n if (!shallowEqualObjects(prevOptions, this.options)) {\n this.client.getQueryCache().notify({\n type: 'observerOptionsUpdated',\n query: this.currentQuery,\n observer: this\n });\n }\n\n if (typeof this.options.enabled !== 'undefined' && typeof this.options.enabled !== 'boolean') {\n throw new Error('Expected enabled to be a boolean');\n } // Keep previous query key if the user does not supply one\n\n\n if (!this.options.queryKey) {\n this.options.queryKey = prevOptions.queryKey;\n }\n\n this.updateQuery();\n const mounted = this.hasListeners(); // Fetch if there are subscribers\n\n if (mounted && shouldFetchOptionally(this.currentQuery, prevQuery, this.options, prevOptions)) {\n this.executeFetch();\n } // Update result\n\n\n this.updateResult(notifyOptions); // Update stale interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || this.options.staleTime !== prevOptions.staleTime)) {\n this.updateStaleTimeout();\n }\n\n const nextRefetchInterval = this.computeRefetchInterval(); // Update refetch interval if needed\n\n if (mounted && (this.currentQuery !== prevQuery || this.options.enabled !== prevOptions.enabled || nextRefetchInterval !== this.currentRefetchInterval)) {\n this.updateRefetchInterval(nextRefetchInterval);\n }\n }\n\n getOptimisticResult(options) {\n const query = this.client.getQueryCache().build(this.client, options);\n const result = this.createResult(query, options);\n\n if (shouldAssignObserverCurrentProperties(this, result, options)) {\n // this assigns the optimistic result to the current Observer\n // because if the query function changes, useQuery will be performing\n // an effect where it would fetch again.\n // When the fetch finishes, we perform a deep data cloning in order\n // to reuse objects references. This deep data clone is performed against\n // the `observer.currentResult.data` property\n // When QueryKey changes, we refresh the query and get new `optimistic`\n // result, while we leave the `observer.currentResult`, so when new data\n // arrives, it finds the old `observer.currentResult` which is related\n // to the old QueryKey. Which means that currentResult and selectData are\n // out of sync already.\n // To solve this, we move the cursor of the currentResult everytime\n // an observer reads an optimistic value.\n // When keeping the previous data, the result doesn't change until new\n // data arrives.\n this.currentResult = result;\n this.currentResultOptions = this.options;\n this.currentResultState = this.currentQuery.state;\n }\n\n return result;\n }\n\n getCurrentResult() {\n return this.currentResult;\n }\n\n trackResult(result) {\n const trackedResult = {};\n Object.keys(result).forEach(key => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n this.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n }\n\n getCurrentQuery() {\n return this.currentQuery;\n }\n\n remove() {\n this.client.getQueryCache().remove(this.currentQuery);\n }\n\n refetch({\n refetchPage,\n ...options\n } = {}) {\n return this.fetch({ ...options,\n meta: {\n refetchPage\n }\n });\n }\n\n fetchOptimistic(options) {\n const defaultedOptions = this.client.defaultQueryOptions(options);\n const query = this.client.getQueryCache().build(this.client, defaultedOptions);\n query.isFetchingOptimistic = true;\n return query.fetch().then(() => this.createResult(query, defaultedOptions));\n }\n\n fetch(fetchOptions) {\n var _fetchOptions$cancelR;\n\n return this.executeFetch({ ...fetchOptions,\n cancelRefetch: (_fetchOptions$cancelR = fetchOptions.cancelRefetch) != null ? _fetchOptions$cancelR : true\n }).then(() => {\n this.updateResult();\n return this.currentResult;\n });\n }\n\n executeFetch(fetchOptions) {\n // Make sure we reference the latest query as the current one might have been removed\n this.updateQuery(); // Fetch\n\n let promise = this.currentQuery.fetch(this.options, fetchOptions);\n\n if (!(fetchOptions != null && fetchOptions.throwOnError)) {\n promise = promise.catch(noop);\n }\n\n return promise;\n }\n\n updateStaleTimeout() {\n this.clearStaleTimeout();\n\n if (isServer || this.currentResult.isStale || !isValidTimeout(this.options.staleTime)) {\n return;\n }\n\n const time = timeUntilStale(this.currentResult.dataUpdatedAt, this.options.staleTime); // The timeout is sometimes triggered 1 ms before the stale time expiration.\n // To mitigate this issue we always add 1 ms to the timeout.\n\n const timeout = time + 1;\n this.staleTimeoutId = setTimeout(() => {\n if (!this.currentResult.isStale) {\n this.updateResult();\n }\n }, timeout);\n }\n\n computeRefetchInterval() {\n var _this$options$refetch;\n\n return typeof this.options.refetchInterval === 'function' ? this.options.refetchInterval(this.currentResult.data, this.currentQuery) : (_this$options$refetch = this.options.refetchInterval) != null ? _this$options$refetch : false;\n }\n\n updateRefetchInterval(nextInterval) {\n this.clearRefetchInterval();\n this.currentRefetchInterval = nextInterval;\n\n if (isServer || this.options.enabled === false || !isValidTimeout(this.currentRefetchInterval) || this.currentRefetchInterval === 0) {\n return;\n }\n\n this.refetchIntervalId = setInterval(() => {\n if (this.options.refetchIntervalInBackground || focusManager.isFocused()) {\n this.executeFetch();\n }\n }, this.currentRefetchInterval);\n }\n\n updateTimers() {\n this.updateStaleTimeout();\n this.updateRefetchInterval(this.computeRefetchInterval());\n }\n\n clearStaleTimeout() {\n if (this.staleTimeoutId) {\n clearTimeout(this.staleTimeoutId);\n this.staleTimeoutId = undefined;\n }\n }\n\n clearRefetchInterval() {\n if (this.refetchIntervalId) {\n clearInterval(this.refetchIntervalId);\n this.refetchIntervalId = undefined;\n }\n }\n\n createResult(query, options) {\n const prevQuery = this.currentQuery;\n const prevOptions = this.options;\n const prevResult = this.currentResult;\n const prevResultState = this.currentResultState;\n const prevResultOptions = this.currentResultOptions;\n const queryChange = query !== prevQuery;\n const queryInitialState = queryChange ? query.state : this.currentQueryInitialState;\n const prevQueryResult = queryChange ? this.currentResult : this.previousQueryResult;\n const {\n state\n } = query;\n let {\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n fetchStatus,\n status\n } = state;\n let isPreviousData = false;\n let isPlaceholderData = false;\n let data; // Optimistically set result in fetching state if needed\n\n if (options._optimisticResults) {\n const mounted = this.hasListeners();\n const fetchOnMount = !mounted && shouldFetchOnMount(query, options);\n const fetchOptionally = mounted && shouldFetchOptionally(query, prevQuery, options, prevOptions);\n\n if (fetchOnMount || fetchOptionally) {\n fetchStatus = canFetch(query.options.networkMode) ? 'fetching' : 'paused';\n\n if (!dataUpdatedAt) {\n status = 'loading';\n }\n }\n\n if (options._optimisticResults === 'isRestoring') {\n fetchStatus = 'idle';\n }\n } // Keep previous data if needed\n\n\n if (options.keepPreviousData && !state.dataUpdatedAt && prevQueryResult != null && prevQueryResult.isSuccess && status !== 'error') {\n data = prevQueryResult.data;\n dataUpdatedAt = prevQueryResult.dataUpdatedAt;\n status = prevQueryResult.status;\n isPreviousData = true;\n } // Select data if needed\n else if (options.select && typeof state.data !== 'undefined') {\n // Memoize select result\n if (prevResult && state.data === (prevResultState == null ? void 0 : prevResultState.data) && options.select === this.selectFn) {\n data = this.selectResult;\n } else {\n try {\n this.selectFn = options.select;\n data = options.select(state.data);\n data = replaceData(prevResult == null ? void 0 : prevResult.data, data, options);\n this.selectResult = data;\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n } // Use query data\n else {\n data = state.data;\n } // Show placeholder data if needed\n\n\n if (typeof options.placeholderData !== 'undefined' && typeof data === 'undefined' && status === 'loading') {\n let placeholderData; // Memoize placeholder data\n\n if (prevResult != null && prevResult.isPlaceholderData && options.placeholderData === (prevResultOptions == null ? void 0 : prevResultOptions.placeholderData)) {\n placeholderData = prevResult.data;\n } else {\n placeholderData = typeof options.placeholderData === 'function' ? options.placeholderData() : options.placeholderData;\n\n if (options.select && typeof placeholderData !== 'undefined') {\n try {\n placeholderData = options.select(placeholderData);\n this.selectError = null;\n } catch (selectError) {\n if (process.env.NODE_ENV !== 'production') {\n this.client.getLogger().error(selectError);\n }\n\n this.selectError = selectError;\n }\n }\n }\n\n if (typeof placeholderData !== 'undefined') {\n status = 'success';\n data = replaceData(prevResult == null ? void 0 : prevResult.data, placeholderData, options);\n isPlaceholderData = true;\n }\n }\n\n if (this.selectError) {\n error = this.selectError;\n data = this.selectResult;\n errorUpdatedAt = Date.now();\n status = 'error';\n }\n\n const isFetching = fetchStatus === 'fetching';\n const isLoading = status === 'loading';\n const isError = status === 'error';\n const result = {\n status,\n fetchStatus,\n isLoading,\n isSuccess: status === 'success',\n isError,\n isInitialLoading: isLoading && isFetching,\n data,\n dataUpdatedAt,\n error,\n errorUpdatedAt,\n failureCount: state.fetchFailureCount,\n failureReason: state.fetchFailureReason,\n errorUpdateCount: state.errorUpdateCount,\n isFetched: state.dataUpdateCount > 0 || state.errorUpdateCount > 0,\n isFetchedAfterMount: state.dataUpdateCount > queryInitialState.dataUpdateCount || state.errorUpdateCount > queryInitialState.errorUpdateCount,\n isFetching,\n isRefetching: isFetching && !isLoading,\n isLoadingError: isError && state.dataUpdatedAt === 0,\n isPaused: fetchStatus === 'paused',\n isPlaceholderData,\n isPreviousData,\n isRefetchError: isError && state.dataUpdatedAt !== 0,\n isStale: isStale(query, options),\n refetch: this.refetch,\n remove: this.remove\n };\n return result;\n }\n\n updateResult(notifyOptions) {\n const prevResult = this.currentResult;\n const nextResult = this.createResult(this.currentQuery, this.options);\n this.currentResultState = this.currentQuery.state;\n this.currentResultOptions = this.options; // Only notify and update result if something has changed\n\n if (shallowEqualObjects(nextResult, prevResult)) {\n return;\n }\n\n this.currentResult = nextResult; // Determine which callbacks to trigger\n\n const defaultNotifyOptions = {\n cache: true\n };\n\n const shouldNotifyListeners = () => {\n if (!prevResult) {\n return true;\n }\n\n const {\n notifyOnChangeProps\n } = this.options;\n const notifyOnChangePropsValue = typeof notifyOnChangeProps === 'function' ? notifyOnChangeProps() : notifyOnChangeProps;\n\n if (notifyOnChangePropsValue === 'all' || !notifyOnChangePropsValue && !this.trackedProps.size) {\n return true;\n }\n\n const includedProps = new Set(notifyOnChangePropsValue != null ? notifyOnChangePropsValue : this.trackedProps);\n\n if (this.options.useErrorBoundary) {\n includedProps.add('error');\n }\n\n return Object.keys(this.currentResult).some(key => {\n const typedKey = key;\n const changed = this.currentResult[typedKey] !== prevResult[typedKey];\n return changed && includedProps.has(typedKey);\n });\n };\n\n if ((notifyOptions == null ? void 0 : notifyOptions.listeners) !== false && shouldNotifyListeners()) {\n defaultNotifyOptions.listeners = true;\n }\n\n this.notify({ ...defaultNotifyOptions,\n ...notifyOptions\n });\n }\n\n updateQuery() {\n const query = this.client.getQueryCache().build(this.client, this.options);\n\n if (query === this.currentQuery) {\n return;\n }\n\n const prevQuery = this.currentQuery;\n this.currentQuery = query;\n this.currentQueryInitialState = query.state;\n this.previousQueryResult = this.currentResult;\n\n if (this.hasListeners()) {\n prevQuery == null ? void 0 : prevQuery.removeObserver(this);\n query.addObserver(this);\n }\n }\n\n onQueryUpdate(action) {\n const notifyOptions = {};\n\n if (action.type === 'success') {\n notifyOptions.onSuccess = !action.manual;\n } else if (action.type === 'error' && !isCancelledError(action.error)) {\n notifyOptions.onError = true;\n }\n\n this.updateResult(notifyOptions);\n\n if (this.hasListeners()) {\n this.updateTimers();\n }\n }\n\n notify(notifyOptions) {\n notifyManager.batch(() => {\n // First trigger the configuration callbacks\n if (notifyOptions.onSuccess) {\n var _this$options$onSucce, _this$options, _this$options$onSettl, _this$options2;\n\n (_this$options$onSucce = (_this$options = this.options).onSuccess) == null ? void 0 : _this$options$onSucce.call(_this$options, this.currentResult.data);\n (_this$options$onSettl = (_this$options2 = this.options).onSettled) == null ? void 0 : _this$options$onSettl.call(_this$options2, this.currentResult.data, null);\n } else if (notifyOptions.onError) {\n var _this$options$onError, _this$options3, _this$options$onSettl2, _this$options4;\n\n (_this$options$onError = (_this$options3 = this.options).onError) == null ? void 0 : _this$options$onError.call(_this$options3, this.currentResult.error);\n (_this$options$onSettl2 = (_this$options4 = this.options).onSettled) == null ? void 0 : _this$options$onSettl2.call(_this$options4, undefined, this.currentResult.error);\n } // Then trigger the listeners\n\n\n if (notifyOptions.listeners) {\n this.listeners.forEach(({\n listener\n }) => {\n listener(this.currentResult);\n });\n } // Then the cache listeners\n\n\n if (notifyOptions.cache) {\n this.client.getQueryCache().notify({\n query: this.currentQuery,\n type: 'observerResultsUpdated'\n });\n }\n });\n }\n\n}\n\nfunction shouldLoadOnMount(query, options) {\n return options.enabled !== false && !query.state.dataUpdatedAt && !(query.state.status === 'error' && options.retryOnMount === false);\n}\n\nfunction shouldFetchOnMount(query, options) {\n return shouldLoadOnMount(query, options) || query.state.dataUpdatedAt > 0 && shouldFetchOn(query, options, options.refetchOnMount);\n}\n\nfunction shouldFetchOn(query, options, field) {\n if (options.enabled !== false) {\n const value = typeof field === 'function' ? field(query) : field;\n return value === 'always' || value !== false && isStale(query, options);\n }\n\n return false;\n}\n\nfunction shouldFetchOptionally(query, prevQuery, options, prevOptions) {\n return options.enabled !== false && (query !== prevQuery || prevOptions.enabled === false) && (!options.suspense || query.state.status !== 'error') && isStale(query, options);\n}\n\nfunction isStale(query, options) {\n return query.isStaleByTime(options.staleTime);\n} // this function would decide if we will update the observer's 'current'\n// properties after an optimistic reading via getOptimisticResult\n\n\nfunction shouldAssignObserverCurrentProperties(observer, optimisticResult, options) {\n // it is important to keep this condition like this for three reasons:\n // 1. It will get removed in the v5\n // 2. it reads: don't update the properties if we want to keep the previous\n // data.\n // 3. The opposite condition (!options.keepPreviousData) would fallthrough\n // and will result in a bad decision\n if (options.keepPreviousData) {\n return false;\n } // this means we want to put some placeholder data when pending and queryKey\n // changed.\n\n\n if (options.placeholderData !== undefined) {\n // re-assign properties only if current data is placeholder data\n // which means that data did not arrive yet, so, if there is some cached data\n // we need to \"prepare\" to receive it\n return optimisticResult.isPlaceholderData;\n } // if the newly created result isn't what the observer is holding as current,\n // then we'll need to update the properties as well\n\n\n if (!shallowEqualObjects(observer.getCurrentResult(), optimisticResult)) {\n return true;\n } // basically, just keep previous properties if nothing changed\n\n\n return false;\n}\n\nexport { QueryObserver };\n//# sourceMappingURL=queryObserver.mjs.map\n","\"use client\";\n\n// src/config.ts\nimport { createSyncStoragePersister } from \"@tanstack/query-sync-storage-persister\";\nimport { QueryClient } from \"@tanstack/react-query\";\nimport { persistQueryClient } from \"@tanstack/react-query-persist-client\";\nimport {\n createConfig as createCoreConfig,\n createStorage,\n noopStorage\n} from \"@wagmi/core\";\nfunction createConfig({\n queryClient = new QueryClient({\n defaultOptions: {\n queries: {\n cacheTime: 1e3 * 60 * 60 * 24,\n networkMode: \"offlineFirst\",\n refetchOnWindowFocus: false,\n retry: 0\n },\n mutations: {\n networkMode: \"offlineFirst\"\n }\n }\n }),\n storage = createStorage({\n storage: typeof window !== \"undefined\" && window.localStorage ? window.localStorage : noopStorage\n }),\n persister = typeof window !== \"undefined\" ? createSyncStoragePersister({\n key: \"cache\",\n storage,\n serialize: (x) => x,\n deserialize: (x) => x\n }) : void 0,\n ...args\n}) {\n const config = createCoreConfig({\n ...args,\n storage\n });\n if (persister)\n persistQueryClient({\n queryClient,\n persister,\n dehydrateOptions: {\n shouldDehydrateQuery: (query) => query.cacheTime !== 0 && query.queryKey[0].persist !== false\n }\n });\n return Object.assign(config, { queryClient });\n}\n\n// src/context.ts\nimport { QueryClientProvider } from \"@tanstack/react-query\";\nimport * as React from \"react\";\nvar Context = React.createContext(void 0);\nvar queryClientContext = React.createContext(\n void 0\n);\nfunction WagmiConfig({\n children,\n config\n}) {\n return React.createElement(Context.Provider, {\n children: React.createElement(QueryClientProvider, {\n children,\n client: config.queryClient,\n context: queryClientContext\n }),\n value: config\n });\n}\nfunction useConfig() {\n const config = React.useContext(Context);\n if (!config)\n throw new Error(\n [\n \"`useConfig` must be used within `WagmiConfig`.\\n\",\n \"Read more: https://wagmi.sh/react/WagmiConfig\"\n ].join(\"\\n\")\n );\n return config;\n}\n\n// src/hooks/accounts/useAccount.ts\nimport { getAccount, watchAccount } from \"@wagmi/core\";\nimport * as React9 from \"react\";\n\n// src/hooks/utils/query/useBaseQuery.ts\nimport {\n notifyManager,\n useIsRestoring,\n useQueryClient,\n useQueryErrorResetBoundary\n} from \"@tanstack/react-query\";\nimport * as React2 from \"react\";\n\n// src/hooks/utils/useSyncExternalStore.ts\nimport * as pkg from \"use-sync-external-store/shim/index.js\";\nvar useSyncExternalStore2 = pkg.useSyncExternalStore;\n\n// src/hooks/utils/query/utils.ts\nfunction isQueryKey(value) {\n return Array.isArray(value);\n}\nfunction isPlainObject(o) {\n if (!hasObjectPrototype(o)) {\n return false;\n }\n const ctor = o.constructor;\n if (typeof ctor === \"undefined\") {\n return true;\n }\n const prot = ctor.prototype;\n if (!hasObjectPrototype(prot)) {\n return false;\n }\n if (!prot.hasOwnProperty(\"isPrototypeOf\")) {\n return false;\n }\n return true;\n}\nfunction hasObjectPrototype(o) {\n return Object.prototype.toString.call(o) === \"[object Object]\";\n}\nfunction parseQueryArgs(arg1, arg2, arg3) {\n if (!isQueryKey(arg1)) {\n return arg1;\n }\n if (typeof arg2 === \"function\") {\n return { ...arg3, queryKey: arg1, queryFn: arg2 };\n }\n return { ...arg2, queryKey: arg1 };\n}\nfunction queryKeyHashFn(queryKey17) {\n return JSON.stringify(\n queryKey17,\n (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {\n result[key] = val[key];\n return result;\n }, {}) : typeof val === \"bigint\" ? val.toString() : val\n );\n}\nfunction shouldThrowError(_useErrorBoundary, params) {\n if (typeof _useErrorBoundary === \"function\") {\n return _useErrorBoundary(...params);\n }\n return !!_useErrorBoundary;\n}\nfunction trackResult(result, observer) {\n const trackedResult = {};\n Object.keys(result).forEach((key) => {\n Object.defineProperty(trackedResult, key, {\n configurable: false,\n enumerable: true,\n get: () => {\n observer.trackedProps.add(key);\n return result[key];\n }\n });\n });\n return trackedResult;\n}\n\n// src/hooks/utils/query/useBaseQuery.ts\nfunction useBaseQuery(options, Observer) {\n const queryClient = useQueryClient({ context: options.context });\n const isRestoring = useIsRestoring();\n const errorResetBoundary = useQueryErrorResetBoundary();\n const defaultedOptions = queryClient.defaultQueryOptions({\n ...options,\n queryKeyHashFn\n });\n defaultedOptions._optimisticResults = isRestoring ? \"isRestoring\" : \"optimistic\";\n if (defaultedOptions.onError) {\n defaultedOptions.onError = notifyManager.batchCalls(\n defaultedOptions.onError\n );\n }\n if (defaultedOptions.onSuccess) {\n defaultedOptions.onSuccess = notifyManager.batchCalls(\n defaultedOptions.onSuccess\n );\n }\n if (defaultedOptions.onSettled) {\n defaultedOptions.onSettled = notifyManager.batchCalls(\n defaultedOptions.onSettled\n );\n }\n if (defaultedOptions.suspense) {\n if (typeof defaultedOptions.staleTime !== \"number\") {\n defaultedOptions.staleTime = 1e3;\n }\n }\n if (defaultedOptions.suspense || defaultedOptions.useErrorBoundary) {\n if (!errorResetBoundary.isReset()) {\n defaultedOptions.retryOnMount = false;\n }\n }\n const [observer] = React2.useState(\n () => new Observer(\n queryClient,\n defaultedOptions\n )\n );\n const result = observer.getOptimisticResult(defaultedOptions);\n useSyncExternalStore2(\n React2.useCallback(\n (onStoreChange) => isRestoring ? () => void 0 : observer.subscribe(notifyManager.batchCalls(onStoreChange)),\n [observer, isRestoring]\n ),\n () => observer.getCurrentResult(),\n () => observer.getCurrentResult()\n );\n React2.useEffect(() => {\n errorResetBoundary.clearReset();\n }, [errorResetBoundary]);\n React2.useEffect(() => {\n observer.setOptions(defaultedOptions, { listeners: false });\n }, [defaultedOptions, observer]);\n if (defaultedOptions.suspense && result.isLoading && result.isFetching && !isRestoring) {\n throw observer.fetchOptimistic(defaultedOptions).then(({ data }) => {\n defaultedOptions.onSuccess?.(data);\n defaultedOptions.onSettled?.(data, null);\n }).catch((error) => {\n errorResetBoundary.clearReset();\n defaultedOptions.onError?.(error);\n defaultedOptions.onSettled?.(void 0, error);\n });\n }\n if (result.isError && !errorResetBoundary.isReset() && !result.isFetching && shouldThrowError(defaultedOptions.useErrorBoundary, [\n result.error,\n observer.getCurrentQuery()\n ])) {\n throw result.error;\n }\n const status = result.status === \"loading\" && result.fetchStatus === \"idle\" ? \"idle\" : result.status;\n const isIdle = status === \"idle\";\n const isLoading = status === \"loading\" && result.fetchStatus === \"fetching\";\n return {\n ...result,\n defaultedOptions,\n isIdle,\n isLoading,\n observer,\n status\n };\n}\n\n// src/hooks/utils/query/useInfiniteQuery.ts\nimport { InfiniteQueryObserver } from \"@tanstack/react-query\";\nfunction useInfiniteQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const baseQuery = useBaseQuery(\n { context: queryClientContext, ...parsedOptions },\n InfiniteQueryObserver\n );\n const result = {\n data: baseQuery.data,\n error: baseQuery.error,\n fetchNextPage: baseQuery.fetchNextPage,\n fetchStatus: baseQuery.fetchStatus,\n hasNextPage: baseQuery.hasNextPage,\n isError: baseQuery.isError,\n isFetched: baseQuery.isFetched,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isFetching: baseQuery.isFetching,\n isFetchingNextPage: baseQuery.isFetchingNextPage,\n isIdle: baseQuery.isIdle,\n isLoading: baseQuery.isLoading,\n isRefetching: baseQuery.isRefetching,\n isSuccess: baseQuery.isSuccess,\n refetch: baseQuery.refetch,\n status: baseQuery.status,\n internal: {\n dataUpdatedAt: baseQuery.dataUpdatedAt,\n errorUpdatedAt: baseQuery.errorUpdatedAt,\n failureCount: baseQuery.failureCount,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isLoadingError: baseQuery.isLoadingError,\n isPaused: baseQuery.isPaused,\n isPlaceholderData: baseQuery.isPlaceholderData,\n isPreviousData: baseQuery.isPreviousData,\n isRefetchError: baseQuery.isRefetchError,\n isStale: baseQuery.isStale,\n remove: baseQuery.remove\n }\n };\n return !baseQuery.defaultedOptions.notifyOnChangeProps ? trackResult(result, baseQuery.observer) : result;\n}\n\n// src/hooks/utils/query/useMutation.ts\nimport {\n parseMutationArgs,\n useMutation as useMutation_\n} from \"@tanstack/react-query\";\nfunction useMutation(arg1, arg2, arg3) {\n const options = parseMutationArgs(arg1, arg2, arg3);\n return useMutation_({ context: queryClientContext, ...options });\n}\n\n// src/hooks/utils/query/useQuery.ts\nimport { QueryObserver } from \"@tanstack/react-query\";\nfunction useQuery(arg1, arg2, arg3) {\n const parsedOptions = parseQueryArgs(arg1, arg2, arg3);\n const baseQuery = useBaseQuery({ context: queryClientContext, ...parsedOptions }, QueryObserver);\n const result = {\n data: baseQuery.data,\n error: baseQuery.error,\n fetchStatus: baseQuery.fetchStatus,\n isError: baseQuery.isError,\n isFetched: baseQuery.isFetched,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isFetching: baseQuery.isFetching,\n isIdle: baseQuery.isIdle,\n isLoading: baseQuery.isLoading,\n isRefetching: baseQuery.isRefetching,\n isSuccess: baseQuery.isSuccess,\n refetch: baseQuery.refetch,\n status: baseQuery.status,\n internal: {\n dataUpdatedAt: baseQuery.dataUpdatedAt,\n errorUpdatedAt: baseQuery.errorUpdatedAt,\n failureCount: baseQuery.failureCount,\n isFetchedAfterMount: baseQuery.isFetchedAfterMount,\n isLoadingError: baseQuery.isLoadingError,\n isPaused: baseQuery.isPaused,\n isPlaceholderData: baseQuery.isPlaceholderData,\n isPreviousData: baseQuery.isPreviousData,\n isRefetchError: baseQuery.isRefetchError,\n isStale: baseQuery.isStale,\n remove: baseQuery.remove\n }\n };\n return !baseQuery.defaultedOptions.notifyOnChangeProps ? trackResult(result, baseQuery.observer) : result;\n}\n\n// src/hooks/utils/query/useQueryClient.ts\nimport { useQueryClient as useQueryClient_ } from \"@tanstack/react-query\";\nvar useQueryClient2 = () => useQueryClient_({ context: queryClientContext });\n\n// src/hooks/viem/usePublicClient.ts\nimport { getPublicClient, watchPublicClient } from \"@wagmi/core\";\nimport { useSyncExternalStoreWithSelector } from \"use-sync-external-store/shim/with-selector.js\";\nfunction usePublicClient({\n chainId\n} = {}) {\n return useSyncExternalStoreWithSelector(\n (cb) => watchPublicClient({ chainId }, cb),\n () => getPublicClient({ chainId }),\n () => getPublicClient({ chainId }),\n (x) => x,\n (a, b) => a.uid === b.uid\n );\n}\n\n// src/hooks/viem/useWalletClient.ts\nimport { getWalletClient, watchWalletClient } from \"@wagmi/core\";\nimport * as React3 from \"react\";\nfunction queryKey({ chainId }) {\n return [{ entity: \"walletClient\", chainId, persist: false }];\n}\nfunction queryFn({\n queryKey: [{ chainId }]\n}) {\n return getWalletClient({ chainId });\n}\nfunction useWalletClient({\n chainId: chainId_,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const { connector } = useAccount();\n const chainId = useChainId({ chainId: chainId_ });\n const walletClientQuery = useQuery(queryKey({ chainId }), queryFn, {\n cacheTime: 0,\n enabled: Boolean(connector),\n staleTime: Infinity,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n const queryClient = useQueryClient2();\n React3.useEffect(() => {\n const unwatch = watchWalletClient({ chainId }, (walletClient) => {\n if (walletClient)\n queryClient.invalidateQueries(queryKey({ chainId }));\n else\n queryClient.removeQueries(queryKey({ chainId }));\n });\n return unwatch;\n }, [queryClient, chainId]);\n return walletClientQuery;\n}\n\n// src/hooks/viem/useWebSocketPublicClient.ts\nimport {\n getWebSocketPublicClient,\n watchWebSocketPublicClient\n} from \"@wagmi/core\";\nimport { useSyncExternalStoreWithSelector as useSyncExternalStoreWithSelector2 } from \"use-sync-external-store/shim/with-selector.js\";\nfunction useWebSocketPublicClient({ chainId } = {}) {\n return useSyncExternalStoreWithSelector2(\n (cb) => watchWebSocketPublicClient({ chainId }, cb),\n () => getWebSocketPublicClient({ chainId }),\n () => getWebSocketPublicClient({ chainId }),\n (x) => x,\n (a, b) => a?.uid === b?.uid\n );\n}\n\n// src/hooks/utils/useChainId.ts\nfunction useChainId({ chainId } = {}) {\n const publicClient = usePublicClient({ chainId });\n return publicClient.chain.id;\n}\n\n// src/hooks/utils/useForceUpdate.ts\nimport * as React4 from \"react\";\nfunction useForceUpdate() {\n const [, forceUpdate] = React4.useReducer((x) => x + 1, 0);\n return forceUpdate;\n}\n\n// src/hooks/utils/useInvalidateOnBlock.ts\nimport * as React7 from \"react\";\n\n// src/hooks/network-status/useBlockNumber.ts\nimport { fetchBlockNumber } from \"@wagmi/core\";\nimport * as React5 from \"react\";\nfunction queryKey2({ chainId, scopeKey }) {\n return [{ entity: \"blockNumber\", chainId, scopeKey }];\n}\nfunction queryFn2({\n queryKey: [{ chainId }]\n}) {\n return fetchBlockNumber({ chainId });\n}\nfunction useBlockNumber({\n cacheTime = 0,\n chainId: chainId_,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n watch = false,\n onBlock,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n const queryClient = useQueryClient2();\n React5.useEffect(() => {\n if (!enabled)\n return;\n if (!watch && !onBlock)\n return;\n const publicClient_ = webSocketPublicClient ?? publicClient;\n const unwatch = publicClient_.watchBlockNumber({\n onBlockNumber: (blockNumber) => {\n if (watch)\n queryClient.setQueryData(queryKey2({ chainId, scopeKey }), blockNumber);\n if (onBlock)\n onBlock(blockNumber);\n },\n emitOnBegin: true\n });\n return unwatch;\n }, [\n chainId,\n scopeKey,\n onBlock,\n publicClient,\n queryClient,\n watch,\n webSocketPublicClient,\n enabled\n ]);\n return useQuery(queryKey2({ scopeKey, chainId }), queryFn2, {\n cacheTime,\n enabled,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/network-status/useFeeData.ts\nimport { fetchFeeData } from \"@wagmi/core\";\nimport * as React6 from \"react\";\nfunction queryKey3({\n chainId,\n formatUnits,\n scopeKey\n}) {\n return [{ entity: \"feeData\", chainId, formatUnits, scopeKey }];\n}\nfunction queryFn3({\n queryKey: [{ chainId, formatUnits }]\n}) {\n return fetchFeeData({ chainId, formatUnits });\n}\nfunction useFeeData({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n formatUnits = \"gwei\",\n scopeKey,\n staleTime,\n suspense,\n watch,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const queryKey_ = React6.useMemo(\n () => queryKey3({\n chainId,\n formatUnits,\n scopeKey\n }),\n [chainId, formatUnits, scopeKey]\n );\n const feeDataQuery = useQuery(queryKey_, queryFn3, {\n cacheTime,\n enabled,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch),\n queryKey: queryKey_\n });\n return feeDataQuery;\n}\n\n// src/hooks/utils/useInvalidateOnBlock.ts\nfunction useInvalidateOnBlock({\n chainId,\n enabled,\n queryKey: queryKey17\n}) {\n const queryClient = useQueryClient2();\n const onBlock = React7.useCallback(\n () => queryClient.invalidateQueries({ queryKey: queryKey17 }, { cancelRefetch: false }),\n [queryClient, queryKey17]\n );\n useBlockNumber({\n chainId,\n enabled,\n onBlock: enabled ? onBlock : void 0,\n scopeKey: enabled ? void 0 : \"idle\"\n });\n}\n\n// src/hooks/utils/useSyncExternalStoreWithTracked.ts\nimport { deepEqual } from \"@wagmi/core\";\nimport * as React8 from \"react\";\nimport { useSyncExternalStoreWithSelector as useSyncExternalStoreWithSelector3 } from \"use-sync-external-store/shim/with-selector.js\";\nvar isPlainObject2 = (obj) => typeof obj === \"object\" && !Array.isArray(obj);\nfunction useSyncExternalStoreWithTracked(subscribe, getSnapshot, getServerSnapshot = getSnapshot, isEqual = deepEqual) {\n const trackedKeys = React8.useRef([]);\n const result = useSyncExternalStoreWithSelector3(\n subscribe,\n getSnapshot,\n getServerSnapshot,\n (x) => x,\n (a, b) => {\n if (isPlainObject2(a) && isPlainObject2(b) && trackedKeys.current.length) {\n for (const key of trackedKeys.current) {\n const equal = isEqual(\n a[key],\n b[key]\n );\n if (!equal)\n return false;\n }\n return true;\n }\n return isEqual(a, b);\n }\n );\n if (isPlainObject2(result)) {\n const trackedResult = { ...result };\n Object.defineProperties(\n trackedResult,\n Object.entries(trackedResult).reduce(\n (res, [key, value]) => {\n return {\n ...res,\n [key]: {\n configurable: false,\n enumerable: true,\n get: () => {\n if (!trackedKeys.current.includes(key)) {\n trackedKeys.current.push(key);\n }\n return value;\n }\n }\n };\n },\n {}\n )\n );\n return trackedResult;\n }\n return result;\n}\n\n// src/hooks/accounts/useAccount.ts\nfunction useAccount({ onConnect, onDisconnect } = {}) {\n const config = useConfig();\n const watchAccount_ = React9.useCallback(\n (callback) => watchAccount(callback),\n [config]\n );\n const account = useSyncExternalStoreWithTracked(watchAccount_, getAccount);\n const previousAccountRef = React9.useRef();\n const previousAccount = previousAccountRef.current;\n React9.useEffect(() => {\n if (previousAccount?.status !== \"connected\" && account.status === \"connected\") {\n onConnect?.({\n address: account.address,\n connector: account.connector,\n isReconnected: previousAccount?.status === \"reconnecting\" || previousAccount?.status === void 0\n });\n }\n if (previousAccount?.status === \"connected\" && account.status === \"disconnected\") {\n onDisconnect?.();\n }\n previousAccountRef.current = account;\n }, [onConnect, onDisconnect, previousAccount, account]);\n return account;\n}\n\n// src/hooks/accounts/useBalance.ts\nimport { fetchBalance } from \"@wagmi/core\";\nimport * as React10 from \"react\";\nfunction queryKey4({\n address,\n chainId,\n formatUnits,\n scopeKey,\n token\n}) {\n return [\n {\n entity: \"balance\",\n address,\n chainId,\n formatUnits,\n scopeKey,\n token\n }\n ];\n}\nfunction queryFn4({\n queryKey: [{ address, chainId, formatUnits, token }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchBalance({ address, chainId, formatUnits, token });\n}\nfunction useBalance({\n address,\n cacheTime,\n chainId: chainId_,\n enabled = true,\n formatUnits,\n scopeKey,\n staleTime,\n suspense,\n token,\n watch,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const queryKey_ = React10.useMemo(\n () => queryKey4({ address, chainId, formatUnits, scopeKey, token }),\n [address, chainId, formatUnits, scopeKey, token]\n );\n const balanceQuery = useQuery(queryKey_, queryFn4, {\n cacheTime,\n enabled: Boolean(enabled && address),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch && address),\n queryKey: queryKey_\n });\n return balanceQuery;\n}\n\n// src/hooks/accounts/useConnect.ts\nimport { connect } from \"@wagmi/core\";\nimport * as React11 from \"react\";\nvar mutationKey = (args) => [{ entity: \"connect\", ...args }];\nvar mutationFn = (args) => {\n const { connector, chainId } = args;\n if (!connector)\n throw new Error(\"connector is required\");\n return connect({ connector, chainId });\n};\nfunction useConnect({\n chainId,\n connector,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const config = useConfig();\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey({ connector, chainId }), mutationFn, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const connect2 = React11.useCallback(\n (args) => {\n return mutate({\n chainId: args?.chainId ?? chainId,\n connector: args?.connector ?? connector\n });\n },\n [chainId, connector, mutate]\n );\n const connectAsync = React11.useCallback(\n (args) => {\n return mutateAsync({\n chainId: args?.chainId ?? chainId,\n connector: args?.connector ?? connector\n });\n },\n [chainId, connector, mutateAsync]\n );\n return {\n connect: connect2,\n connectAsync,\n connectors: config.connectors,\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n pendingConnector: variables?.connector,\n reset,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useDisconnect.ts\nimport { disconnect } from \"@wagmi/core\";\nvar mutationKey2 = [{ entity: \"disconnect\" }];\nvar mutationFn2 = () => disconnect();\nfunction useDisconnect({\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate: disconnect2,\n mutateAsync: disconnectAsync,\n reset,\n status\n } = useMutation(mutationKey2, mutationFn2, {\n ...onError ? {\n onError(error2, _variables, context) {\n onError(error2, context);\n }\n } : {},\n onMutate,\n ...onSettled ? {\n onSettled(_data, error2, _variables, context) {\n onSettled(error2, context);\n }\n } : {},\n ...onSuccess ? {\n onSuccess(_data, _variables, context) {\n onSuccess(context);\n }\n } : {}\n });\n return {\n disconnect: disconnect2,\n disconnectAsync,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n status\n };\n}\n\n// src/hooks/accounts/useNetwork.ts\nimport { getNetwork, watchNetwork } from \"@wagmi/core\";\nimport { useCallback as useCallback5 } from \"react\";\nfunction useNetwork() {\n const config = useConfig();\n const watchNetwork_ = useCallback5(\n (callback) => watchNetwork(callback),\n [config]\n );\n return useSyncExternalStoreWithTracked(watchNetwork_, getNetwork);\n}\n\n// src/hooks/accounts/useSignMessage.ts\nimport { signMessage } from \"@wagmi/core\";\nimport * as React12 from \"react\";\nvar mutationKey3 = (args) => [{ entity: \"signMessage\", ...args }];\nvar mutationFn3 = (args) => {\n const { message } = args;\n if (!message)\n throw new Error(\"message is required\");\n return signMessage({ message });\n};\nfunction useSignMessage({\n message,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey3({ message }), mutationFn3, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const signMessage2 = React12.useCallback(\n (args) => mutate(args || { message }),\n [message, mutate]\n );\n const signMessageAsync = React12.useCallback(\n (args) => mutateAsync(args || { message }),\n [message, mutateAsync]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n signMessage: signMessage2,\n signMessageAsync,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useSignTypedData.ts\nimport { signTypedData } from \"@wagmi/core\";\nimport * as React13 from \"react\";\nfunction mutationKey4({ domain, types, message, primaryType }) {\n return [\n { entity: \"signTypedData\", domain, types, message, primaryType }\n ];\n}\nfunction mutationFn4(args) {\n const { domain, types, primaryType, message } = args;\n if (!domain)\n throw new Error(\"domain is required\");\n if (!types)\n throw new Error(\"types is required\");\n if (!primaryType)\n throw new Error(\"primaryType is required\");\n if (!message)\n throw new Error(\"message is required\");\n return signTypedData({\n domain,\n message,\n primaryType,\n types\n });\n}\nfunction useSignTypedData({\n domain,\n types,\n message,\n primaryType,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey4({\n domain,\n message,\n primaryType,\n types\n }),\n mutationFn4,\n {\n onError,\n onMutate,\n onSettled,\n onSuccess\n }\n );\n const signTypedData2 = React13.useCallback(\n (args) => mutate({\n domain: args?.domain ?? domain,\n types: args?.types ?? types,\n message: args?.message ?? message,\n primaryType: args?.primaryType ?? primaryType\n }),\n [domain, types, primaryType, message, mutate]\n );\n const signTypedDataAsync = React13.useCallback(\n (args) => mutateAsync({\n domain: args?.domain ?? domain,\n types: args?.types ?? types,\n message: args?.message ?? message,\n primaryType: args?.primaryType ?? primaryType\n }),\n [domain, types, primaryType, message, mutateAsync]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n signTypedData: signTypedData2,\n signTypedDataAsync,\n status,\n variables\n };\n}\n\n// src/hooks/accounts/useSwitchNetwork.ts\nimport { switchNetwork } from \"@wagmi/core\";\nimport * as React14 from \"react\";\nvar mutationKey5 = (args) => [{ entity: \"switchNetwork\", ...args }];\nvar mutationFn5 = (args) => {\n const { chainId } = args;\n if (!chainId)\n throw new Error(\"chainId is required\");\n return switchNetwork({ chainId });\n};\nfunction useSwitchNetwork({\n chainId,\n throwForSwitchChainNotSupported,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const config = useConfig();\n const forceUpdate = useForceUpdate();\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(mutationKey5({ chainId }), mutationFn5, {\n onError,\n onMutate,\n onSettled,\n onSuccess\n });\n const switchNetwork_ = React14.useCallback(\n (chainId_) => mutate({ chainId: chainId_ ?? chainId }),\n [chainId, mutate]\n );\n const switchNetworkAsync_ = React14.useCallback(\n (chainId_) => mutateAsync({ chainId: chainId_ ?? chainId }),\n [chainId, mutateAsync]\n );\n React14.useEffect(() => {\n const unwatch = config.subscribe(\n ({ chains, connector }) => ({\n chains,\n connector\n }),\n forceUpdate\n );\n return unwatch;\n }, [config, forceUpdate]);\n let switchNetwork2;\n let switchNetworkAsync;\n const supportsSwitchChain = !!config.connector?.switchChain;\n if (throwForSwitchChainNotSupported || supportsSwitchChain) {\n switchNetwork2 = switchNetwork_;\n switchNetworkAsync = switchNetworkAsync_;\n }\n return {\n chains: config.chains ?? [],\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n pendingChainId: variables?.chainId,\n reset,\n status,\n switchNetwork: switchNetwork2,\n switchNetworkAsync,\n variables\n };\n}\n\n// src/hooks/contracts/useContractEvent.ts\nimport * as React15 from \"react\";\nfunction useContractEvent({\n address,\n chainId,\n abi,\n listener,\n eventName\n} = {}) {\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n const unwatch = React15.useRef();\n React15.useEffect(() => {\n if (!abi || !address || !eventName)\n return;\n const publicClient_ = webSocketPublicClient || publicClient;\n unwatch.current = publicClient_.watchContractEvent({\n abi,\n address,\n eventName,\n onLogs: listener\n });\n return unwatch.current;\n }, [abi, address, eventName, publicClient.uid, webSocketPublicClient?.uid]);\n return unwatch.current;\n}\n\n// src/hooks/contracts/useContractInfiniteReads.ts\nimport { replaceEqualDeep } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual2, readContracts } from \"@wagmi/core\";\nimport * as React16 from \"react\";\nfunction queryKey5({\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n scopeKey\n}) {\n return [\n {\n entity: \"readContractsInfinite\",\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n scopeKey\n }\n ];\n}\nfunction queryFn5({\n contracts\n}) {\n return ({\n queryKey: [{ allowFailure, blockNumber, blockTag }],\n pageParam\n }) => {\n return readContracts({\n allowFailure,\n blockNumber,\n blockTag,\n contracts: contracts(pageParam || void 0)\n });\n };\n}\nfunction useContractInfiniteReads({\n allowFailure,\n blockNumber,\n blockTag,\n cacheKey,\n cacheTime,\n contracts,\n enabled: enabled_ = true,\n getNextPageParam,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual2(oldData, newData) ? oldData : replaceEqualDeep(oldData, newData),\n suspense\n}) {\n const queryKey_ = React16.useMemo(\n () => queryKey5({ allowFailure, blockNumber, blockTag, cacheKey, scopeKey }),\n [allowFailure, blockNumber, blockTag, cacheKey, scopeKey]\n );\n const enabled = React16.useMemo(() => {\n const enabled2 = Boolean(enabled_ && contracts);\n return enabled2;\n }, [contracts, enabled_]);\n return useInfiniteQuery(queryKey_, queryFn5({ contracts }), {\n cacheTime,\n enabled,\n getNextPageParam,\n isDataEqual,\n keepPreviousData,\n select,\n staleTime,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\nfunction paginatedIndexesConfig(fn, {\n perPage,\n start,\n direction\n}) {\n const contracts = (page = 0) => [...Array(perPage).keys()].map((index) => {\n return direction === \"increment\" ? start + index + page * perPage : start - index - page * perPage;\n }).filter((index) => index >= 0).flatMap(fn);\n return {\n contracts,\n getNextPageParam(lastPage, pages) {\n return lastPage?.length === perPage ? pages.length : void 0;\n }\n };\n}\n\n// src/hooks/contracts/useContractRead.ts\nimport { replaceEqualDeep as replaceEqualDeep2 } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual3, readContract } from \"@wagmi/core\";\nimport * as React17 from \"react\";\nfunction queryKey6({\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n scopeKey\n}) {\n return [\n {\n entity: \"readContract\",\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n scopeKey\n }\n ];\n}\nfunction queryFn6({ abi }) {\n return async ({\n queryKey: [\n { account, address, args, blockNumber, blockTag, chainId, functionName }\n ]\n }) => {\n if (!abi)\n throw new Error(\"abi is required\");\n if (!address)\n throw new Error(\"address is required\");\n return await readContract({\n account,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n abi,\n functionName\n }) ?? null;\n };\n}\nfunction useContractRead({\n abi,\n address,\n account,\n args,\n blockNumber: blockNumberOverride,\n blockTag,\n cacheOnBlock = false,\n cacheTime,\n chainId: chainId_,\n enabled: enabled_ = true,\n functionName,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual3(oldData, newData) ? oldData : replaceEqualDeep2(oldData, newData),\n suspense,\n watch\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n const { data: blockNumber_ } = useBlockNumber({\n chainId,\n enabled: watch || cacheOnBlock,\n scopeKey: watch || cacheOnBlock ? void 0 : \"idle\",\n watch\n });\n const blockNumber = blockNumberOverride ?? blockNumber_;\n const queryKey_ = React17.useMemo(\n () => queryKey6({\n account,\n address,\n args,\n blockNumber: cacheOnBlock ? blockNumber : void 0,\n blockTag,\n chainId,\n functionName,\n scopeKey\n }),\n [\n account,\n address,\n args,\n blockNumber,\n blockTag,\n cacheOnBlock,\n chainId,\n functionName,\n scopeKey\n ]\n );\n const enabled = React17.useMemo(() => {\n let enabled2 = Boolean(enabled_ && abi && address && functionName);\n if (cacheOnBlock)\n enabled2 = Boolean(enabled2 && blockNumber);\n return enabled2;\n }, [abi, address, blockNumber, cacheOnBlock, enabled_, functionName]);\n useInvalidateOnBlock({\n chainId,\n enabled: Boolean(enabled && watch && !cacheOnBlock),\n queryKey: queryKey_\n });\n return useQuery(\n queryKey_,\n queryFn6({\n abi\n }),\n {\n cacheTime,\n enabled,\n isDataEqual,\n keepPreviousData,\n select,\n staleTime,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/contracts/useContractReads.ts\nimport { replaceEqualDeep as replaceEqualDeep3 } from \"@tanstack/react-query\";\nimport { deepEqual as deepEqual4, readContracts as readContracts2 } from \"@wagmi/core\";\nimport * as React18 from \"react\";\nfunction queryKey7({\n allowFailure,\n blockNumber,\n blockTag,\n chainId,\n contracts,\n scopeKey\n}) {\n return [\n {\n entity: \"readContracts\",\n allowFailure,\n blockNumber,\n blockTag,\n chainId,\n scopeKey,\n contracts: (contracts ?? []).map(({ address, args, chainId: chainId2, functionName }) => ({\n address,\n args,\n chainId: chainId2,\n functionName\n }))\n }\n ];\n}\nfunction queryFn7({ abis }) {\n return ({\n queryKey: [{ allowFailure, blockNumber, blockTag, contracts: contracts_ }]\n }) => {\n const contracts = contracts_.map((contract, i) => ({\n ...contract,\n abi: abis[i]\n }));\n return readContracts2({\n allowFailure,\n contracts,\n blockNumber,\n blockTag\n });\n };\n}\nfunction useContractReads({\n allowFailure: allowFailure_,\n blockNumber: blockNumberOverride,\n blockTag,\n cacheOnBlock = false,\n cacheTime,\n contracts,\n enabled: enabled_ = true,\n isDataEqual,\n keepPreviousData,\n onError,\n onSettled,\n onSuccess,\n scopeKey,\n select,\n staleTime,\n structuralSharing = (oldData, newData) => deepEqual4(oldData, newData) ? oldData : replaceEqualDeep3(oldData, newData),\n suspense,\n watch\n} = {}) {\n const allowFailure = allowFailure_ ?? true;\n const { data: blockNumber_ } = useBlockNumber({\n enabled: watch || cacheOnBlock,\n watch\n });\n const chainId = useChainId();\n const blockNumber = blockNumberOverride ?? blockNumber_;\n const queryKey_ = React18.useMemo(\n () => queryKey7({\n allowFailure,\n blockNumber: cacheOnBlock ? blockNumber : void 0,\n blockTag,\n chainId,\n contracts,\n scopeKey\n }),\n [\n allowFailure,\n blockNumber,\n blockTag,\n cacheOnBlock,\n chainId,\n scopeKey,\n contracts\n ]\n );\n const enabled = React18.useMemo(() => {\n let enabled2 = Boolean(\n enabled_ && contracts?.every(\n (x) => x.abi && x.address && x.functionName\n )\n );\n if (cacheOnBlock)\n enabled2 = Boolean(enabled2 && blockNumber);\n return enabled2;\n }, [blockNumber, cacheOnBlock, contracts, enabled_]);\n useInvalidateOnBlock({\n enabled: Boolean(enabled && watch && !cacheOnBlock),\n queryKey: queryKey_\n });\n const abis = (contracts ?? []).map(\n ({ abi }) => abi\n );\n return useQuery(queryKey_, queryFn7({ abis }), {\n cacheTime,\n enabled,\n isDataEqual,\n keepPreviousData,\n staleTime,\n select,\n structuralSharing,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/contracts/useContractWrite.ts\nimport { writeContract } from \"@wagmi/core\";\nimport { getSendTransactionParameters } from \"@wagmi/core/internal\";\nimport * as React19 from \"react\";\nfunction mutationKey6({\n address,\n abi,\n functionName,\n ...config\n}) {\n const {\n args,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n } = config;\n return [\n {\n entity: \"writeContract\",\n address,\n args,\n abi,\n accessList,\n account,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n }\n ];\n}\nfunction mutationFn6(config) {\n if (config.mode === \"prepared\") {\n if (!config.request)\n throw new Error(\"request is required\");\n return writeContract({\n mode: \"prepared\",\n request: config.request\n });\n }\n if (!config.address)\n throw new Error(\"address is required\");\n if (!config.abi)\n throw new Error(\"abi is required\");\n if (!config.functionName)\n throw new Error(\"functionName is required\");\n return writeContract({\n address: config.address,\n args: config.args,\n chainId: config.chainId,\n abi: config.abi,\n functionName: config.functionName,\n accessList: config.accessList,\n account: config.account,\n gas: config.gas,\n gasPrice: config.gasPrice,\n maxFeePerGas: config.maxFeePerGas,\n maxPriorityFeePerGas: config.maxPriorityFeePerGas,\n nonce: config.nonce,\n value: config.value\n });\n}\nfunction useContractWrite(config) {\n const { address, abi, args, chainId, functionName, mode, request } = config;\n const {\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getSendTransactionParameters(config);\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey6({\n address,\n abi,\n functionName,\n chainId,\n mode,\n args,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n request,\n value\n }),\n mutationFn6,\n {\n onError: config.onError,\n onMutate: config.onMutate,\n onSettled: config.onSettled,\n onSuccess: config.onSuccess\n }\n );\n const write = React19.useMemo(() => {\n if (config.mode === \"prepared\") {\n if (!request)\n return void 0;\n return () => mutate({\n mode: \"prepared\",\n request: config.request,\n chainId: config.chainId\n });\n }\n return (overrideConfig) => mutate({\n address,\n args,\n abi,\n functionName,\n chainId,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value,\n ...overrideConfig\n });\n }, [\n accessList,\n account,\n abi,\n address,\n args,\n chainId,\n config.chainId,\n config.mode,\n config.request,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mutate,\n nonce,\n request,\n value\n ]);\n const writeAsync = React19.useMemo(() => {\n if (config.mode === \"prepared\") {\n if (!request)\n return void 0;\n return () => mutateAsync({\n mode: \"prepared\",\n request: config.request\n });\n }\n return (overrideConfig) => mutateAsync({\n address,\n args,\n abi,\n chainId,\n functionName,\n accessList,\n account,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value,\n ...overrideConfig\n });\n }, [\n accessList,\n account,\n abi,\n address,\n args,\n chainId,\n config.mode,\n config.request,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mutateAsync,\n nonce,\n request,\n value\n ]);\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n status,\n variables,\n write,\n writeAsync\n };\n}\n\n// src/hooks/contracts/usePrepareContractWrite.ts\nimport { prepareWriteContract } from \"@wagmi/core\";\nimport { getCallParameters } from \"@wagmi/core/internal\";\nfunction queryKey8({\n accessList,\n account,\n activeChainId,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress,\n value\n}) {\n return [\n {\n entity: \"prepareContractTransaction\",\n accessList,\n account,\n activeChainId,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress,\n value\n }\n ];\n}\nfunction queryFn8({\n abi,\n walletClient\n}) {\n return ({\n queryKey: [\n {\n accessList,\n account,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n }\n ]\n }) => {\n if (!abi)\n throw new Error(\"abi is required\");\n if (!address)\n throw new Error(\"address is required\");\n if (!functionName)\n throw new Error(\"functionName is required\");\n return prepareWriteContract({\n abi,\n accessList,\n account,\n args,\n address,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n walletClient,\n value\n });\n };\n}\nfunction usePrepareContractWrite({\n address,\n abi,\n functionName,\n chainId,\n args,\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess,\n ...config\n} = {}) {\n const { chain: activeChain } = useNetwork();\n const { data: walletClient } = useWalletClient({ chainId });\n const {\n accessList,\n account,\n blockNumber,\n blockTag,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n value\n } = getCallParameters(config);\n const prepareContractWriteQuery = useQuery(\n queryKey8({\n accessList,\n account,\n activeChainId: activeChain?.id,\n address,\n args,\n blockNumber,\n blockTag,\n chainId,\n functionName,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n walletClientAddress: walletClient?.account.address,\n value\n }),\n queryFn8({\n abi,\n walletClient\n }),\n {\n cacheTime,\n enabled: Boolean(\n enabled && abi && address && functionName && walletClient\n ),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n return Object.assign(prepareContractWriteQuery, {\n config: {\n chainId,\n mode: \"prepared\",\n request: void 0,\n ...prepareContractWriteQuery.data\n }\n });\n}\n\n// src/hooks/contracts/useToken.ts\nimport { fetchToken } from \"@wagmi/core\";\nfunction queryKey9({\n address,\n chainId,\n formatUnits,\n scopeKey\n}) {\n return [{ entity: \"token\", address, chainId, formatUnits, scopeKey }];\n}\nfunction queryFn9({\n queryKey: [{ address, chainId, formatUnits }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchToken({ address, chainId, formatUnits });\n}\nfunction useToken({\n address,\n chainId: chainId_,\n formatUnits = \"ether\",\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(\n queryKey9({ address, chainId, formatUnits, scopeKey }),\n queryFn9,\n {\n cacheTime,\n enabled: Boolean(enabled && address),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/ens/useEnsAddress.ts\nimport { fetchEnsAddress } from \"@wagmi/core\";\nfunction queryKey10({ chainId, name, scopeKey }) {\n return [{ entity: \"ensAddress\", chainId, name, scopeKey }];\n}\nfunction queryFn10({\n queryKey: [{ chainId, name }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsAddress({ chainId, name });\n}\nfunction useEnsAddress({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n name,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey10({ chainId, name, scopeKey }), queryFn10, {\n cacheTime,\n enabled: Boolean(enabled && chainId && name),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsAvatar.ts\nimport { fetchEnsAvatar } from \"@wagmi/core\";\nfunction queryKey11({ name, chainId, scopeKey }) {\n return [{ entity: \"ensAvatar\", name, chainId, scopeKey }];\n}\nfunction queryFn11({\n queryKey: [{ name, chainId }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsAvatar({ name, chainId });\n}\nfunction useEnsAvatar({\n cacheTime,\n chainId: chainId_,\n enabled = true,\n name,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey11({ name, chainId, scopeKey }), queryFn11, {\n cacheTime,\n enabled: Boolean(enabled && name && chainId),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsName.ts\nimport { fetchEnsName } from \"@wagmi/core\";\nfunction queryKey12({\n address,\n chainId,\n scopeKey\n}) {\n return [{ entity: \"ensName\", address, chainId, scopeKey }];\n}\nfunction queryFn12({\n queryKey: [{ address, chainId }]\n}) {\n if (!address)\n throw new Error(\"address is required\");\n return fetchEnsName({ address, chainId });\n}\nfunction useEnsName({\n address,\n cacheTime,\n chainId: chainId_,\n enabled = true,\n scopeKey,\n staleTime = 1e3 * 60 * 60 * 24,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey12({ address, chainId, scopeKey }), queryFn12, {\n cacheTime,\n enabled: Boolean(enabled && address && chainId),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/ens/useEnsResolver.ts\nimport { fetchEnsResolver } from \"@wagmi/core\";\nfunction queryKey13({ chainId, name, scopeKey }) {\n return [\n { entity: \"ensResolver\", chainId, name, scopeKey, persist: false }\n ];\n}\nfunction queryFn13({\n queryKey: [{ chainId, name }]\n}) {\n if (!name)\n throw new Error(\"name is required\");\n return fetchEnsResolver({ chainId, name });\n}\nfunction useEnsResolver({\n chainId: chainId_,\n name,\n enabled = true,\n scopeKey,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey13({ chainId, name, scopeKey }), queryFn13, {\n cacheTime: 0,\n enabled: Boolean(enabled && chainId && name),\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/transactions/usePrepareSendTransaction.ts\nimport { prepareSendTransaction } from \"@wagmi/core\";\nfunction queryKey14({\n accessList,\n account,\n activeChainId,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n scopeKey,\n walletClientAddress\n}) {\n return [\n {\n entity: \"prepareSendTransaction\",\n activeChainId,\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n scopeKey,\n walletClientAddress\n }\n ];\n}\nfunction queryFn14({ walletClient }) {\n return ({\n queryKey: [\n {\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value\n }\n ]\n }) => {\n if (!to)\n throw new Error(\"to is required\");\n return prepareSendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n to,\n value,\n walletClient\n });\n };\n}\nfunction usePrepareSendTransaction({\n accessList,\n account,\n chainId,\n cacheTime,\n data,\n enabled = true,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n staleTime,\n suspense,\n to,\n value,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const { chain: activeChain } = useNetwork();\n const { data: walletClient } = useWalletClient({ chainId });\n const prepareSendTransactionQuery = useQuery(\n queryKey14({\n accessList,\n activeChainId: activeChain?.id,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n nonce,\n scopeKey,\n to,\n value,\n walletClientAddress: walletClient?.account.address\n }),\n queryFn14({ walletClient }),\n {\n cacheTime,\n enabled: Boolean(enabled && walletClient && to),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n return Object.assign(prepareSendTransactionQuery, {\n config: {\n mode: \"prepared\",\n ...prepareSendTransactionQuery.isSuccess ? prepareSendTransactionQuery.data : void 0\n }\n });\n}\n\n// src/hooks/transactions/useSendTransaction.ts\nimport { sendTransaction } from \"@wagmi/core\";\nimport * as React20 from \"react\";\nvar mutationKey7 = (args) => [{ entity: \"sendTransaction\", ...args }];\nvar mutationFn7 = ({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n}) => {\n if (!to)\n throw new Error(\"to is required.\");\n return sendTransaction({\n accessList,\n account,\n chainId,\n data,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n });\n};\nfunction useSendTransaction({\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value,\n onError,\n onMutate,\n onSettled,\n onSuccess\n} = {}) {\n const {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n mutate,\n mutateAsync,\n reset,\n status,\n variables\n } = useMutation(\n mutationKey7({\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n to,\n value\n }),\n mutationFn7,\n {\n onError,\n onMutate,\n onSettled,\n onSuccess\n }\n );\n const sendTransaction2 = React20.useCallback(\n (args) => mutate({\n chainId,\n mode,\n ...args || {\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n value,\n to\n }\n }),\n [\n accessList,\n account,\n chainId,\n data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n mutate,\n nonce,\n to,\n value\n ]\n );\n const sendTransactionAsync = React20.useCallback(\n (args) => mutateAsync({\n chainId,\n mode,\n ...args || {\n accessList,\n account,\n chainId,\n data: data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n nonce,\n value,\n to\n }\n }),\n [\n accessList,\n account,\n chainId,\n data_,\n gas,\n gasPrice,\n maxFeePerGas,\n maxPriorityFeePerGas,\n mode,\n mutateAsync,\n nonce,\n to,\n value\n ]\n );\n return {\n data,\n error,\n isError,\n isIdle,\n isLoading,\n isSuccess,\n reset,\n sendTransaction: mode === \"prepared\" && !to ? void 0 : sendTransaction2,\n sendTransactionAsync: mode === \"prepared\" && !to ? void 0 : sendTransactionAsync,\n status,\n variables\n };\n}\n\n// src/hooks/transactions/useTransaction.ts\nimport { fetchTransaction } from \"@wagmi/core\";\nfunction queryKey15({ chainId, hash, scopeKey }) {\n return [{ entity: \"transaction\", chainId, hash, scopeKey }];\n}\nfunction queryFn15({\n queryKey: [{ chainId, hash }]\n}) {\n if (!hash)\n throw new Error(\"hash is required\");\n return fetchTransaction({ chainId, hash });\n}\nfunction useTransaction({\n cacheTime = 0,\n chainId: chainId_,\n enabled = true,\n hash,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(queryKey15({ chainId, hash, scopeKey }), queryFn15, {\n cacheTime,\n enabled: Boolean(enabled && hash),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n });\n}\n\n// src/hooks/transactions/useWaitForTransaction.ts\nimport { waitForTransaction } from \"@wagmi/core\";\nfunction queryKey16({\n confirmations,\n chainId,\n hash,\n scopeKey,\n timeout\n}) {\n return [\n {\n entity: \"waitForTransaction\",\n confirmations,\n chainId,\n hash,\n scopeKey,\n timeout\n }\n ];\n}\nfunction queryFn16({\n onReplaced\n}) {\n return ({\n queryKey: [{ chainId, confirmations, hash, timeout }]\n }) => {\n if (!hash)\n throw new Error(\"hash is required\");\n return waitForTransaction({\n chainId,\n confirmations,\n hash,\n onReplaced,\n timeout\n });\n };\n}\nfunction useWaitForTransaction({\n chainId: chainId_,\n confirmations,\n hash,\n timeout,\n cacheTime,\n enabled = true,\n scopeKey,\n staleTime,\n suspense,\n onError,\n onReplaced,\n onSettled,\n onSuccess\n} = {}) {\n const chainId = useChainId({ chainId: chainId_ });\n return useQuery(\n queryKey16({ chainId, confirmations, hash, scopeKey, timeout }),\n queryFn16({ onReplaced }),\n {\n cacheTime,\n enabled: Boolean(enabled && hash),\n staleTime,\n suspense,\n onError,\n onSettled,\n onSuccess\n }\n );\n}\n\n// src/hooks/transactions/useWatchPendingTransactions.ts\nimport * as React21 from \"react\";\nfunction useWatchPendingTransactions({\n chainId: chainId_,\n enabled = true,\n listener\n}) {\n const chainId = useChainId({ chainId: chainId_ });\n const publicClient = usePublicClient({ chainId });\n const webSocketPublicClient = useWebSocketPublicClient({ chainId });\n React21.useEffect(() => {\n if (!enabled)\n return;\n const publicClient_ = webSocketPublicClient ?? publicClient;\n return publicClient_.watchPendingTransactions({\n onTransactions: listener\n });\n }, [enabled, listener, publicClient, webSocketPublicClient]);\n}\n\n// src/index.ts\nimport {\n ChainMismatchError,\n ChainNotConfiguredError,\n Connector,\n ConnectorAlreadyConnectedError,\n ConnectorNotFoundError,\n ConfigChainsNotFound,\n SwitchChainNotSupportedError,\n configureChains,\n createStorage as createStorage2,\n deepEqual as deepEqual5,\n deserialize,\n erc20ABI,\n erc721ABI,\n erc4626ABI,\n mainnet,\n readContracts as readContracts3,\n sepolia,\n serialize\n} from \"@wagmi/core\";\nexport {\n ChainMismatchError,\n ChainNotConfiguredError,\n ConfigChainsNotFound,\n Connector,\n ConnectorAlreadyConnectedError,\n ConnectorNotFoundError,\n Context,\n SwitchChainNotSupportedError,\n WagmiConfig,\n configureChains,\n createConfig,\n createStorage2 as createStorage,\n deepEqual5 as deepEqual,\n deserialize,\n erc20ABI,\n erc4626ABI,\n erc721ABI,\n mainnet,\n paginatedIndexesConfig,\n readContracts3 as readContracts,\n sepolia,\n serialize,\n useAccount,\n useBalance,\n useBlockNumber,\n useChainId,\n useConfig,\n useConnect,\n useContractEvent,\n useContractInfiniteReads,\n useContractRead,\n useContractReads,\n useContractWrite,\n useDisconnect,\n useEnsAddress,\n useEnsAvatar,\n useEnsName,\n useEnsResolver,\n useFeeData,\n useInfiniteQuery,\n useMutation,\n useNetwork,\n usePrepareContractWrite,\n usePrepareSendTransaction,\n usePublicClient,\n useQuery,\n useQueryClient2 as useQueryClient,\n useSendTransaction,\n useSignMessage,\n useSignTypedData,\n useSwitchNetwork,\n useToken,\n useTransaction,\n useWaitForTransaction,\n useWalletClient,\n useWatchPendingTransactions,\n useWebSocketPublicClient\n};\n"],"names":["t","n","e","r","o","i","a","c","u","value","done","Promise","resolve","then","this","arguments","apply","Object","assign","length","prototype","hasOwnProperty","call","create","constructor","__proto__","setPrototypeOf","getPrototypeOf","Reflect","construct","sham","Proxy","Date","toString","push","Function","bind","h","Map","indexOf","TypeError","has","get","set","enumerable","writable","configurable","s","ReferenceError","f","l","Symbol","iterator","asyncIterator","toStringTag","defineProperty","B","_invoke","Error","method","arg","delegate","C","sent","_sent","dispatchException","abrupt","type","wrap","d","p","w","v","_","y","g","forEach","m","__await","return","resultName","next","nextLoc","b","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","x","completion","reset","isNaN","k","displayName","isGeneratorFunction","name","mark","awrap","AsyncIterator","async","keys","reverse","pop","values","prev","charAt","slice","stop","rval","complete","finish","catch","delegateYield","exports","regeneratorRuntime","result","message","BscConnector","handleNetworkChanged","handleChainChanged","handleAccountsChanged","handleClose","emitUpdate","chainId","provider","window","BinanceChain","emitDeactivate","account","activate","on","isMetaMask","autoRefreshOnNetworkChange","send","t0","code","enable","getProvider","getChainId","t1","isDapper","cachedResults","net_version","netVersion","networkVersion","_chainId","getAccount","deactivate","removeListener","isAuthorized","AbstractConnector","module","version","AddressCoder","localName","super","defaultValue","encode","writer","error","_throwError","writeValue","decode","reader","readValue","toHexString","AnonymousCoder","coder","undefined","dynamic","logger","pack","coders","arrayValues","Array","isArray","unique","map","throwError","argument","throwArgumentError","staticWriter","wordSize","dynamicWriter","updateFuncs","index","dynamicOffset","updateFunc","writeUpdatableValue","baseOffset","func","appendWriter","unpack","baseReader","subReader","offset","offsetReader","toNumber","baseType","uniqueNames","reduce","accum","freeze","ArrayCoder","defaultChild","count","checkArgumentCount","_data","coerce","BooleanCoder","isZero","DynamicBytesCoder","writeBytes","readBytes","BytesCoder","FixedBytesCoder","size","String","substring","data","NullCoder","NumberCoder","signed","maxUintValue","bounds","mask","gt","lt","add","mul","toTwos","fromTwos","StringCoder","TupleCoder","types","join","paramTypeBytes","RegExp","paramTypeNumber","AbiCoder","coerceFunc","_getCoder","param","arrayChildren","arrayLength","components","component","match","parseInt","_getWordSize","_getReader","allowLoose","_getWriter","getDefaultValue","loose","defaultAbiCoder","checkResultErrors","errors","checkErrors","path","object","key","childPath","Coder","Writer","_dataLength","_padding","Uint8Array","_writeData","bytes","paddingOffset","_getValue","Reader","_offset","consumed","static","_coerceFunc","_peekBytes","alignedLength","Math","ceil","_constructorGuard","ModifiersBytes","calldata","memory","storage","ModifiersNest","checkModifier","populate","params","FormatTypes","sighash","minimal","full","json","paramTypeArray","ParamType","constructorGuard","operation","fromObject","_isParamType","format","indexed","comp","JSON","parse","stringify","allowIndexed","fromString","isParamType","verifyType","node","originalParam","newNode","parent","state","allowType","replace","allowParams","child","allowName","allowArray","sibling","readArray","parseParamType","parseParams","allowIndex","trim","depth","splitNesting","Fragment","_isFragment","isFragment","FunctionFragment","EventFragment","ConstructorFragment","ErrorFragment","split","anonymous","inputs","input","isEventFragment","verifyIdentifier","regexParen","modifier","warn","parseGas","gas","comps","parseModifiers","constant","payable","stateMutability","console","log","verifyState","isConstructorFragment","parens","outputs","output","isFunctionFragment","returns","checkForbidden","fragment","sig","isErrorFragment","regexIdentifier","LogDescription","TransactionDescription","ErrorDescription","Indexed","_isIndexed","BuiltinErrors","signature","reason","wrapAccessError","property","Interface","fragments","abi","filter","bucket","deploy","functions","events","j","address","id","eventFragment","getFunction","nameOrSignatureOrSighash","getSighash","matching","getEvent","nameOrSignatureOrTopic","topichash","toLowerCase","getEventTopic","getError","_decodeParams","_abiCoder","_encodeParams","encodeDeploy","decodeErrorResult","encodeErrorResult","decodeFunctionData","functionFragment","encodeFunctionData","decodeFunctionResult","errorArgs","errorName","errorSignature","selector","builtin","encodeFunctionResult","encodeFilterTopics","topics","encodeTopic","encodeEventLog","dataTypes","dataValues","decodeEventLog","topicHash","expected","nonIndexed","resultIndexed","resultNonIndexed","nonIndexedIndex","indexedIndex","hash","parseTransaction","tx","args","parseLog","topic","parseError","hexData","errorFragment","_isInterface","__awaiter","thisArg","_arguments","P","generator","reject","fulfilled","step","rejected","ForkEvent","_isForkEvent","BlockForkEvent","blockHash","expiry","_isBlockForkEvent","TransactionForkEvent","_isTransactionForkEvent","TransactionOrderForkEvent","beforeHash","afterHash","_isTransactionOrderForkEvent","Provider","checkAbstract","getFeeData","block","gasPrice","getBlock","getGasPrice","lastBaseFeePerGas","maxFeePerGas","maxPriorityFeePerGas","baseFeePerGas","addListener","eventName","listener","off","_isProvider","allowedTransactionKeys","forwardErrors","Signer","getBalance","blockTag","_checkProvider","getAddress","getTransactionCount","estimateGas","transaction","checkTransaction","sendTransaction","populateTransaction","signedTx","signTransaction","getNetwork","resolveName","from","all","to","hasEip1559","feeData","nonce","gasLimit","results","_isSigner","VoidSigner","_fail","signMessage","_signTypedData","domain","connect","getChecksumAddress","chars","expanded","charCodeAt","hashed","toUpperCase","ibanLookup","fromCharCode","safeDigits","floor","log10","LN10","ibanChecksum","checksum","isAddress","getIcapAddress","base36","getContractAddress","getCreate2Address","salt","initCodeHash","textData","atob","btoa","BaseX","alphabet","_alphabetMap","source","digits","carry","base","string","_leader","q","byte","Base58","BN","MAX_SAFE","isBigNumberish","BigNumber","isBigNumber","_warnedToStringRadix","hex","_hex","_isBigNumber","toBigNumber","toBN","abs","other","sub","div","throwFault","mod","isNeg","umod","pow","and","isNegative","or","xor","maskn","shl","shln","shr","shrn","eq","lte","gte","toBigInt","BigInt","toJSON","toHex","anyValue","fault","_base36To16","_base16To36","Zero","NegativeOne","zeros","getMultiplier","decimals","formatFixed","multiplier","negative","fraction","whole","parseFixed","wholeValue","fractionValue","wei","FixedFormat","width","_multiplier","check","FixedNumber","_value","_isFixedNumber","_checkFormat","addUnsafe","fromValue","subUnsafe","mulUnsafe","divUnsafe","hasFraction","ONE","toFormat","ceiling","round","factor","bump","BUMP","toUnsafeFloat","parseFloat","fixedFormat","numeric","decimal","fromBytes","assert","val","msg","inherits","ctor","superCtor","super_","TempCtor","number","endian","isBN","words","red","_init","Buffer","parseHex4Bits","parseHexByte","lowerBound","parseBase","str","start","end","len","min","move","dest","src","num","max","left","right","cmp","_initNumber","_initArray","_parseHex","_parseBase","toArray","_strip","limbLen","limbPow","total","word","imuln","_iaddn","copy","_move","clone","_expand","_normSign","for","inspect","groupSizes","groupBases","padding","out","groupSize","groupBase","modrn","idivn","ret","toBuffer","toArrayLike","smallMulTo","self","lo","ncarry","rword","maxJ","ArrayType","byteLength","reqLength","res","allocUnsafe","allocate","_toArrayLikeLE","position","shift","_toArrayLikeBE","clz32","_countBits","_zeroBits","bitLength","hi","zeroBits","inotn","iaddn","testn","notn","ineg","neg","iuor","ior","uor","iuand","iand","uand","iuxor","ixor","uxor","bytesNeeded","bitsLeft","setn","bit","wbit","iadd","isub","comb10MulTo","mid","a0","al0","ah0","a1","al1","ah1","a2","al2","ah2","a3","al3","ah3","a4","al4","ah4","a5","al5","ah5","a6","al6","ah6","a7","al7","ah7","a8","al8","ah8","a9","al9","ah9","b0","bl0","bh0","b1","bl1","bh1","b2","bl2","bh2","b3","bl3","bh3","b4","bl4","bh4","b5","bl5","bh5","b6","bl6","bh6","b7","bl7","bh7","b8","bl8","bh8","b9","bl9","bh9","w0","imul","w1","w2","w3","w4","w5","w6","w7","w8","w9","w10","w11","w12","w13","w14","w15","w16","w17","w18","bigMulTo","hncarry","jumboMulTo","FFTM","mulTo","makeRBT","N","revBin","rb","permute","rbt","rws","iws","rtws","itws","transform","rtwdf","cos","PI","itwdf","sin","rtwdf_","itwdf_","re","ie","ro","io","rx","guessLen13b","odd","conjugate","normalize13b","ws","convert13b","stub","ph","mulp","rwst","iwst","nrws","nrwst","niwst","rmws","mulf","isNegNum","muln","sqr","isqr","toBitArray","iushln","bits","carryMask","newCarry","ishln","iushrn","hint","extended","maskedWords","ishrn","ushln","ushrn","imaskn","isubn","addn","subn","iabs","_ishlnsubmul","_wordDiv","mode","bhi","diff","qj","divmod","positive","divn","divRound","dm","half","r2","andln","acc","modn","egcd","A","D","isEven","yp","xp","im","isOdd","jm","gcd","_invmp","x1","x2","delta","cmpn","invm","bincn","ucmp","gtn","gten","ltn","lten","eqn","Red","toRed","ctx","convertTo","_forceRed","fromRed","convertFrom","forceRed","redAdd","redIAdd","redSub","redISub","redShl","redMul","_verify2","redIMul","redSqr","_verify1","redISqr","redSqrt","sqrt","redInvm","redNeg","redPow","primes","k256","p224","p192","p25519","MPrime","tmp","_tmp","K256","P224","P192","P25519","prime","_prime","Mont","imod","rinv","minv","ireduce","rlen","imulK","strip","outLen","mod3","one","nOne","lpow","z","inv","wnd","current","currentLen","mont","isHexable","addSlice","array","isBytesLike","isHexString","isBytes","isInteger","arrayify","options","checkSafeUint53","unshift","allowMissingPrefix","hexPad","concat","items","objects","item","stripZeros","zeroPad","HexCharacters","hexlify","hexDataLength","hexDataSlice","endOffset","hexConcat","hexValue","trimmed","hexStripZeros","hexZeroPad","splitSignature","_vs","recoveryParam","yParityAndS","compact","vs","recId","joinSignature","AddressZero","One","Two","WeiPerEther","MaxUint256","MinInt256","MaxInt256","HashZero","accessList","customData","ccipReadEnabled","resolver","nameOrPromise","resolveAddresses","paramType","makeError","contract","overrides","signer","override","resolved","resolvedAddress","interface","intrinsic","roValue","leftovers","addContractWait","wait","confirmations","receipt","logs","event","parsed","eventSignature","getTransaction","transactionHash","getTransactionReceipt","buildCall","collapseSimple","signerOrProvider","deployTransaction","_deployed","buildDefault","txRequest","buildSend","getEventTag","RunningEvent","tag","_listeners","once","removeAllListeners","listeners","listenerCount","run","argsCopy","setTimeout","prepareEvent","getEmit","ErrorRunningEvent","FragmentRunningEvent","contractInterface","decodeError","WildcardRunningEvent","BaseContract","addressOrName","uniqueFilters","filters","uniqueSignatures","callStatic","buildPopulate","buildEstimate","signatures","deployed","_deployedPromise","getCode","contractAddress","fallback","attach","_normalizeRunningEvent","runningEvent","_runningEvents","_getRunningEvent","_checkRunningEvents","emit","_wrappedEmits","_wrapEvent","_addEventListener","wrappedEmit","queryFilter","fromBlockOrBlockhash","toBlock","fromBlock","getLogs","Contract","ContractFactory","bytecode","bytecodeHex","getDeployTransaction","unsignedTx","getContract","compilerOutput","evm","getInterface","text","flat","flatDeep","arr","read_compressed_payload","pos","read_payload","u16","symbol_count","skip","pos_payload","read_width","read_buffer","read_bit","FULL","HALF","QRTR","MASK","register","symbols","low","range","decode_arithmetic","read_ascending","read_deltas","read_member_array","lookup","vX","vN","read_counts","read_transposed","fill","read_linear_table","dx","dy","read_zero_terminated_array","ys","j_dy","read_replacement_table","VALID","Set","IGNORED","MAPPED","fromEntries","read_mapped_map","EMOJI_ROOT","sorted","sort","read","branches","temp","valid","fe0f","save","read_emoji_trie","explode_cp","filter_fe0f","cps","cp","ens_normalize_post_check","label","lastIndexOf","every","err","ens_normalize","emoji_filter","emoji","consume_emoji_reversed","normalize","nfc","fromCodePoint","eaten","_a","saved","stack","find","splice","Zeros","checkComponent","ensNameSplit","last","isValidName","namehash","dnsEncode","hexTrue","hexFalse","domainFieldTypes","verifyingContract","domainFieldNames","checkString","domainChecks","getBaseEncoder","boundsUpper","boundsLower","padOffset","hexPadRight","encodeType","fields","TypedDataEncoder","links","parents","subtypes","field","primaryTypes","checkCircular","found","subtype","primaryType","st","_types","getEncoder","encoder","_encoderCache","_getEncoder","subEncoder","encodedType","encodeData","hashStruct","_visit","callback","visit","domainFields","EIP712Domain","hashDomain","ensCache","domainValues","domainTypes","typesWithDomain","keccak256","_permanentCensorErrors","_censorErrors","LogLevels","debug","info","warning","_logLevel","_globalLogger","_normalizeError","missing","form","_checkNormalize","LogLevel","ErrorCode","HEX","Logger","_log","logLevel","level","levels","DEBUG","INFO","WARNING","UNKNOWN_ERROR","messageDetails","url","NUMERIC_FAULT","CALL_EXCEPTION","INSUFFICIENT_FUNDS","MISSING_NEW","NONCE_EXPIRED","REPLACEMENT_UNDERPRICED","TRANSACTION_REPLACED","UNPREDICTABLE_GAS_LIMIT","INVALID_ARGUMENT","condition","assertArgument","checkNormalize","UNSUPPORTED_OPERATION","expectedCount","MISSING_ARGUMENT","UNEXPECTED_ARGUMENT","checkNew","target","kind","censorship","permanent","globalLogger","ethDefaultProvider","network","providers","providerList","InfuraProvider","infura","EtherscanProvider","etherscan","AlchemyProvider","alchemy","PocketProvider","pocket","CloudflareProvider","cloudflare","AnkrProvider","ankr","FallbackProvider","quorum","renetwork","etcDefaultProvider","JsonRpcProvider","homestead","ensAddress","_defaultProvider","ropsten","classicMordor","networks","unspecified","mainnet","morden","testnet","rinkeby","kovan","goerli","kintsugi","sepolia","classic","classicMorden","classicTestnet","classicKotti","xdai","matic","maticmum","optimism","arbitrum","bnb","bnbt","standard","defaultProvider","defineReadOnly","getStatic","resolveProperties","promises","checkProperties","properties","shallowCopy","opaque","bigint","boolean","_isFrozen","isFrozen","_deepCopy","deepCopy","Description","checkTopic","serializeTopics","getTime","stall","duration","PollableEvents","Event","_lastBlockNumber","_inflight","pollable","coinInfos","symbol","p2pkh","p2sh","prefix","ilk","bytes32ify","base58Encode","matcherIpfs","matchers","_parseString","_parseBytes","getIpfsLink","link","numPad","padded","bytesPad","encodeBytes","datas","byteCount","Resolver","formatter","supportsWildcard","_supportsEip2544","_fetch","parameters","parseBytes","_fetchBytes","_getAddress","coinType","hexBytes","coinInfo","callAddress","getAvatar","linkage","content","avatar","getText","scheme","owner","_resolvedAddress","addr","tokenId","tokenOwner","balance","metadataUrl","metadata","imageUrl","image","getContentHash","ipfs","ipns","swarm","skynet","urlSafe","keyBytes","defaultFormatter","nextPollId","BaseProvider","_events","_emitted","disableCcipRead","getFormatter","anyNetwork","detectNetwork","_networkPromise","_ready","knownNetwork","_maxInternalBlockNumber","_maxFilterBlockRange","_pollingInterval","_fastQueryDate","_network","ready","ccipReadFetch","urls","sender","errorMessages","href","errorPassThrough","response","status","statusCode","errorMessage","_getInternalBlockNumber","maxAge","_internalBlockNumber","internalBlockNumber","respTime","blockNumber","reqTime","checkInternalBlockNumber","perform","networkError","_setFastBlockNumber","poll","pollId","runners","pollingInterval","previousBlockNumber","eventBlockNumber","runner","minFromBlock","resetEventsBlock","polling","currentNetwork","_fastBlockNumber","_fastBlockNumberPromise","detectedNetwork","_poller","setInterval","_bootstrapPoll","clearInterval","_getFastBlockNumber","now","getBlockNumber","waitForTransaction","timeout","_waitForTransaction","replaceable","cancelFuncs","alreadyDone","minedHandler","lastBlockNumber","startBlock","scannedBlock","replaceHandler","mined","getBlockWithTransactions","ti","transactions","cancelled","replacement","_wrapTransaction","timer","unref","clearTimeout","_getBlockTag","getStorageAt","expectedHash","returnedHash","confirms","signedTransaction","hexTx","_getTransactionRequest","transactionRequest","_getFilter","_call","attempt","redirects","txSender","urlsOffset","urlsLength","urlsData","callbackSelector","extraData","ccipResult","_getBlock","blockHashOrBlockTag","includeTransactions","blockWithTxs","blockWithTransactions","oncePoll","transactionResponse","removed","filterLog","getEtherPrice","getResolver","currentName","_getResolver","addrData","lookupAddress","resolverAddr","nameOrAddress","resolverAddress","_startEvent","_stopEvent","stopped","eventTag","Formatter","formats","getDefaultFormats","bigNumber","allowNull","transactionIndex","uint256","creates","raw","receiptLog","arrayOf","logIndex","root","gasUsed","logsBloom","cumulativeGasUsed","effectiveGasPrice","parentHash","timestamp","difficulty","miner","allowFalsish","strict","_block","author","_difficulty","networkId","byzantium","checkKey","checkValue","nullValue","replaceValue","isCommunityResourcable","isCommunityResource","throttleMessage","showThrottleMessage","WS","WebSocket","NextId","WebSocketProvider","_wsReady","connection","websocket","onopen","_requests","payload","onmessage","messageEvent","request","action","_subs","subscription","processFunc","fauxPoll","_websocket","_detectNetwork","rid","jsonrpc","_subscribe","subIdPromise","_subIds","subId","emitReceipt","destroy","readyState","onerror","close","defaultApiKey","AlchemyWebSocketProvider","apiKey","host","allowGzip","throttleCallback","getHost","projectSecret","user","password","_super","getTransactionPostData","maxFeePerGs","storageKeys","getResult","throttleRetry","getJsonResult","checkLogTag","checkError","body","responseText","getBaseUrl","getUrl","query","baseUrl","getPostUrl","getPostData","apikey","fetch","post","procFunc","throttleSlotInterval","payloadStr","headers","txhash","postData","topic0","blocks","ethusd","getHistory","endBlock","startblock","endblock","timeStamp","checkNetworks","median","maxDelta","middle","serialize","nextRid","cancel","promise","getPromise","ForwardErrors","ForwardProperties","exposeDebugConfig","config","weight","getProcessFunc","configs","_highestBlockNumber","tally","normalizedTally","waitForSync","getRunner","currentBlockNumber","providerConfigs","configOrProvider","stallTimeout","priority","networkOrReady","shuffle","first","inflightWeight","staller","backend","waiting","race","errorCode","props","IpcProvider","defaultProjectId","InfuraWebSocketProvider","projectId","apiKeyObj","JsonRpcBatchProvider","_nextId","_pendingBatch","inflightRequest","_pendingBatchAggregator","batch","inflight","NodesmithProvider","defaultApplicationId","applicationId","loadBalancer","applicationSecretKey","getDefaultProvider","Web3Provider","errorGas","spelunk","requireData","getLowerCase","JsonRpcSigner","addressOrIndex","connectUnchecked","UncheckedJsonRpcSigner","_address","_index","accounts","sendUncheckedTransaction","fromAddress","estimate","hexlifyTransaction","messageData","_legacySignMessage","populated","unlock","_cache","_eventLoopCache","_uncachedDetectNetwork","serverError","getSigner","getUncheckedSigner","listAccounts","cache","prepareRequest","_startPending","_pendingFilter","pendingFilter","filterId","hashes","seq","allowExtra","allowed","StaticJsonRpcProvider","UrlJsonRpcProvider","buildWeb3LegacyFetcher","sendFunc","fetcher","jsonRpcFetchFunc","subprovider","buildEip1193Fetcher","sendAsync","shuffled","random","arrayifyInteger","unarrayifyInteger","_encode","_decodeChildren","childOffset","decoded","_decode","lengthLength","ripemd160","update","digest","sha256","sha512","computeHmac","algorithm","SupportedAlgorithm","globalThis","createCommonjsModule","fn","basedir","require","commonjsRequire","minimalisticAssert","equal","utils_1","utils","zero2","enc","utils_1$1","getNAF","naf","getJSF","k1","k2","jsf","m8","d1","d2","u1","u2","m14","m24","cachedProperty","obj","computer","intFromLE","assert$1","BaseCurve","conf","zero","two","pointFromJSON","gRed","_wnafT1","_wnafT2","_wnafT3","_wnafT4","_bitLength","adjustCount","redN","_maxwellTrick","BasePoint","curve","precomputed","point","validate","_fixedNafMul","doubles","_getDoubles","I","nafW","repr","jpoint","mixedAdd","points","toP","_wnafMul","nafPoints","_getNAFPoints","dblp","_wnafMulAdd","defW","coeffs","jacobianResult","wndWidth","comb","toJ","ja","jb","decodePoint","pointFromX","encodeCompressed","getX","getY","precompute","power","beta","_getBeta","_hasDoubles","dbl","inherits_browser","assert$2","ShortCurve","tinv","zeroA","threeA","endo","_getEndomorphism","_endoWnafT1","_endoWnafT2","short_1","Point","isRed","inf","JPoint","zOne","lambda","betas","_getEndoRoots","lambdas","basis","vec","_getEndoBasis","ntinv","prevR","aprxSqrt","y1","y2","len1","_endoSplit","v1","v2","c1","c2","p1","p2","q1","q2","ax","rhs","_endoWnafMulAdd","npoints","ncoeffs","fromJSON","pre","endoMul","obj2point","isInfinity","nx","ny","ys1","dyinv","mulAdd","jmulAdd","_precompute","negate","zinv","zinv2","ay","pz2","z2","s1","s2","h2","h3","nz","jx","jy","jz","jz4","jyd","jx2","jyd2","jyd4","t2","dny","_zeroDbl","_threeDbl","_dbl","xx","yy","yyyy","yyyy8","c8","gamma","alpha","beta4","beta8","ggamma8","jy2","jxd4","jyd8","trpl","zz","mm","ee","yyu4","kbase","z3","pz3","eqXToP","zs","xc","curve_1","short","edwards","curves_1","curves","PresetCurve","defineCurve","crash","HmacDRBG","predResist","outSize","minEntropy","hmacStrength","_reseed","reseedInterval","K","V","entropy","entropyEnc","nonceEnc","pers","persEnc","hmacDrbg","seed","_update","_hmac","kmac","reseed","addEnc","generate","assert$3","KeyPair","ec","priv","pub","_importPrivate","privEnc","_importPublic","pubEnc","fromPublic","fromPrivate","getPublic","getPrivate","derive","sign","verify","assert$4","Signature","_importDER","Position","place","getLength","buf","initial","octetLen","rmPadding","constructLength","octets","LN2","slen","toDER","backHalf","rand","assert$5","EC","nh","keyPair","keyFromPrivate","keyFromPublic","genKeyPair","drbg","ns2","_truncateToN","truncOnly","bkey","ns1","iter","kp","kpX","canonical","signature$1","sinv","recoverPubKey","isYOdd","isSecondKey","rInv","getKeyRecoveryParam","Q","Qprime","EC$1","elliptic","eddsa","_curve","getCurve","SigningKey","privateKey","_addPoint","p0","publicKey","signDigest","digestBytes","computeSharedSecret","otherKey","otherKeyPair","computePublicKey","_isSigningKey","recoverPublicKey","rs","compressed","signingKey","regexBytes","regexNumber","regexArray","_pack","tight","formatBytes32String","parseBytes32String","UnicodeNormalizationForm","Utf8ErrorReason","ignoreFunc","badCodepoint","BAD_PREFIX","UNEXPECTED_CONTINUE","OVERRUN","Utf8ErrorFuncs","ignore","OVERLONG","getUtf8CodePoints","onError","extraLength","overlongMask","nextChar","MISSING_CONTINUE","OUT_OF_RANGE","UTF16_SURROGATE","toUtf8Bytes","pair","escapeChar","_toEscapedUtf8String","codePoint","_toUtf8String","codePoints","toUtf8String","toUtf8CodePoints","TransactionTypes","handleAddress","handleNumber","transactionFields","maxLength","computeAddress","recoverAddress","formatNumber","accessSetify","storageKey","accessListify","localeCompare","formatAccessList","_serializeEip1559","_serializeEip2930","fieldInfo","_serialize","transactionType","_parseEipSignature","recid","rawTransaction","_parse","_parseEip2930","_parseEip1559","names","commify","suffix","formatted","formatUnits","unitName","parseUnits","formatEther","parseEther","ether","skipFetchSetup","credentials","redirect","referrer","fetchOptions","opts","arrayBuffer","statusMessage","statusText","bodyify","_fetchData","attemptLimit","throttleLimit","allow304","allowInsecureAuthentication","authorization","base64","reData","dataMatch","requestBody","requestMethod","flatHeaders","header","runningTimeout","runningFetch","location","tryAgain","retryAfter","fetchJson","updated","interval","retryLimit","onceBlock","Z","L","nn","X","rn","clear","delete","tn","U","O","S","M","H","R","getOwnPropertyDescriptor","E","F","T","en","revocable","revoke","proxy","J","G","W","ownKeys","getOwnPropertySymbols","getOwnPropertyNames","getOwnPropertyDescriptors","Number","deleteProperty","un","produce","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","op","$","an","createThunkMiddleware","extraArgument","_ref","dispatch","getState","thunk","withExtraArgument","__extends","extendStatics","__","__generator","trys","ops","verb","__spreadArray","il","__defProp","__defProps","defineProperties","__getOwnPropDescs","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","propertyIsEnumerable","__defNormalProp","__spreadValues","prop","_i","_c","__spreadProps","__async","__this","__arguments","throw","composeWithDevTools","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","__REDUX_DEVTOOLS_EXTENSION__","isPlainObject","proto","baseProto","hasMatchFunction","createAction","prepareAction","actionCreator","prepared","meta","MiddlewareArray","_this","species","prepend","EnhancerArray","freezeDraftable","curryGetDefaultMiddleware","middlewareArray","immutableCheck","serializableCheck","actionCreatorCheck","isBoolean","getDefaultMiddleware","configureStore","rootReducer","curriedGetDefaultMiddleware","_d","reducer","_e","middleware","_f","devTools","_g","preloadedState","_h","enhancers","finalMiddleware","middlewareEnhancer","finalCompose","trace","defaultEnhancers","storeEnhancers","composedEnhancer","executeReducerBuilderCallback","builderCallback","defaultCaseReducer","actionsMap","actionMatchers","builder","addCase","typeOrActionCreator","addMatcher","matcher","addDefaultCase","createReducer","initialState","mapOrBuilderCallback","getInitialState","finalActionMatchers","finalDefaultCaseReducer","isStateFunction","frozenInitialState_1","caseReducers","cr","previousState","caseReducer","draft","createSlice","_reducer","reducers","reducerNames","sliceCaseReducersByName","sliceCaseReducersByType","actionCreators","buildReducer","extraReducers","finalCaseReducers","actionMatchers_1","reducerName","prepareCallback","maybeReducerWithPrepare","prepare","actions","nanoid","commonProperties","RejectWithValue","FulfillWithMeta","miniSerializeError","simpleError","commonProperties_1","createAsyncThunk","createAsyncThunk2","typePrefix","payloadCreator","requestId","requestStatus","pending","serializeError","rejectedWithValue","aborted","AC","AbortController","class_1","signal","addEventListener","dispatchEvent","onabort","removeEventListener","throwIfAborted","abort","extra","abortReason","idGenerator","abortController","promise2","_b","finalAction","conditionResult","abortedPromise","err_1","getPendingMeta","rejectWithValue","fulfillWithValue","dispatchConditionRejection","unwrap","unwrapResult","withTypes","matches","isAnyOf","some","alm","queueMicrotask","createQueueWithTimer","notify","requestAnimationFrame","UNKNOWN_FUNCTION","createFrame","filename","lineno","colno","frame","function","in_app","chromeRegex","chromeEvalRegex","chromeStackParser","line","parts","exec","subMatch","__read","extractSafariExtensionDetails","geckoREgex","geckoEvalRegex","geckoStackParser","winjsRegex","winjsStackParser","opera10Regex","opera10StackParser","opera11Regex","opera11StackParser","isSafariExtension","isSafariWebExtension","exceptionFromError","ex","frames","parseStackFrames","exception","extractMessage","stacktrace","eventFromError","popSize","framesToPop","reactMinifiedRegexp","test","getPopSize","eventFromException","attachStacktrace","eventFromUnknownInput","syntheticException","event_id","eventFromMessage","eventFromString","isUnhandledRejection","is","domException","name_1","tags","__assign","__serialized__","frames_1","eventFromPlainObject","synthetic","frames_2","IS_DEBUG_BUILD","__SENTRY_DEBUG__","global","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","before","wrapper","__sentry_wrapped__","sentryWrapped","wrappedArguments","scope","addEventProcessor","mechanism","_oO","injectReportDialog","document","eventId","dsn","script","createElement","onLoad","onload","injectionPoint","head","appendChild","SeverityLevels","severityFromString","isSupportedSeverity","Breadcrumbs","_options","dom","history","sentry","xhr","addSentryBreadcrumb","addBreadcrumb","category","setupOnce","_consoleBreadcrumb","_innerDomBreadcrumb","handlerData","keyAttrs","serializeAttribute","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","breadcrumb","endTimestamp","__sentry_own_request__","__sentry_xhr__","status_code","fetchData","parsedLoc","parsedFrom","parsedTo","protocol","relative","Dedupe","addGlobalEventProcessor","getCurrentHub","currentEvent","getIntegration","previousEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_isSameMessageEvent","previousException","_getExceptionFromEvent","currentException","_isSameExceptionEvent","_shouldDropEvent","_previousEvent","currentFrames","_getFramesFromEvent","previousFrames","frameA","frameB","currentFingerprint","fingerprint","previousFingerprint","GlobalHandlers","_installFunc","_installGlobalOnErrorHandler","onunhandledrejection","_installGlobalOnUnhandledRejectionHandler","stackTraceLimit","installFunc","getHubAndAttachStacktrace","hub","column","ERROR_TYPES_RE","groups","_enhanceEventWithInitialFrame","_eventFromIncompleteOnError","addMechanismAndCapture","detail","ev","ev0","ev0s","ev0sf","handled","captureEvent","originalException","client","getClient","getOptions","LinkedErrors","_key","_limit","limit","linkedErrors","_walkErrorTree","__spread","_handler","DEFAULT_EVENT_TARGET","TryCatch","XMLHttpRequest","eventTarget","_wrapTimeFunction","_wrapRAF","_wrapXHR","eventTargetOption","_wrapEventTarget","original","originalCallback","handler","originalSend","xmlHttpRequestProps","wrapOptions","originalFunction","handleEvent","originalRemoveEventListener","wrappedEventHandler","originalEventHandler","UserAgent","navigator","userAgent","Referer","installedIntegrations","filterDuplicates","integrations","accIntegration","setupIntegrations","defaultIntegrations","userIntegrations","userIntegration","integrationsNames","alwaysLastToRun","getIntegrationsToSetup","integration","setupIntegration","ALREADY_SEEN_ERROR","BaseClient","backendClass","_integrations","_numProcessing","_backend","_dsn","captureException","_process","_getBackend","_captureEvent","captureMessage","promisedEvent","captureSession","session","_isEnabled","release","_sendSession","init","getDsn","getTransport","flush","_isClientDoneProcessing","clientFinished","transportFlushed","enabled","initialized","_updateSessionFromEvent","e_1","crashed","errored","exceptions","exceptions_1","__values","exceptions_1_1","e_1_1","sessionNonTerminal","sendSession","ticked","_prepareEvent","normalizeDepth","normalizeMaxBreadth","_applyClientOptions","_applyIntegrationsMetadata","finalScope","captureContext","applyToEvent","evt","sdkProcessingMetadata","_normalizeEvent","maxBreadth","normalized","breadcrumbs","contexts","baseClientNormalized","environment","dist","maxValueLength","integrationsArray","sdk","_sendEvent","sendEvent","_processEvent","finalEvent","beforeSend","sampleRate","transport","recordLostEvent","outcome","isTransaction","__sentry__","rv","nullErr","_ensureBeforeSendRv","processedEvent","getSession","createEnvelope","serializeEnvelope","envelope","serializedHeaders","itemHeaders","serializedPayload","getSdkMetadataForEnvelopeHeader","api","enhanceEventWithSdkInfo","sdkInfo","packages","createSessionEnvelope","sent_at","toISOString","tunnel","NoopTransport","BaseBackend","_transport","_setupTransport","_exception","_hint","_message","_level","_newTransport","_experiments","newTransport","env","eventType","transactionSampling","samplingMethod","rate","skippedNormalization","sample_rates","createEventEnvelope","_metadata","makePromiseBuffer","buffer","remove","task","taskProducer","drain","counter","capturedSetTimeout","disabledUntil","limits","isRateLimited","updateRateLimits","e_2","updatedRateLimits","rateLimitHeader","retryAfterHeader","headerDelay","delay","e_2_1","headerDate","parseRetryAfterHeader","eventStatusFromHttpCode","createTransport","makeRequest","bufferSize","rateLimits","envCategory","getEnvelopeType","getRateLimitReason","cachedFetchImpl","getNativeFetchImplementation","fetchImpl","sandbox","hidden","contentWindow","removeChild","sendReport","sendBeacon","supports","fetch_1","keepalive","requestTypeToCategory","ty","BaseTransport","_buffer","_rateLimits","_outcomes","_api","sendClientReports","visibilityState","_flushOutcomes","_sendRequest","useEnvelope","JSONStringifyError","newErr","innerErr","req","eventToSentryRequest","sessionToSentryRequest","outcomes","discarded_events","createClientReportEnvelope","quantity","_handleResponse","requestType","_isRateLimited","_disabledUntil","FetchTransport","sentryRequest","originalPayload","referrerPolicy","fetchParameters","XHRTransport","onreadystatechange","getResponseHeader","open","setRequestHeader","BrowserBackend","nativeFetch","transportOptions","requestOptions","_reject","makeNewXHRTransport","BrowserClient","showReportDialog","platform","window_1","SENTRY_RELEASE","autoSessionTracking","clientClass","getScope","initialScope","bindClient","initAndBind","startSessionOnHub","startSessionTracking","getUser","lastEventId","startSession","ignoreDuration","API","_dsnObject","_tunnel","forceEnvelope","getBaseApiEndpoint","getStoreEndpoint","getStoreEndpointWithUrlEncodedAuth","getEnvelopeEndpointWithUrlEncodedAuth","initAPIDetails","initDsn","port","_getIngestEndpoint","_encodedAuth","sentry_key","sentry_version","_getEnvelopeEndpoint","getReportDialogEndpoint","dsnLike","dialogOptions","endpoint","encodedOptions","encodeURIComponent","email","originalFunctionToString","FunctionToString","context","DEFAULT_IGNORE_ERRORS","InboundFilters","self_1","clientOptions","internalOptions","allowUrls","whitelistUrls","denyUrls","blacklistUrls","ignoreErrors","ignoreInternal","_mergeOptions","_isSentryError","oO","_getPossibleEventMessages","pattern","_isIgnoredError","_getEventFilterUrl","_isDeniedUrl","_isAllowedUrl","_getLastValidUrl","SDK_VERSION","Session","sid","startingTime","time","started","ipAddress","ip_address","did","username","attrs","user_agent","Hub","_version","_stack","getStackTop","isOlderThan","pushScope","getStack","popScope","withScope","_lastEventId","finalHint","_invokeClient","beforeBreadcrumb","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","setTags","setExtras","extras","setTag","setExtra","setContext","configureScope","oldHub","makeMain","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","endSession","_sendSessionUpdate","layer","setSession","currentSession","carrier","getMainCarrier","__SENTRY__","extensions","registry","getHubFromCarrier","setHubOnCarrier","hasHubOnCarrier","activeDomain","active","registryHubTopStack","_Oo","getHubFromActiveDomain","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","_sdkProcessingMetadata","newScope","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","setLevel","setTransactionName","setTransaction","setSpan","span","getSpan","updatedScope","maxCrumbs","clearBreadcrumbs","getTraceContext","transactionName","_applyFingerprint","_notifyEventProcessors","getGlobalEventProcessors","setSDKProcessingMetadata","newData","processors","processor","final","callOnHub","FINISH_REASON_TAG","IDLE_TRANSACTION_FINISH_REASONS","sample","samplingContext","sampled","setMetadata","tracesSampler","parentSampled","tracesSampleRate","isValidSampleRate","startIdleTransaction","transactionContext","idleTimeout","onScope","initSpanRecorder","maxSpans","SpanRecorder","maxlen","spans","_maxlen","spanRecorder","Span","spanContext","traceId","spanId","startTimestamp","parentSpanId","description","startChild","childSpan","setData","setStatus","setHttpStatus","httpStatus","spanStatus","spanStatusfromHttpCode","isSuccess","toTraceparent","sampledString","toContext","updateWithContext","parent_span_id","span_id","trace_id","start_timestamp","Transaction","_measurements","_hub","_trimEnd","trimEnd","setName","setMeasurements","measurements","newMetadata","finishedSpans","DEFAULT_IDLE_TIMEOUT","IdleTransactionSpanRecorder","_pushActivity","_popActivity","transactionSpanId","IdleTransaction","_idleHub","_idleTimeout","_onScope","activities","_heartbeatCounter","_finished","_beforeFinishCallbacks","clearActiveTransaction","_initTimeout","keepSpan","registerBeforeFinishCallback","_pingHeartbeat","end_1","_beat","heartbeatString","_prevHeartbeatString","hasTracingEnabled","maybeOptions","getActiveTransaction","maybeHub","msToSec","secToMs","Severity","htmlTreeAsString","elem","currentElem","height","sepLength","nextStr","_htmlElementAsString","parentNode","el","className","classes","attr","tagName","keyAttrPairs","keyAttr","getAttribute","keyAttrPair","allowedAttrs","getLocationHref","DSN_REGEX","dsnToString","withPassword","pass","dsnFromComponents","makeDsn","projectMatch","dsnFromString","isValidProtocol","validateDsn","SentryError","_newTarget","fallbackGlobalObject","getGlobalObject","getGlobalSingleton","creator","lastHref","handlers","instrumented","instrument","originalConsoleMethod","triggerHandlers","instrumentConsole","triggerDOMHandler","globalDOMEventHandler","makeDOMEventHandler","originalAddEventListener","handlers_1","__sentry_instrumentation_handlers__","handlerForType","refCount","handlers_2","instrumentDOM","xhrproto","originalOpen","xhrInfo","onreadystatechangeHandler","readyStateArgs","instrumentXHR","originalFetch","getFetchMethod","getFetchUrl","instrumentFetch","oldOnPopState","onpopstate","historyReplacementFunction","originalHistoryFunction","instrumentHistory","_oldOnErrorHandler","_oldOnUnhandledRejectionHandler","addInstrumentationHandler","fetchArgs","Request","debounceTimerID","lastCapturedEvent","globalListener","isContentEditable","shouldSkipDOMEvent","previous","shouldShortcircuitPreviousDebounce","objectToString","isError","wat","isInstanceOf","isBuiltin","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isEvent","isElement","Element","isRegExp","isThenable","Boolean","isSyntheticEvent","PREFIX","CONSOLE_LEVELS","consoleSandbox","originalConsole","wrappedLevels","originalWrappedFunc","__sentry_original__","makeLogger","disable","uuid4","crypto","msCrypto","getRandomValues","Uint16Array","pad","parseUrl","getFirstException","getEventDescription","firstException","addExceptionTypeValue","addExceptionMechanism","newMechanism","currentMechanism","mergedData","stripUrlQueryAndFragment","urlPath","checkOrSetAlreadyCaught","__sentry_captured__","isNodeEnv","__SENTRY_BROWSER_BUNDLE__","process","dynamicRequire","maxProperties","Infinity","ERROR","normalizeToSize","maxSize","encodeURI","utf8Length","memo","hasWeakSet","WeakSet","inner","memoBuilder","memoize","unmemoize","valueWithToJSON","includes","stringified","stringifyValue","startsWith","numAdded","visitable","visitKey","visitValue","replacementFactory","wrapped","markFunctionWrapped","addNonEnumerableProperty","getOriginalFunction","urlEncode","convertToPlainObject","newObj","getOwnProperties","event_1","serializeEventTarget","currentTarget","CustomEvent","extractedProps","extractExceptionKeysForMessage","includedKeys","serialized","dropUndefinedKeys","createStackParser","parsers","sortedParsers","skipFirst","sortedParsers_1","sortedParsers_1_1","parser","stripSentryFramesAndReverse","localStack","firstFrameFunction","lastFrameFunction","defaultFunctionName","getFunctionName","truncate","substr","safeJoin","delimiter","isMatchingPattern","supportsFetch","Headers","Response","isNativeFetch","supportsNativeFetch","doc","supportsReferrerPolicy","supportsHistory","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","resolvedSyncPromise","SyncPromise","rejectedSyncPromise","executor","_state","_handlers","_resolve","_setResult","_executeHandlers","cachedHandlers","onfulfilled","onrejected","finally","onfinally","isRejected","dateTimestampSource","nowSeconds","platformPerformance","performance","getNodePerformance","timeOrigin","getBrowserPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","timestampWithMs","browserPerformanceTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","navigationStartDelta","int_1","writeUint16BE","writeUint16LE","readInt32BE","readUint32BE","readInt32LE","readUint32LE","writeUint32BE","writeUint32LE","writeUint64BE","writeUint64LE","readInt16BE","readUint16BE","readInt16LE","readUint16LE","writeInt16BE","writeInt16LE","writeInt32BE","writeInt32LE","readInt64BE","readUint64BE","readInt64LE","readUint64LE","writeInt64BE","writeInt64LE","readUintBE","readUintLE","writeUintBE","isSafeInteger","writeUintLE","readFloat32BE","DataView","byteOffset","getFloat32","readFloat32LE","readFloat64BE","getFloat64","readFloat64LE","writeFloat32BE","setFloat32","writeFloat32LE","writeFloat64BE","setFloat64","writeFloat64LE","binary_1","wipe_1","core","j0","j1","j2","j3","j4","j5","j6","j7","j8","j9","j10","j11","j12","j13","j14","j15","x0","x3","x4","x5","x6","x7","x8","x9","x10","x11","x12","x13","x14","x15","streamXOR","dst","nonceInplaceCounterLength","nc","counterLength","incrementCounter","wipe","stream","chacha_1","poly1305_1","constant_time_1","ZEROS","ChaCha20Poly1305","nonceLength","tagLength","seal","plaintext","associatedData","authKey","resultLength","_authenticate","subarray","sealed","calculatedTag","clean","tagOut","ciphertext","Poly1305","compare","select","subject","resultIfOne","resultIfZero","lessOrEqual","isSerializableHash","saveState","restoreState","cleanSavedState","hmac_1","HKDF","_counter","_hash","_info","okm","hmac","HMAC","digestLength","_bufpos","_fillBuffer","ctr","expand","hash_1","_inner","_outer","blockSize","_innerKeyedState","_outerKeyedState","savedState","al","bl","rotl","rotr","isFinite","MAX_SAFE_INTEGER","DIGEST_LENGTH","_r","_pad","_leftover","_fin","t3","t4","t5","t6","t7","_blocks","mpos","hibit","h0","h1","h4","h5","h6","h7","h8","h9","r0","r1","r3","r4","r5","r6","r7","r8","r9","d0","d3","d4","d5","d6","d7","d8","d9","mac","macpos","want","oneTimeAuth","randomStringForEntropy","randomString","randomUint32","randomBytes","defaultRandomSource","system_1","prng","SystemRandomSource","ALPHANUMERIC","charset","charsLen","maxByte","randomByte","BrowserRandomSource","isAvailable","isInstantiated","browserCrypto","_crypto","NodeRandomSource","nodeCrypto","browser_1","node_1","_source","SHA256","Int32Array","_temp","_bufferLength","_bytesHashed","_initState","dataLength","dataPos","hashBlocks","bytesHashed","bitLenHi","bitLenLo","padLength","bufferLength","random_1","gf","Float64Array","_9","_121665","car25519","sel25519","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","t19","t20","t21","t22","t23","t24","t25","t26","t27","t28","t29","t30","b10","b11","b12","b13","b14","b15","square","scalarMult","unpack25519","x32","x16","inp","inv25519","pack25519","scalarMultBase","generateKeyPairFromSeed","secretKey","mySecretKey","theirPublicKey","rejectZero","VersionUpgrade","getVersionUpgrade","major","MAJOR","NONE","minor","MINOR","patch","PATCH","strictUriEncode","decodeComponent","splitOnFirst","filterObject","encodeFragmentIdentifier","validateArrayFormatSeparator","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","accumulator","isEncodedArray","newValue","arrayValue","parserForArrayFormat","shouldFilter","skipNull","skipEmptyString","keyValueSep","encoderForArrayFormat","objectCopy","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","pick","exclude","exclusionFilter","waku","publish","batchPublish","subscribe","batchSubscribe","unsubscribe","batchUnsubscribe","batchFetchMessages","irn","iridium","tslib_1","__exportStar","ONE_THOUSAND","ONE_HUNDRED","ONE_YEAR","FOUR_WEEKS","THREE_WEEKS","TWO_WEEKS","ONE_WEEK","THIRTY_DAYS","SEVEN_DAYS","FIVE_DAYS","THREE_DAYS","ONE_DAY","TWENTY_FOUR_HOURS","TWELVE_HOURS","SIX_HOURS","THREE_HOURS","ONE_HOUR","SIXTY_MINUTES","THIRTY_MINUTES","TEN_MINUTES","FIVE_MINUTES","ONE_MINUTE","SIXTY_SECONDS","THIRTY_SECONDS","TEN_SECONDS","FIVE_SECONDS","ONE_SECOND","IWatch","fromMiliseconds","toMiliseconds","constants_1","seconds","miliseconds","Watch","timestamps","elapsed","getFromWindow","getFromWindowOrThrow","getLocalStorage","getLocalStorageOrThrow","getCrypto","getCryptoOrThrow","getLocation","getLocationOrThrow","getNavigator","getNavigatorOrThrow","getDocument","getDocumentOrThrow","window_getters_1","loc","getWindowMetadataOfAny","metaTags","getElementsByTagName","attributes","title","getName","origin","icons","rel","absoluteHref","pathname","absoluteUrl","getIcons","_EventEmitter","subClass","superClass","supportedChainIds","_proto","emitError","EventEmitter","ConnectorEvent","weekdays","months","ordinal","utcOffset","date","year","month","ms","locale","$L","utc","$u","$x","$offset","$d","NaN","UTC","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","isSame","startOf","endOf","isAfter","isBefore","$g","unix","valueOf","toDate","$locale","weekStart","$set","daysInMonth","subtract","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","toUTCString","extend","$i","isDayjs","Ls","future","past","hh","dd","MM","fromToBase","relativeTime","thresholds","rounding","toNow","fromNow","updateLocale","b64","lens","getLens","validLen","placeHoldersLen","toByteArray","Arr","_byteLength","curByte","revLookup","fromByteArray","uint8","extraBytes","maxChunkLength","len2","encodeChunk","ALPHABET","ALPHABET_MAP","polymodStep","prefixChk","chk","__decode","LIMIT","lowered","uppered","wordChars","convert","inBits","outBits","maxV","decodeUnsafe","toWordsUnsafe","toWords","fromWordsUnsafe","fromWords","GLOBAL","Big","MAX_DP","MAX_POWER","NAME","INVALID","INVALID_DP","INVALID_RM","DIV_BY_ZERO","UNDEFINED","NUMERIC","dp","rm","more","RM","NE","PE","isneg","yc","DP","bt","ri","bz","ai","rl","qc","qi","minus","xlty","plus","xe","ye","ygtx","times","toExponential","toFixed","toPrecision","sd","_Big_","nl","search","ieee754","customInspectSymbol","SlowBuffer","alloc","INSPECT_MAX_BYTES","K_MAX_LENGTH","createBuffer","RangeError","encodingOrOffset","encoding","isEncoding","actual","write","ArrayBuffer","isView","arrayView","isInstance","fromArrayBuffer","fromArrayLike","fromArrayView","SharedArrayBuffer","isBuffer","checked","numberIsNaN","toPrimitive","assertSize","mustMatch","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","remaining","strLen","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","base64Write","ucs2Write","units","utf16leToBytes","firstByte","bytesPerSequence","secondByte","thirdByte","fourthByte","tempCodePoint","MAX_ARGUMENTS_LENGTH","decodeCodePointsArray","kMaxLength","TYPED_ARRAY_SUPPORT","foo","typedArraySupport","poolSize","allocUnsafeSlow","_isBuffer","list","swap16","swap32","swap64","toLocaleString","equals","thisStart","thisEnd","thisCopy","targetCopy","_arr","hexSliceLookupTable","checkOffset","ext","checkInt","wrtBigUInt64LE","checkIntBI","wrtBigUInt64BE","checkIEEE754","writeFloat","littleEndian","noAssert","writeDouble","newBuf","readUIntLE","readUIntBE","readUint8","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readBigUInt64LE","defineBigIntMethod","validateNumber","boundsError","readBigUInt64BE","readIntLE","readIntBE","readInt8","readBigInt64LE","readBigInt64BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUint8","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeBigUInt64LE","writeBigUInt64BE","writeIntLE","writeIntBE","writeInt8","writeBigInt64LE","writeBigInt64BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","copyWithin","sym","getMessage","Base","addNumericalSeparator","ERR_OUT_OF_RANGE","checkBounds","ERR_INVALID_ARG_TYPE","ERR_BUFFER_OUT_OF_BOUNDS","received","INVALID_BASE64_RE","leadSurrogate","base64clean","table","i16","BufferBigIntNotDefined","__self__","DOMException","support","Blob","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","append","bodyUsed","fileReaderReady","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","view","Body","_initBody","_bodyInit","_bodyText","isPrototypeOf","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","readAsText","readBlobAsText","readArrayBufferAsText","formData","oldValue","entries","methods","upcased","normalizeMethod","decodeURIComponent","parseHeaders","rawHeaders","bodyInit","ok","redirectStatuses","abortXhr","getAllResponseHeaders","responseURL","ontimeout","withCredentials","responseType","polyfill","ponyfill","requiredArgs","required","argStr","globalScope","MAX_DIGITS","Decimal","precision","toExpNeg","toExpPos","external","decimalError","invalidArgument","exponentOutOfRange","mathfloor","mathpow","isDecimal","BASE","MAX_E","xd","yd","Ctor","pr","checkInt32","digitsToString","indexOfLastWord","getZeroString","absoluteValue","comparedTo","xdL","ydL","decimalPlaces","dividedBy","divide","dividedToIntegerBy","idiv","exponent","getBase10Exponent","greaterThan","greaterThanOrEqualTo","isint","isPositive","ispos","lessThan","lessThanOrEqualTo","logarithm","wpr","ln","modulo","naturalExponential","exp","naturalLogarithm","negated","squareRoot","rL","toDecimalPlaces","todp","toInteger","toint","toPower","yIsInt","yn","toSignificantDigits","tosd","multiplyInteger","aL","bL","prod","prodL","qd","rem","remL","rem0","xi","xL","yd0","yL","yz","denominator","sum","getLn10","c0","numerator","parseDecimal","rd","doRound","xdi","xLTy","isExp","ps","ROUND_UP","ROUND_DOWN","ROUND_CEIL","ROUND_FLOOR","ROUND_HALF_UP","ROUND_HALF_DOWN","ROUND_HALF_EVEN","ROUND_HALF_CEIL","ROUND_HALF_FLOOR","token","singleMatcher","multiMatcher","decodeComponents","tokens","encodedURI","replaceMap","customDecodeURIComponent","dijkstra","single_source_shortest_paths","graph","predecessors","costs","closest","cost_of_s_to_u","adjacent_nodes","cost_of_s_to_u_plus_cost_of_e","cost_of_s_to_v","PriorityQueue","make","empty","cost","extract_shortest_path_from_predecessor_list","nodes","find_path","queue","sorter","default_sorter","second","Events","EE","emitter","_eventsCount","clearEvent","eventNames","prefixed","ReflectOwnKeys","ReflectApply","receiver","NumberIsNaN","errorListener","eventTargetAgnosticAddListener","flags","addErrorHandlerIfEventEmitter","_maxListeners","defaultMaxListeners","checkListener","_getMaxListeners","that","_addListener","existing","newListener","warned","onceWrapper","fired","wrapFn","_onceWrap","evlistener","unwrapListeners","arrayClone","wrapListener","setMaxListeners","getMaxListeners","doError","er","prependListener","prependOnceListener","originalListener","spliceOne","rawListeners","uri","defaultIsExtractableFile","extractFiles","isExtractableFile","files","addFile","paths","file","storedPaths","FileList","ReactNativeFile","File","predicate","isArr","__importDefault","__esModule","extract_files_1","form_data_1","defaultJsonSerializer_1","isExtractableFileEnhanced","pipe","variables","operationName","jsonSerializer","defaultJsonSerializer","accu","currentQuery","default","GraphQLWebSocketClient","types_1","_1","PING","PONG","SUBSCRIBE","COMPLETE","GraphQLWebSocketMessage","_type","_payload","_id","socket","onInit","onAcknowledged","onPing","onPong","socketState","acknowledged","lastRequestId","subscriptions","ConnectionInit","onclose","parseMessage","Pong","subscriber","ClientError","makeSubscribe","subscriptionId","Complete","rawRequest","rawSubscribe","resolveRequestDocument","ping","Ping","PROTOCOL","__createBinding","__setModuleDefault","__importStar","__rest","gql","batchRequests","GraphQLClient","cross_fetch_1","CrossFetch","parser_1","printer_1","createRequestBody_1","parseArgs_1","resolveHeaders","oHeaders","HeadersInstanceToPlainObject","queryCleanner","queryParams","buildGetQueryParams","queryOrOptions","requestHeaders","rawRequestOptions","parseRawRequestArgs","callOrIdentity","documentOrOptions","parseRequestArgs","documentsOrOptions","batchRequestOptions","queries","parseBatchRequestArgs","documents","setHeaders","setHeader","setEndpoint","isBathchingQuery","successfullyReceivedData","successfullyPassedErrorPolicy","headers_1","status_1","rest","errorResult","errorPolicy","urlOrOptions","parseRequestExtendedArgs","contentType","extractOperationName","operationDefinitions","definitions","definition","operationName_1","print","parseRawRequestExtendedArgs","parseBatchRequestsExtendedArgs","chunks","chunk","graphql_ws_1","captureStackTrace","common","sha","ripemd","sha1","sha224","sha384","BlockHash","pendingTotal","_delta8","_delta32","join32","_digest","Hmac","Hash","outer","rotl32","sum32","sum32_3","sum32_4","RIPEMD160","Kh","Ah","Bh","Ch","Dh","Eh","rh","sh","toHex32","split32","shaCommon","sum32_5","ft_1","sha1_K","SHA1","SHA224","ch32","maj32","s0_256","s1_256","g0_256","g1_256","sha256_K","T1","T2","SHA512","SHA384","rotr64_hi","rotr64_lo","shr64_hi","shr64_lo","sum64","sum64_hi","sum64_lo","sum64_4_hi","sum64_4_lo","sum64_5_hi","sum64_5_lo","sha512_K","ch64_hi","xh","xl","yh","yl","zh","ch64_lo","zl","maj64_hi","maj64_lo","s0_512_hi","s0_512_lo","s1_512_hi","s1_512_lo","g0_512_hi","g0_512_lo","g1_512_hi","g1_512_lo","_prepareBlock","c0_hi","c0_lo","c1_hi","c1_lo","c2_hi","c2_lo","c3_hi","c3_lo","ah","bh","ch","cl","dh","dl","eh","fh","fl","gh","gl","hl","c4_hi","c4_lo","T1_hi","T1_lo","T2_hi","T2_lo","rotr32","p32","isSurrogatePair","htonl","zero8","invariant","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","TYPE_STATICS","getStatics","isMemo","ForwardRef","render","Memo","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","descriptor","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","INPUT_ERROR","WINDOW","JS_SHA3_NO_WINDOW","WEB_WORKER","JS_SHA3_NO_NODE_JS","versions","COMMON_JS","JS_SHA3_NO_COMMON_JS","AMD","ARRAY_BUFFER","JS_SHA3_NO_ARRAY_BUFFER","HEX_CHARS","CSHAKE_PADDING","SHIFT","RC","BITS","SHAKE_BITS","OUTPUT_TYPES","CSHAKE_BYTEPAD","JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW","createOutputMethod","outputType","Keccak","createShakeOutputMethod","outputBits","createCshakeOutputMethod","createKmacOutputMethod","createOutputMethods","createMethod","algorithms","bytepad","Kmac","methodNames","methodName","newMethodName","finalized","blockCount","outputBlocks","notString","lastByteIndex","encodeString","strs","paddingBytes","finalize","Uint32Array","c3","c4","c5","c6","c7","c9","b16","b17","b18","b19","b20","b21","b22","b23","b24","b25","b26","b27","b28","b29","b30","b31","b32","b33","b34","b35","b36","b37","b38","b39","b40","b41","b42","b43","b44","b45","b46","b47","b48","b49","__kMaxLength","__zero","__isOneDigitInt","__oneDigit","__fromDouble","__fromString","SyntaxError","__toPrimitive","toDebugString","__toStringBasePowerOfTwo","__toStringGeneric","__unsignedDigit","__digit","__clz30","__decideRounding","__kBitConversionInts","__kBitConversionDouble","__copy","__absoluteSubOne","__trim","__absoluteAddOne","unaryMinus","__kMaxLengthBits","__initializeDigits","__setDigit","multiply","__clzmsd","__multiplyAccumulate","__absoluteCompare","__absoluteDivSmall","__absoluteDivLarge","__absoluteModSmall","__absoluteAdd","__absoluteSub","__rightShiftByAbsolute","__leftShiftByAbsolute","__compareToBigInt","__absoluteAnd","__absoluteOr","__absoluteAndNot","__absoluteXor","__truncateToNBits","__truncateAndSubFromPowerOfTwo","__toNumeric","__isBigInt","__compare","EQ","__equalToNumber","__isWhitespace","__kMaxBitsPerChar","__kBitsPerCharTableMultiplier","__kBitsPerCharTableShift","__fillFromParts","__inplaceMultiplyAdd","__kConversionChars","exponentiate","__halfDigit","__setHalfDigit","quotient","remainder","__unequalSign","__absoluteGreater","__absoluteLess","__compareToDouble","__comparisonResultToBool","__compareToNumber","__setDigitGrow","__imul","__halfDigitLength","__clz15","__specialLeftShift","__internalMultiplyAdd","__inplaceSub","__inplaceAdd","__inplaceRightShift","__toShiftAmount","__rightShiftByMaximum","__kBitConversionBuffer","tracking","ls","localStorage","accessor","getItem","setItem","removeItem","store","rawValue","change","attachEvent","onstorage","ns","_dereq_","scheduleDrain","draining","Mutation","MutationObserver","WebKitMutationObserver","called","observer","nextTick","element","createTextNode","observe","characterData","setImmediate","MessageChannel","scriptEl","documentElement","channel","port1","port2","postMessage","oldQueue","immediate","INTERNAL","REJECTED","FULFILLED","PENDING","safelyResolveThenable","QueueItem","onFulfilled","onRejected","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","returnValue","getThen","thenable","onSuccess","tryToUnwrap","tryCatch","iterable","allResolver","resolveFromAll","outValue","_typeof","_classCallCheck","instance","Constructor","getIDB","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","idb","isIndexedDBValid","isSafari","openDatabase","hasFetch","IDBKeyRange","createBlob","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","getBlob","Promise$1","executeCallback","executeTwoCallbacks","errorCallback","normalizeKey","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_binStringToArrayBuffer","bin","_checkBlobSupportWithoutCaching","txn","objectStore","put","preventDefault","stopPropagation","oncomplete","matchedChrome","matchedEdge","_checkBlobSupport","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","createDbContext","db","dbArgs","openreq","onupgradeneeded","createObjectStore","storeName","oldVersion","newVersion","onsuccess","onversionchange","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","contains","isDowngrade","isUpgrade","incVersion","_encodeBlob","onloadend","__local_forage_encoded_blob","readAsBinaryString","_decodeBlob","encodedBlob","_isEncodedBlob","_fullyReady","_initReady","_dbInfo","_tryReconnect","forages","forage","createTransaction","retries","_initStorage","initPromises","_defaultConfig","iterate","openCursor","iterationNumber","cursor","blobSupport","advanced","openKeyCursor","advance","dropInstance","currentConfig","dbPromise","dropObjectPromise","deleteObjectStore","_forage2","dropDBPromise","deleteDatabase","onblocked","asyncStorage","_driver","_support","isWebSQLValid","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferToString","base64String","valueType","marker","fileReader","deserialize","blobType","Int8Array","Uint8ClampedArray","Int16Array","Float32Array","localforageSerializer","createDbTable","executeSql","_initStorage$1","dbInfoPromise","serializer","tryExecuteSql","sqlStatement","SYNTAX_ERR","rows","getItem$1","iterate$1","_setItem","retriesLeft","originalValue","sqlError","QUOTA_ERR","setItem$1","removeItem$1","clear$1","length$1","key$1","keys$1","getAllStoreNames","storeNames","dropInstance$1","operationInfo","dropTable","operations","webSQLStorage","isLocalStorageValid","_getKeyPrefix","defaultConfig","keyPrefix","checkIfLocalStorageThrows","localStorageTestKey","_isLocalStorageUsable","_initStorage$2","clear$2","getItem$2","iterate$2","keyPrefixLength","key$2","keys$2","itemKey","length$2","removeItem$2","setItem$2","dropInstance$2","localStorageWrapper","sameValue","searchElement","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","LocalForage","driverTypeKey","driverName","defineDriver","_config","_driverSet","_initDriver","_wrapLibraryMethodsWithReady","setDriver","driverObject","complianceError","driverMethods","driverMethodName","configureMissingMethods","methodNotImplementedFactory","_len","optionalDriverMethod","setDriverSupport","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","_extend","initDriver","currentDriverIndex","driverPromiseLoop","oldDriverSetDone","libraryMethodsAndProperties","createInstance","localforage_js","getNative","hashClear","hashDelete","hashGet","hashHas","hashSet","entry","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","setCacheAdd","setCacheHas","SetCache","__data__","stackClear","stackDelete","stackGet","stackHas","stackSet","Stack","WeakMap","setter","iteratee","resIndex","baseIndexOf","comparator","baseTimes","isArguments","isIndex","isTypedArray","inherited","isArg","isBuff","isType","skipIndexes","initAccum","reAsciiWord","baseEach","collection","baseForOwn","createBaseEach","fromIndex","fromRight","arrayPush","isFlattenable","baseFlatten","isStrict","baseFor","createBaseFor","castPath","toKey","keysFunc","symbolsFunc","getRawTag","symToStringTag","baseFindIndex","baseIsNaN","strictIndexOf","baseGetTag","isObjectLike","baseIsEqualDeep","baseIsEqual","bitmask","customizer","equalArrays","equalByTag","equalObjects","getTag","argsTag","arrayTag","objectTag","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","matchData","noCustomizer","objValue","srcValue","COMPARE_PARTIAL_FLAG","isFunction","isMasked","isObject","toSource","reIsHostCtor","funcProto","objectProto","funcToString","reIsNative","isLength","typedArrayTags","baseMatches","baseMatchesProperty","identity","isPrototype","nativeKeys","isArrayLike","baseIsMatch","getMatchData","matchesStrictComparable","hasIn","isKey","isStrictComparable","arrayMap","baseGet","baseIteratee","baseMap","baseSortBy","baseUnary","compareMultiple","iteratees","orders","nativeCeil","nativeMax","comparer","isSymbol","symbolProto","symbolToString","baseToString","trimmedEndIndex","reTrimStart","arrayIncludes","arrayIncludesWith","cacheHas","createSet","setToArray","isCommon","seen","computed","seenIndex","stringToPath","valIsDefined","valIsNull","valIsReflexive","valIsSymbol","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","compareAscending","objCriteria","criteria","othCriteria","ordersLength","coreJsData","arrayAggregator","baseAggregator","initializer","eachFunc","arrayReduce","deburr","reApos","baseRange","isIterateeCall","toFinite","noop","deburrLetter","basePropertyOf","arraySome","isPartial","othLength","arrStacked","othStacked","arrValue","othValue","compared","othIndex","mapToArray","symbolValueOf","stacked","getAllKeys","objProps","objLength","objStacked","skipCtor","objCtor","othCtor","freeGlobal","baseGetAllKeys","getSymbols","isKeyable","baseIsNative","getValue","nativeObjectToString","isOwn","unmasked","arrayFilter","stubArray","nativeGetSymbols","mapTag","promiseTag","weakMapTag","dataViewTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","ctorString","hasFunc","reHasUnicodeWord","nativeCreate","spreadableSymbol","isConcatSpreadable","reIsUint","reIsDeepProp","reIsPlainProp","maskSrcKey","uid","IE_PROTO","assocIndexOf","getMapData","overArg","freeExports","nodeType","freeModule","freeProcess","nodeUtil","binding","freeSelf","pairs","LARGE_ARRAY_SIZE","memoizeCapped","rePropName","reEscapeChar","quote","subString","reWhitespace","rsDingbatRange","rsLowerRange","rsUpperRange","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsModifier","rsOptVar","rsSeq","rsEmoji","reUnicodeWord","baseSlice","guard","nativeMin","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","leadingEdge","timerExpired","shouldInvoke","timeSinceLastCall","trailingEdge","timeWaiting","remainingWait","debounced","isInvoking","reLatin","reComboMark","baseAssignValue","createAggregator","groupBy","baseHasIn","hasPath","baseIsArguments","stubFalse","baseKeys","baseIsTypedArray","nodeIsTypedArray","kebabCase","createCompounder","arrayLikeKeys","memoized","Cache","baseOrderBy","baseProperty","basePropertyDeep","createRange","debounce","INFINITY","baseTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","isBinary","baseUniq","asciiWords","hasUnicodeWord","unicodeWords","setTheme","themes","children","forcedTheme","disableTransitionOnChange","enableSystem","enableColorScheme","defaultTheme","attribute","classList","setAttribute","removeAttribute","style","colorScheme","matchMedia","theme","resolvedTheme","systemTheme","dangerouslySetInnerHTML","__html","getComputedStyle","__NEXT_P","ChainId","TradeType","Rounding","_obj","_obj1","SolidityType","_obj2","FACTORY_ADDRESS_MAP","_define_property","BSC","BSC_TESTNET","INIT_CODE_HASH_MAP","MINIMUM_LIQUIDITY","JSBI","ZERO","TWO","THREE","FIVE","TEN","_100","FEES_NUMERATOR","FEES_DENOMINATOR","SOLIDITY_TYPE_MAXIMA","CAN_SET_PROTOTYPE","InsufficientReservesError","Error1","_inherits","_create_super","_class_call_check","isInsufficientReservesError","_assert_this_initialized","_instanceof","_wrap_native_super","InsufficientInputAmountError","isInsufficientInputAmountError","validateSolidityTypeInstance","solidityType","validateAndParseAddress","checksummedAddress","parseBigintIsh","bigintIsh","sortedInsert","isFull","Currency","ETHER","Token","projectLink","sortsBefore","currencyEquals","currencyA","currencyB","WETH","WNATIVE","desc","_get","RoundingMode","_Decimal","_Big","toSignificantRounding","toFixedRounding","Fraction","invert","otherParsed","equalTo","toSignificant","significantDigits","groupSeparator","_create_class","CurrencyAmount","currency","amount","parsedAmount","_get_prototype_of","toExact","TokenAmount","Price","Fraction1","baseCurrency","quoteCurrency","scalar","currencyAmount","adjusted","fromRoute","route","prices","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_sliced_to_array","token0","reserve0","reserve1","currentValue","PAIR_ADDRESS_CACHE","Pair","tokenAmountA","tokenAmountB","tokenAmounts","liquidityToken","involvesToken","token1","priceOf","token0Price","token1Price","reserveOf","getOutputAmount","inputAmount","inputReserve","outputReserve","inputAmountWithFee","outputAmount","getInputAmount","getLiquidityMinted","totalSupply","liquidity","amount0","amount1","getLiquidityValue","totalSupplyAdjusted","feeOn","kLast","kLastParsed","rootK","rootKLast","feeLiquidity","tokenA","tokenB","ref","composeKey","_object_spread_props","_object_spread","Route","currentInput","_$output","midPrice","_100_PERCENT","Percent","tradeComparator","ioComp","inputOutputComparator","priceImpact","wrappedAmount","wrappedCurrency","Trade","tradeType","amounts","nextPairs","nextPair","i1","pair1","ref1","nextPair1","executionPrice","nextMidPrice","exactQuote","slippage","computePriceImpact","minimumAmountOut","slippageTolerance","slippageAdjustedAmountOut","maximumAmountIn","slippageAdjustedAmountIn","exactIn","amountIn","exactOut","amountOut","bestTradeExactIn","currencyAmountIn","currencyOut","_maxNumResults","maxNumResults","_maxHops","maxHops","currentPairs","originalAmountIn","bestTrades","tokenOut","_to_consumable_array","pairsExcludingThisPair","bestTradeExactOut","currencyIn","currencyAmountOut","originalAmountOut","tokenIn","ZERO_HEX","Router","swapCallParameters","trade","etherIn","etherOut","ttl","recipient","allowedSlippage","deadline","useFeeOnTransfer","feeOnTransfer","_templateObject","_tagged_template_literal","ResetCSS","createGlobalStyle","colors","textSubtle","_templateObject1","_templateObject2","_templateObject3","IconLabel","styled","componentId","_variant","variant","variants","failure","success","secondary","alert","background","Details","hasHandler","CloseHandler","StyledAlert","Flex","withConfig","onClick","Icon","BlockIcon","ErrorIcon","CheckmarkCircleIcon","InfoIcon","getIcon","_jsxs","_jsx","hasDescription","color","Text","bold","as","IconButton","scale","CloseIcon","light","lightColors","dark","darkColors","DANGER","SUCCESS","mountAnimation","keyframes","unmountAnimation","DrawerContainer","backgroundAlt","isUnmounting","css","isPoint","isPoint3D","distance1D","distance","xDelta","yDelta","zDelta","PanSession","transformPagePoint","startEvent","lastMoveEvent","lastMoveEventInfo","updatePoint","getPanInfo","isPanStarted","isDistancePastThreshold","onStart","onMove","handlePointerMove","transformPoint","buttons","handlePointerUp","onEnd","onSessionEnd","panInfo","touches","initialInfo","onSessionStart","removeListeners","updateHandlers","subtractPoint","lastDevicePoint","startDevicePoint","velocity","getVelocity","timeDelta","timestampedPoint","lastPoint","currentVelocity","calcLength","axis","isNear","maxDistance","calcAxisDelta","originPoint","mix","translate","calcBoxDelta","originX","originY","calcRelativeAxis","calcRelativeAxisPosition","layout","calcRelativePosition","calcRelativeAxisConstraints","calcViewportAxisConstraints","layoutAxis","constraintsAxis","defaultElastic","resolveAxisElastic","dragElastic","minLabel","maxLabel","resolvePointElastic","eachAxis","elementDragControls","VisualElementDragControls","visualElement","openGlobalLock","isDragging","currentDirection","constraints","hasMutatedConstraints","elastic","originEvent","snapToCursor","isPresent","panSession","stopAnimation","getProps","drag","dragPropagation","onDragStart","resolveConstraints","projection","isAnimationBlocked","getAxisMotionValue","measuredAxis","animationState","setActive","dragDirectionLock","onDirectionLock","onDrag","lockThreshold","direction","getCurrentDirection","updateAxis","syncRender","getTransformPagePoint","startAnimation","onDragEnd","_point","shouldDrag","axisValue","applyConstraints","dragConstraints","prevConstraints","resolveRefConstraints","layoutBox","top","bottom","calcRelativeConstraints","resolveDragElastic","relativeConstraints","rebaseAxisConstraints","onMeasureDragConstraints","constraintsElement","constraintsBox","measure","measuredConstraints","calcViewportConstraints","userConstraints","dragMomentum","dragTransition","dragSnapToOrigin","onDragTransitionEnd","momentumAnimations","transition","bounceStiffness","bounceDamping","inertia","timeConstant","restDelta","restSpeed","startAxisValueAnimation","dragKey","externalMotionValue","scalePositionWithinConstraints","boxProgress","latest","sourceLength","targetLength","progress","clamp","calcOrigin","transformTemplate","getInstance","updateScroll","updateLayout","addListeners","stopPointerListener","dragListener","measureDragConstraints","stopMeasureLayoutListener","stopResizeListener","hasLayoutChanged","motionValue","pan","onPan","onPanStart","onPanEnd","onPanSessionStart","hasPanEvents","useRef","useContext","MotionConfigContext","useEffect","groupDragControls","dragControls","pixelsToPercent","pixels","correctBorderRadius","correct","px","varToken","correctBoxShadow","treeScale","projectionDelta","containsCSSVariables","cssVariables","shadow","complex","template","xScale","yScale","averageScale","i_1","cssVariable","MeasureLayoutWithContext","componentDidMount","layoutGroup","switchLayoutGroup","layoutId","defaultScaleCorrectors","group","didUpdate","safeToRemove","setOptions","onExitComplete","getSnapshotBeforeUpdate","prevProps","layoutDependency","willUpdate","promote","relegate","members","componentDidUpdate","currentAnimation","isLead","componentWillUnmount","promoteContext","scheduleCheckAfterUnmount","deregister","borderRadius","applyTo","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","boxShadow","layoutFeatures","measureLayout","LayoutGroupContext","SwitchLayoutGroupContext","borders","numBorders","asNumber","isPx","getRadius","radiusName","easeCrossfadeIn","compress","easeCrossfadeOut","easing","copyAxisInto","originAxis","copyBoxInto","box","originBox","removePointDelta","boxScale","removeAxisTransforms","transforms","sourceAxis","scaleKey","originKey","removeAxisDelta","xKeys","yKeys","removeBoxTransforms","sourceBox","isAxisDeltaZero","isDeltaZero","boxEquals","NodeStack","scheduleRender","prevLead","lead","indexOfNode","findIndex","member","preserveFollowOpacity","show","resumeFrom","preserveOpacity","snapshot","latestValues","animationValues","isShared","isUpdating","isLayoutDirty","crossfade","hide","exitAnimationComplete","resumingFrom","removeLeadSnapshot","buildProjectionTransform","latestTransform","xTranslate","yTranslate","rotate","rotateX","rotateY","elementScaleX","elementScaleY","compareByDepth","FlatTree","isDirty","createProjectionNode","attachResizeListener","defaultParent","measureScroll","checkIsScrollRoot","resetTransform","ProjectionNode","isTreeAnimating","updateManuallyBlocked","updateBlockedByResize","isSVG","needsReset","shouldResetTransform","eventHandlers","potentialNodes","checkUpdateFailed","clearAllSnapshots","updateProjection","resolveTargetDelta","calcProjection","hasProjected","isVisible","animationProgress","sharedNodes","registerPotentialNode","notifyListeners","subscriptionManager","hasListeners","mount","SVGElement","unblockTimeout_1","resizeUnblockUpdate_1","finishAnimation","registerSharedNode","animate","hasRelativeTargetChanged","newLayout","isTreeAnimationBlocked","relativeTarget","layoutTransition","getDefaultTransition","defaultLayoutTransition","onLayoutAnimationStart","onLayoutAnimationComplete","targetChanged","targetLayout","hasOnlyRelativeTargetChanged","setAnimationOrigin","animationOptions","onPlay","onComplete","shouldReduceMotion","unmount","blockUpdate","unblockUpdate","isUpdateBlocked","startUpdate","resetRotation","shouldNotifyListeners","prevTransformTemplateValue","updateSnapshot","clearMeasurements","mountNodeEarly","resetTransformStyle","notifyLayoutUpdate","clearSnapshot","removeLeadSnapshots","scheduleUpdateProjection","measured","removeTransform","removeElementScroll","roundBox","alwaysMeasureLayout","prevLayout","layoutCorrected","notifyLayoutMeasure","layoutScroll","isScrollRoot","scroll","isResetRequested","hasProjection","transformTemplateValue","transformTemplateHasChanged","measureViewportBox","boxWithoutScroll","scroll_1","rootScroll","applyTransform","transformOnly","withTransforms","boxWithoutTransform","setTargetDelta","targetDelta","relativeParent","getClosestProjectingParent","relativeTargetOrigin","targetWithTransforms","calcRelativeBox","attemptToResolveRelativeTarget","pendingAnimation","getLead","projectionDeltaWithTransform","prevTreeScaleX","prevTreeScaleY","prevProjectionTransform","projectionTransform","notifyAll","snapshotLatestValues","mixedValues","relativeLayout","isSharedLayoutAnimation","isOnlyMember","shouldCrossfadeOpacity","hasOpacityCrossfade","mixTargetDelta","mixAxisDelta","mixAxis","follow","opacity","opacityExit","borderLabel","followRadius","leadRadius","mixValues","isAnimating","onUpdate","completeAnimation","applyTransformsToTarget","initialPromotionConfig","shouldPreserveFollowOpacity","getPrevLead","hasRotate","resetValues","getStaticValue","setStaticValue","getProjectionStyles","styleProp","styles","visibility","pointerEvents","emptyStyles","valuesToRender","transformOrigin","corrected","resetTree","layout_1","measuredLayout","animationType","axisSnapshot","layoutDelta","visualDelta","parentSnapshot","parentLayout","relativeSnapshot","onBeforeLayoutMeasure","notifyBeforeLayoutMeasure","ease","searchNode","querySelector","roundAxis","DocumentProjectionNode","scrollLeft","scrollTop","rootProjectionNode","documentNode","featureBundle","animations","motion","Component","MotionBox","border","space","Box","flexbox","scaleVariants","scales","fontSize","styleVariants","backgroundColor","borderColor","_backgroundColor","_$isLoading","$isLoading","backgroundDisabled","textDisabled","decorator","Button","startIcon","endIcon","isLoading","disabled","_object_without_properties","internalProps","EXTERNAL_LINK_PROPS","isDisabled","classNames","StyledButton","_Fragment","isValidElement","cloneElement","mr","ml","MD","SM","XS","PRIMARY","SECONDARY","TERTIARY","TEXT","SUBTLE","LIGHT","PriceLink","CakePrice","cakePriceUsd","_color","_showSkeleton","showSkeleton","LogoRound","Skeleton","React","shadows","boxShadowActive","boxShadowSuccess","boxShadowWarning","cardHeaderBackground","blue","bubblegum","violet","dropShadow","getScale","Checkbox","inset","focus","DropdownMenuItemType","fontSizeLg","Heading","mediaQueries","lg","StyledImage","_param","alt","imgRef","useState","isLoaded","setIsLoaded","isSupported","IntersectionObserver","isIntersecting","disconnect","observerOptions","Wrapper","Placeholder","StyledWrapper","$height","$width","forwardRef","rootMargin","Input","_isSuccess","_isWarning","isWarning","_scale","inputSecondary","LG","StyledLink","Link","StyledMenuItemContainer","$isActive","$variant","primary","$statusColor","tertiary","_isActive","isActive","scrollLayerRef","statusColor","isMobile","useMatchBreakpointsContext","menuItemRef","linkComponent","MenuContext","itemLinkProps","scrollLayer","menuNode","offsetLeft","offsetWidth","StyledMenuItem","danger","MessageContext","Icons","WarningIcon","CheckmarkCircleFillIcon","MessageContainer","systemVariant","MessageText","icon","actionInline","NotificationDotRoot","Dot","invertedContrast","_show","Children","StyledOverlay","BodyLock","cssText","overflow","role","handleBackground","handleShadow","animation","_templateObject4","_templateObject5","_templateObject6","waves","pulse","AnimationWrapper","Motion","appearAnimation","disappearAnimation","SkeletonWrapper","Root","VARIANT","radii","circle","small","Pulse","Waves","SkeletonV2","_animation","ANIMATION","_isDataReady","isDataReady","wrapperProps","_skeletonTop","skeletonTop","_skeletonLeft","skeletonLeft","animationRef","skeletonRef","LazyMotion","features","domAnimation","AnimatePresence","onAnimationStart","animationHandler","animationMap","animationVariants","SubMenuItemWrapper","sm","$isMobileOnly","StyledSubMenuItems","md","maskSharedStyle","LeftMaskLayer","isDark","RightMaskLayer","StyledSubMenuItemWrapper","_items","activeItem","_isMobileOnly","isMobileOnly","chevronLeftRef","chevronRightRef","layerController","useCallback","scrollWidth","ChevronLeftIcon","ChevronRightIcon","justifyContent","pl","onScroll","itemProps","isExternalLink","linkProps","MenuItem","display","alignItems","OpenNewIcon","Svg","viewBox","fillRule","clipRule","stroke","class","Logo","spinStyle","getThemeValue","spin","xmlns","textTransform","ellipsis","typography","ThemeSwitcher","toggleTheme","Toggle","defaultColor","checkedColor","onChange","SunIcon","MoonIcon","scaleKeyValues","handleHeight","handleWidth","handleLeft","handleTop","checkedLeft","toggleHeight","toggleWidth","Handle","toggle","$checked","$checkedColor","$defaultColor","_defaultColor","_checkedColor","isChecked","StyledToggle","MatchBreakpointsContext","createContext","isTablet","isDesktop","MatchBreakpointsProvider","useMatchBreakpoints","matchBreakpointContext","useIsomorphicEffect","useLayoutEffect","prevMinWidth","breakpointMap","minWidth","breakpoint","getKey","mql","setState","matchMediaQuery","prevState","isXs","isSm","isMd","isLg","isXl","isXxl","htmlNode","Arrow","tooltip","StyledTooltip","exit","invertTheme","currentTheme","_placement","placement","_trigger","trigger","_arrowPadding","arrowPadding","_tooltipPadding","tooltipPadding","_tooltipOffset","tooltipOffset","targetElement","setTargetElement","tooltipElement","setTooltipElement","ref2","arrowElement","setArrowElement","ref3","visible","setVisible","isHoveringOverTooltip","hideTimeout","hideTooltip","showTooltip","toggleTooltip","isTouchDevice","handleClickOutside","Node","ref4","usePopper","modifiers","popper","ThemeProvider","arrow","AnimatedTooltip","portal","getPortalRoot","tooltipInPortal","createPortal","targetRef","tooltipVisible","xs","xxl","breakpoints","nav","level1","siteWidth","spacing","card","zIndices","ribbon","dropdown","modal","baseColors","primaryBright","primaryDark","additionalColors","binance","overlay","gold","silver","bronze","backgroundAlt2","cardBorder","contrast","dropdownDeep","gradients","inverseBubblegum","cardHeader","violetAlt","white","menucolor","darkTheme","darkAlert","darkCard","darkToggle","darkNav","darkModal","pancakeToggle","darkPancakeToggle","radio","darkRadio","darkTooltip","lightTheme","lightAlert","lightCard","lightToggle","lightNav","lightModal","lightPancakeToggle","lightRadio","lightTooltip","getElementById","maxTouchPoints","msMaxTouchPoints","StyledIconContainer","activeBackgroundColor","StyledAnimatedIconComponent","hasFillIcon","fillIcon","_activeColor","activeColor","IconElement","IconElementFill","StyledBottomNavItem","StyledBottomNavText","_showItemsOnMobile","showItemsOnMobile","bottomNavItemContent","flexDirection","AnimatedIconComponent","fontWeight","DropdownMenuItem","getTextColor","_$isActive","StyledDropdownMenuItemContainer","DropdownMenuDivider","StyledDropdownMenu","$isBottomNav","$isOpen","LinkStatus","_isBottomNav","isBottomNav","_activeItem","setMenuOpenByIndex","isOpen","setIsOpen","setTargetRef","tooltipRef","setTooltipRef","hasItems","strategy","isMenuShow","showDropdownMenu","hideDropdownMenu","prevValue","useOnClickOutside","onPointerDown","itemItem","_href","MenuItemContent","LogoutIcon","BottomNav","_activeSubItem","activeSubItem","menuOpenByIndex","isBottomMenuOpen","Overlay","StyledBottomNav","menuItems","_showOnMobile","showOnMobile","menuItem","DropdownMenu","NotificationDot","BottomNavItem","MenuItems","py","StyledNav","MENU_HEIGHT","FixedContainer","showMenu","TopBannerContainer","BodyWrapper","Inner","_linkComponent","banner","rightSide","currentLang","setLang","subLinks","footerLinks","langs","buyCakeLabel","setShowMenu","refPrevOffset","pageYOffset","topBannerHeight","TOP_BANNER_HEIGHT_MOBILE","TOP_BANNER_HEIGHT","totalTopMenuHeight","throttledHandleScroll","throttle","currentOffset","isBottomOfPage","clientHeight","innerHeight","subLinksWithoutMobile","subLink","subLinksMobileOnly","SubMenuItems","mt","isPushed","blink","isAbsoluteUrl","innerLogo","LogoIcon","LogoWithTextIcon","MenuIconWrapper","ProfileIcon","Image","NoProfileMenuIcon","WalletFilledIcon","PendingMenuIcon","RefreshIcon","WarningMenuIcon","DangerMenuIcon","avatarSrc","StyledUserMenu","LabelText","Menu","UserMenuItem","_ellipsis","accountEllipsis","onTouchStart","MenuIcon","ChevronDownIcon","UserMenuDivider","LIVE","SOON","NEW","SwapIcon","SwapFillIcon","iconName","EarnIcon","EarnFillIcon","TrophyIcon","TrophyFillIcon","MoreIcon","MODAL_SWIPE_TO_CLOSE_VELOCITY","onDismiss","onBack","_hideCloseButton","hideCloseButton","_bodyPadding","bodyPadding","_minWidth","headerBackground","useTheme","wrapperRef","ModalContainer","ModalHeader","ModalTitle","ModalBackButton","ModalCloseButton","ModalBody","ModalWrapper","Context","nodeId","modalNode","setModalNode","onPresent","setNodeId","closeOnOverlayClick","setCloseOnOverlayClick","setViewportHeight","vh","setProperty","handleDismiss","newNodeId","closeOverlayClick","mobileFooterHeight","ArrowBackIcon","updateOnPropsChange","modalId","onPresentCallback","modalProps","oldModalProps","ConnectorNames","getDomainLocale","locales","domainLocales","sizes","unoptimized","loading","lazyRoot","lazyBoundary","quality","objectFit","objectPosition","onLoadingComplete","placeholder","blurDataURL","_object_without_properties_loose","configContext","_react","_imageConfigContext","ImageConfigContext","useMemo","configEnv","_imageConfig","imageConfigDefault","allSizes","deviceSizes","imageSizes","_extends","loader","defaultImageLoader","customImageLoader","staticSrc","isStaticRequire","isStaticImageData","isStaticImport","staticImageData","isLazy","loadedImageURLs","sizerSvgUrl","blurComplete","setBlurComplete","_useIntersection","useIntersection","rootRef","setIntersection","isIntersected","resetIntersected","wrapperStyle","boxSizing","margin","sizerStyle","hasSizer","layoutStyle","maxWidth","minHeight","maxHeight","widthInt","getInt","heightInt","qualityInt","imgStyle","blurStyle","backgroundSize","backgroundPosition","backgroundImage","paddingTop","imgAttributes","emptyDataURL","srcSet","generateImgAttrs","srcString","crossOrigin","onLoadingCompleteRef","previousImageSrc","imgElementArgs","noscriptSizes","ImageElement","_head","_interop_require_default","_interop_require_wildcard","_normalizeTrailingSlash","normalizeSrc","loaders","endsWith","dangerouslyAllowSVG","normalizePathTrailingSlash","URL","searchParams","getAll","paramsString","getWidths","viewportWidthRe","percentSizes","smallestRatio","widths","loaderProps","loaderKey","load","VALID_LOADERS","handleLoading","img","naturalWidth","naturalHeight","decoding","_router","_addLocale","_routerContext","_appRouterContext","_getDomainLocale","_addBasePath","prefetched","prefetch","router","isLocalURL","curLocale","_default","forwardedRef","passHref","shallow","onMouseEnter","legacyBehavior","restProps","childrenProp","prefetchProp","RouterContext","appRouter","AppRouterContext","resolveHref","hrefProp","resolvedHref","resolvedAs","asProp","previousHref","previousAs","only","childRef","setIntersectionRef","resetVisible","setRef","shouldPrefetch","isPrefetched","childProps","defaultPrevented","isAppRouter","prefetchEnabled","nodeName","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","isModifiedEvent","navigate","forceOptimisticNavigation","startTransition","linkClicked","localeDomain","isLocaleDomain","addBasePath","addLocale","defaultLocale","hasIntersectionObserver","setElement","unobserve","createObserver","idList","observers","elements","intersectionRatio","idleCallback","_requestIdleCallback","requestIdleCallback","cancelIdleCallback","TemplateContext","GlobalLayoutRouterContext","LayoutRouterContext","dynamicOptions","loadableFn","_loadable","loadableOptions","suspense","pastDelay","ssr","loadableGenerated","noSSR","LoadableInitializer","webpack","modules","LoadableContext","_loadableContext","useSyncExternalStore","ALL_INITIALIZERS","READY_INITIALIZERS","loaded","LoadableSubscription","loadFn","_loadFn","_opts","_callbacks","_delay","_timeout","retry","_res","_clearTimeouts","timedOut","_err","partial","getCurrentValue","Loadable","useLoadableModule","moduleName","lazy","moduleIds","ids","moduleId","LoadableComponent","useImperativeHandle","preload","createLoadableComponent","flushInitializers","initializers","preloadAll","resolveInitializers","preloadReady","resolvePreload","__NEXT_PRELOADREADY","windowIntegrations","_window","Sentry","Integrations","INTEGRATIONS","TRACEPARENT_REGEXP","bindReporter","metric","reportAllChanges","forceReport","initMetric","PerformanceObserver","supportedEntryTypes","po","getEntries","buffered","onHidden","cb","onHiddenOrPageHide","firstHiddenTime","getVisibilityWatcher","reportedMetricIDs","MetricsInstrumentation","_reportAllChanges","_performanceCursor","_trackCLS","_trackLCP","_trackFID","addPerformanceEntries","responseStartTimestamp","requestStartTimestamp","startTime","entryType","addPerformanceNavigationTiming","_startChild","requestStart","responseEnd","responseStart","addRequest","addNavigationSpans","measureStartTimestamp","measureEndTimestamp","addMeasureSpans","firstHidden","shouldRecord","resourceName","initiatorType","transferSize","encodedBodySize","decodedBodySize","addResourceSpans","_trackNavigator","timeOrigin_1","measurementTimestamp","normalizedValue","cls","lcpEntry","clsEntry","sources","tagMetricInfo","_lcpEntry","_clsEntry","effectiveType","isMeasurementValue","rtt","downlink","deviceMemory","hardwareConcurrency","onReport","report","sessionValue","sessionEntries","entryHandler","hadRecentInput","firstSessionEntry","lastSessionEntry","takeRecords","getCLS","visibilityWatcher","stopListening_1","capture","getLCP","processingStart","getFID","eventEnd","defaultRequestInstrumentationOptions","traceFetch","traceXHR","tracingOrigins","instrumentOutgoingRequests","shouldCreateSpanForRequest","urlMap","defaultShouldCreateSpan","origins","shouldCreateSpan","__span","activeTransaction","fetchCallback","__sentry_xhr_span_id__","xhrCallback","DEFAULT_BROWSER_TRACING_OPTIONS","markBackgroundTransactions","maxTransactionDuration","routingInstrumentation","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","BrowserTracing","_configuredIdleTimeout","_emitOptionsWarning","_metricOptions","_metrics","_getCurrentHub","instrumentRouting","_createRouteTransaction","statusType","beforeNavigate","parentContextFromHeader","metaName","getMetaContent","traceparent","extractTraceparentData","getHeaderContext","expandedContext","modifiedContext","finalContext","idleTransaction","maxDuration","adjustTransactionDuration","DEFAULT_TAGS","prevTransactionName","nextRouterInstrumentation","startTransactionCb","routerPrototype","changeStateWrapper","originalChangeStateWrapper","newTransactionName","setNestedKey","keyPath","addIntegration","addIntegrationToArray","userIntegrationsFunc","userFinalIntegrations","addIntegrationToFunction","includesName","defaultBrowserTracingIntegration","SENTRY_DSN","NEXT_PUBLIC_SENTRY_DSN","ENV","VERCEL_ENV","buildMetadata","createClientIntegrations","useWeb3Modal","useAccount","handleClick","Trans","trimAddress","mx","DEFAULT_META","getCustomMeta","pathList","basePath","defaultTitleSuffix","getPathList","pathMetadata","StyledPage","Container","PageMeta","useTranslation","currentLanguage","useRouter","useCakeBusdPrice","pageMeta","pageTitle","Head","BAD_SRCS","srcs","refresh","HelpIcon","SlippageError","InvalidInput","RiskyLow","RiskyHigh","DeadlineError","inputRegex","slippageError","deadlineError","useUserSlippageTolerance","userSlippageTolerance","setUserSlippageTolerance","useUserTransactionTTL","setTtl","slippageInput","setSlippageInput","deadlineInput","setDeadlineInput","slippageInputIsValid","deadlineInputIsValid","parseCustomSlippage","escapeRegExp","valueAsIntFromRoundedFloat","parseCustomDeadline","valueAsInt","mb","QuestionHelper","flexWrap","inputMode","onBlur","validity","setShowConfirmExpertModal","setShowExpertModeAcknowledgement","toggleExpertMode","useExpertModeManager","isRememberChecked","setIsRememberChecked","Modal","Message","userSelect","prompt","useGasPriceManager","setGasPrice","useNetwork","chain","GAS_PRICES","ScrollableContainer","showConfirmExpertModal","useUserExpertModeAcknowledgementShow","showExpertModeAcknowledgement","expertMode","useUserSingleHopOnly","singleHopOnly","setSingleHopOnly","useAudioModeManager","useZapModeManager","useSubgraphHealthIndicatorManager","useSwapActionHandlers","onChangeRecipient","ExpertModal","SettingsMode","pb","GasSettings","pt","TransactionSettings","onPresentSettingsModal","useModal","SettingsModal","CogIcon","SWAP_LIQUIDITY","NextLinkFromReactRouter","NextLink","QuestionWrapper","useTooltip","_objectWithoutPropertiesLoose","excluded","sourceKeys","getChildMapping","mapFn","mapper","getProp","getNextChildMapping","nextProps","prevChildMapping","onExited","nextChildMapping","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","mergeChildMappings","hasPrev","hasNext","prevChild","isLeaving","in","enter","TransitionGroup","_React$Component","handleExited","contextValue","isMounting","firstRender","mounted","appear","currentChildMapping","_this$props","childFactory","TransitionGroupContext","replaceClassName","origClass","classToRemove","forceReflow","UNMOUNTED","EXITED","ENTERING","ENTERED","EXITING","Transition","initialStatus","appearStatus","unmountOnExit","mountOnEnter","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","nodeRef","performEnter","performExit","_this2","appearing","_ref2","maybeNode","maybeAppearing","timeouts","enterTimeout","safeSetState","onEntered","onEnter","onEntering","onTransitionEnd","_this3","onExit","onExiting","nextState","setNextCallback","_this4","doesNotHaveTimeoutOrListener","addEndListener","_ref3","maybeNextCallback","removeClass","baseVal","CSSTransition","appliedClasses","_this$resolveArgument","resolveArguments","removeClasses","addClass","_this$resolveArgument2","_this$resolveArgument3","getClassNames","isStringClassNames","baseClassName","activeClassName","doneClassName","phase","hasClass","_addClass","_this$appliedClasses$","alertTypeMap","alertVariants","StyledToast","toast","onRemove","handleRemove","onMouseLeave","Alert","StyledToastContainer","toasts","stackSpacing","zIndex","Toast","txHash","getBscScanLink","truncateHash","ERC20_INTERFACE","ERC20_ABI","ERC20_BYTES32_ABI","SNAPSHOT_BASE_URL","API_NFT","NEXT_PUBLIC_API_PROFILE","INFO_CLIENT","BLOCKS_CLIENT","GRAPH_API_NFTMARKET","GRAPH_HEALTH","ROUTER_ADDRESS","BASES_TO_CHECK_TRADES_AGAINST","MAIN_TOKEN","USDT","BUSD","WBNB","MAIN_TOKEN2","MAIN_TOKEN3","MAIN_TOKEN4","ADDITIONAL_BASES","CUSTOM_BASES","BIG_INT_ZERO","BIG_INT_TEN","BIPS_BASE","ONE_BIPS","ALLOWED_PRICE_IMPACT_LOW","ALLOWED_PRICE_IMPACT_MEDIUM","ALLOWED_PRICE_IMPACT_HIGH","PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN","BLOCKED_PRICE_IMPACT_NON_EXPERT","MIN_BNB","BETTER_TRADE_LESS_HOPS_THRESHOLD","ZERO_PERCENT","ONE_HUNDRED_PERCENT","BASE_FEE","INPUT_FRACTION_AFTER_FEE","DEFAULT_INPUT_CURRENCY","DEFAULT_OUTPUT_CURRENCY","SUPPORT_CHAINS","DEFAULT_CHAIN","bsc","rpcUrls","public","blockExplorers","multicall","blockCreated","nativeCurrency","bscTest","isPure","socials","FacebookIcon","TelegramIcon","TwitterIcon","serializedTokens","serializeTokens","bscTestnetTokens","CAKE_BNB_LP_MAINNET","cake","wbnb","usdc","poolBasic","saleAmount","raiseAmount","cakeToBurn","distributionRatio","poolUnlimited","bscTokens","releaseBlockNumber","campaignId","articleUrl","tokenOfferingPrice","twitterUrl","vestingTitle","BASES_TO_TRACK_LIQUIDITY_FOR","PINNED_PAIRS","BLOCKED_ADDRESSES","INITIAL_ALLOWED_SLIPPAGE","DEFAULT_DEADLINE_FROM_NOW","FAST_INTERVAL","SLOW_INTERVAL","NOT_ON_SALE_SELLER","GELATO_NATIVE","EXCHANGE_DOCS_URLS","OFFICIAL_LISTS","UNSUPPORTED_LIST_URLS","WARNING_LIST_URLS","DEFAULT_LIST_OF_LISTS","DEFAULT_ACTIVE_LIST_URLS","livePools","VaultKey","autoCompoundFrequency","tokenImage","primarySrc","secondarySrc","sousId","stakingToken","earningToken","poolCategory","PoolCategory","tokenPerBlock","isFinished","peel","shell","finishedPools","SWAP","SWAP2","busd","usdt","bkr","mali","cbn","PoolIds","LotteryStatus","AuctionStatus","ToBeAnnounced","Pending","Open","Finished","Closed","FetchStatus","EXPONENTIAL_AT","DECIMAL_PLACES","BSC_BLOCK_TIME","BASE_BSC_SCAN_URLS","BIG_TEN","EN","language","languages","languageList","publicUrl","PUBLIC_URL","LS_KEY","fetchLocale","getLanguageCodeFromLS","isFetching","includesVariableRegex","translatedTextIncludesVariable","translatedText","languageMap","translations","LanguageContext","LanguageProvider","useLastUpdated","lastUpdated","setLastUpdated","codeFromStorage","fetchInitialLocales","enLocale","currentLocale","setLanguage","interpolatedText","dataKey","templateKey","languageContext","ToastsContext","ToastsProvider","setToasts","prevToasts","currentToasts","prevToast","toastError","toastTypes","toastInfo","toastSuccess","toastWarning","useToast","ToastContainer","mapWithoutUrls","tokenMap","newMap","useAllTokens","useSelector","createSelector","combinedTokenMapFromActiveUrlsSelector","userAddedTokenSelector","userAddedTokens","tokenMap_","allTokenSelector","useOfficialsAndUserAddedTokens","combinedTokenMapFromOfficialsUrlsSelector","allOfficialsAndUserAddedTokensSelector","useUnsupportedTokens","unsupportedTokensMap","useUnsupportedTokenList","useWarningTokens","warningTokensMap","useWarningTokenList","useIsTokenActive","activeTokens","useIsUserAddedToken","useUserAddedTokens","BYTES32_REGEX","parseStringOrBytes32","bytes32","useToken","tokenAddress","tokenContract","useTokenContract","tokenContractBytes32","useBytes32TokenContract","tokenName","useSingleCallResult","NEVER_RELOAD","tokenNameBytes32","symbolBytes32","useCurrency","currencyId","isBNB","useBUSDPrice","tokenPairs","usePairs","bnbPairState","bnbPair","busdPairState","busdPair","busdBnbPairState","busdBnbPair","price","bnbPairBNBAmount","bnbPairBNBBUSDValue","PairState","bnbBusdPrice","currencyBnbPrice","busdPrice","useBUSDCurrencyAmount","multiplyPriceByAmount","useTradingCompetitionContractMoD","withSignerIfPossible","library","useEthersSigner","getProviderOrSigner","getTradingCompetitionContractMoD","useContract","ABI","bscRpcProvider","canReturnContract","useWCLDContract","WETH_ABI","useMulticallContract","getMulticallAddress","multiCallAbi","useZapContract","getZapAddress","zapAbi","useDebounce","debouncedValue","setDebouncedValue","useWalletClient","walletClient","contracts","ensRegistry","walletClientToSigner","useAppDispatch","listUrl","sendDispatch","fetchTokenList","getTokenList","tokenList","setStateLastUpdated","previousLastUpdated","usePreviousValue","PAIR_INTERFACE","IPancakePairABI","currencies","pairAddresses","useMultipleContractSingleData","LOADING","reserves","NOT_EXISTS","EXISTS","usePair","fetchStatusMiddleware","useSWRNext","swr","isValidating","getContractKey","serializesContractKey","interfaceFormat","callData","useSWRContract","serializedKeys","useSWR","COOKIE_THEME_KEY","THEME_DOMAIN","useNextTheme","StyledThemeContext","themeValue","Cookie","toastContext","SubgraphHealthIndicator","FixedSubgraphHealthIndicator","subgraphName","getThemeCookie","_defineProperties","_possibleConstructorReturn","_assertThisInitialized","_getPrototypeOf","_setPrototypeOf","_defineProperty","PersistGate","_PureComponent","_getPrototypeOf2","bootstrapped","persistor","onBeforeLift","_unsubscribe","protoProps","staticProps","handlePersistorState","PureComponent","usePollBlockNumber","useSWRConfig","mutate","provid","refreshInterval","useCurrentBlock","currentBlock","useSWRImmutable","isUndefinedOrNull","isWindowVisible","useIsWindowVisible","setIsVisible","handleVisibilityChange","Updater","includeListUpdater","lists","useAllLists","activeListUrls","useActiveListUrls","fetchList","useFetchListCallback","initiateUpdate","runImmediate","setRunImmediate","runAfter","setRunAfter","savedCallback","isReadyForUpdate","setIsReadyForUpdate","tick","useInterval","loadingRequestId","pendingUpdate","acceptListUpdate","waitRandom","CancelledError","RetryableError","fetchChunk","multicallContract","minBlockNumber","resultsBlockNumber","returnData","aggregate","debouncedListeners","callListeners","cancellations","listeningKeys","allListeners","callKey","keyListeners","blocksPerFetch","previousMin","activeListeningKeys","unserializedOutdatedCallKeys","callResults","minDataBlockNumber","fetchingBlockNumber","outdatedListeningKeys","serializedOutdatedCallKeys","outdatedCallKeys","calls","parseCallKey","chunkedCalls","maxChunkSize","numChunks","chunkSize","ix","chunkArray","fetchingMulticallResults","rejectCancelled","minWait","completed","firstCallKeyIndex","curr","lastCallKeyIndex","updateMulticallResults","fetchBlockNumber","errorFetchingMulticallResults","lastCheckedBlockNumber","blocksSinceCheck","minutesPending","addedTime","shouldCheck","finalizeTransaction","ToastDescriptionWithTx","checkedTransaction","Updaters","ListsUpdater","TransactionUpdater","MulticallUpdater","Blocklist","INITIAL_STATE","componentStack","ErrorBoundary","resetErrorBoundary","onReset","componentDidCatch","beforeCapture","showDialog","isAtLeastReact17","errorBoundaryError","cause","react","onMount","onUnmount","resetError","chains","NetworkSelect","setupNetwork","NetworkSwitcher","networkName","UserMenu","InnerContainer","SpeechBubble","hideBanner","usePhishingBannerManager","warningTextAsParts","warningTextComponent","ConnectWalletButton","activeIfo","ifosConfig","ifo","useActiveIfoWithBlocks","currentIfoBlocks","ifoV3Abi","multicallv2","requireSuccess","REGISTRATION","CompetitionPhases","ends","FINISHED","CLAIM","OVER","SmartContractPhases","useMenuItemsStatus","competitionStatus","tradingCompetitionContract","currentStatus","useCompetitionStatus","ifoStatus","getStatus","languageCode","supportChainIds","filterItemBySupportChainId","getActiveSubMenuItem","activeSubMenuItems","subMenuItem","orderBy","menuItemsStatus","innerItems","innerItem","itemMenuStatus","itemStatus","menuStatus","useMenuItems","showPhishingWarningBanner","activeMenuItem","menuConfig","getActiveMenuItem","activeSubMenuItem","getFooterLinks","UikitMenu","GlobalSettings","PhishingWarningBanner","hideSubNav","_inheritsLoose","_isNativeReflectConstruct","_construct","Parent","Class","_wrapNativeSuper","_catch","recover","normalizeChainId","parsedChainId","normalizeAccount","charsArray","addressChecksum","ActionType","augmentConnectorUpdate","connector","_temp3","_account","UnsupportedChainIdError","_temp4","StaleConnectorError","_Error","_Error2","unsupportedChainId","ACTIVATE_CONNECTOR","UPDATE","_provider","_chainId2","_account2","UPDATE_FROM_ERROR","_provider2","_chainId3","_account3","ERROR_FROM_ACTIVATION","DEACTIVATE_CONNECTOR","PRIMARY_KEY","CONTEXTS","createWeb3ReactRoot","setError","getLibrary","_useWeb3ReactManager","_useReducer","useReducer","updateBusterRef","throwErrors","updateBusterInitial","activated","augmentedUpdate","handleUpdate","_chainId4","_error2","_account4","handleError","handleDeactivate","useWeb3ReactManager","web3ReactContext","Web3ReactProvider","isNativeReflectConstruct","parseSendReturn","sendReturn","NoEthereumProviderError","UserRejectedRequestError","InjectedConnector","_AbstractConnector","kwargs","ethereum","_temp5","_result","_exit2","_temp2","_window$ethereum$enab","_this5","_temp6","_window$ethereum$send","_temp12","_temp9","_unused","_temp8","_temp14","_window$ethereum$send3","_temp13","_window$ethereum$send2","_temp20","_temp17","_temp16","_temp22","_window$ethereum$enab2","_temp21","_window$ethereum$send4","getSupportedChains","rpc","WalletConnectConnector","handleDisconnect","walletConnectProvider","wc","connected","createSession","_m$default","WalletConnectProvider","_this12$walletConnect","SUPPORTED_CHAIN_ID","injected","walletconnect","qrcode","bscConnector","BloctoConnector","WalletLinkConnector","appName","appLogoUrl","wcMessage","bnbSign","signPersonalMessage","StyledThemeProvider","WagmiConfig","wagmiConfig","NextThemeProvider","SWRConfig","use","ModalProvider","EasterEgg","GlobalHooks","useUserAgent","useSentryUser","useThemeCookie","MPGlobalHooks","ProductionErrorBoundary","handleOnClick","reload","Page","textAlign","copyText","CopyIcon","App","pageProps","appProps","Layout","ShowMenu","mp","iterations","ToastListener","useStore","initialReduxState","Providers","GlobalStyle","GlobalCheckClaimStatus","excludeLocations","Field","LIQUIDITY_PERCENT","LIQUIDITY","CURRENCY_A","CURRENCY_B","typeInput","KEY_PREFIX","FLUSH","REHYDRATE","PAUSE","PERSIST","PURGE","REGISTER","enumerableOnly","autoMergeLevel1","inboundState","originalState","reducedState","newState","_objectSpread","createPersistoid","whitelist","defaultSerialize","writeFailHandler","lastState","stagedState","keysToProcess","timeIterator","writePromise","processNextKey","endState","subState","transformer","onWriteFail","passWhitelistBlacklist","defaultDeserialize","rawState","reduceRight","serial","warnIfRemoveError","_objectWithoutProperties","sourceSymbolKeys","persistReducer","baseReducer","stateReconciler","getStoredState","_persistoid","_purge","_paused","conditionalUpdate","_persist","rehydrated","restState","_sealed","_rehydrate","rehydrate","restoredState","migrate","migratedState","migrateErr","purgeStoredState","_newState","_toConsumableArray","arr2","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","persistorReducer","firstIndex","dbName","localForage","independentField","typedValue","updateVersion","resetUserState","updateProtocolData","updateProtocolChartData","updateProtocolTransactions","updatePoolData","addPoolKeys","updatePoolChartData","updatePoolTransactions","updateTokenData","addTokenKeys","addTokenPoolAddresses","updateTokenChartData","updateTokenTransactions","updateTokenPriceData","pools","byAddress","protocolData","overview","chartData","poolData","poolAddresses","poolAddress","tokenData","tokenAddresses","priceData","secondsInterval","oldestFetchedTimestamp","NEW_LIST_STATE","lastInitializedDefaultListOfLists","byUrl","addList","removeList","enableList","disableList","lastInitializedSet","newListOfListsSet","otherTypedValue","resetMintState","noLiquidity","addMulticallListeners","toCallKey","removeMulticallListeners","pancakeBunniesAddress","getPancakeBunniesAddress","large","createdAt","creatorAddress","creatorFee","numberTokensListed","totalTrades","totalVolumeBNB","tradingFee","updatedAt","verified","whitelistChecker","AskOrderType","NftLocation","MarketEvent","CANCEL","MODIFY","BUY","SELL","baseNftFields","baseTransactionFields","collectionBaseFields","getCollectionsApi","fetchCollectionsTotalSupply","collections","totalSupplyCalls","totalSupplyRaw","erc721Abi","totalCount","getCollectionApi","collectionsMarket","collectionApiData","collectionsTotalSupply","collectionApiDataCombinedOnChain","getCollectionsSg","totalSupplyFromApi","totalSupplyFromOnChain","combineCollectionData","collectionAddress","collectionMarket","getCollectionSg","getNftsFromCollectionApi","page","isPBCollection","requestPath","filteredAttributesDistribution","filteredData","filteredTotal","attributesDistribution","fromPairs","getNftApi","getNftsFromDifferentCollectionsApi","nft","resp","collectionName","getMarketDataForTokenIds","nfts","bunnyId","existingTokenIds","orderDirection","where","otherId","isTradable","tokenId_not_in","tokenId_in","getNftsOnChainMarketData","tokenIds","askInfo","getNftMarketContract","viewAsksByCollectionAndTokenIds","tokenAskInfo","seller","currentSeller","currentAskPrice","formatBigNumber","getAccountNftsOnChainMarketData","nftMarketAddress","collectionList","askCalls","askCallsResultsRaw","getNftMarketAddress","nftMarketAbi","askCallsResultRaw","askCallIndex","tokenIdIndex","getNftsMarketData","fetchNftsFiltered","bunnyIds","singlePancakeBunnySubQueries","rawResponse","lowestPricesData","subQueryKey","updatedAtData","nftSg","askOrderHistory","buyTradeHistory","sellTradeHistory","nftActivityFilter","itemPerQuery","getAskOrderEvent","isFetchAllCollections","hasCollectionFilter","collectionFilterGql","askOrderTypeFilter","askOrderIncluded","askOrderTypeFilterGql","transactionIncluded","askOrderQueryItem","transactionQueryItem","askOrderGql","transactionGql","orderType","collectionFilters","typeFilters","marketEvent","askOrders","askHistory","transactionHistory","fetchWalletTokenIdsForCollections","balanceOfCalls","balanceOfCallsResultRaw","balanceOfCallsResult","tokenIdCalls","tokenIdResultRaw","tokenIdResult","nftLocation","balanceOf","tokenIndex","WALLET","tokenIdBn","collectionSgData","collectionsMarketObj","combineNftMarketAndMetadata","nftsWithMetadata","nftsForSale","walletNfts","tokenIdsInWallet","tokenIdsForSale","profileNftId","completeNftData","marketData","forSaleNft","marketNft","PROFILE","FORSALE","getNftLocationForMarketNft","fetchWalletMarketData","walletNftsByCollection","walletMarketDataRequests","tokenIdsWithCollectionAddress","tokenIdIn","nftsOnChainMarketData","nftsMarketData","walletNft","nftMarketData","tokenMarketData","onChainMarketData","onChainTokenMarketData","initialNftFilterState","profileNftWithCollectionAddress","collectionsWithDelist","walletNftIdsWithCollectionAddress","onChainForSaleNfts","walletMarketData","walletNftsWithMarketData","walletTokenIds","forSaleNftIds","metadataForAllNfts","DELIST_COLLECTIONS","walletNftId","marketDataForWalletNfts","latestTradedPriceInBNB","tradeVolumeBNB","loadingState","activeFilters","showOnlyOnSale","ordering","initialNftActivityFilterState","fetchNftsFromCollections","nftsMarket","apiMetadata","filterNftsFromCollection","nftFilters","attrParams","attrFilters","traitType","isEmpty","apiToken","apiTokenMarketData","NftMarket","activityFilters","tryVideoNftMedia","removeAllItemFilters","addActivityTypeFilters","removeActivityTypeFilters","activeFilter","addActivityCollectionFilters","removeActivityCollectionFilters","removeAllActivityCollectionFilters","removeAllActivityFilters","setOrdering","setShowOnlyOnSale","setTryVideoNftMedia","existingNftsWithoutNewOnes","nftToken","newToken","poolsWithEnd","poolsConfig","startEndBlockCalls","flatMap","poolConfig","poolsBalanceOf","startEndBlockRaw","startEndBlockResult","sousChefABI","resultArray","chunkIndex","cakePoolConfig","poolsWithV3","poolsTotalStaked","erc20ABI","totalStaked","poolsWithStakingLimit","validPools","poolStakingCalls","poolStakingResultRaw","validPool","sousChefV2","stakingLimitRaw","stakingLimit","BIG_ZERO","numberBlocksForUserLimit","pool","poolProfileRequireCalls","poolProfileRequireResultRaw","sousChefV3","poolProfileRequireRaw","hasProfileRequired","profileThresholdPoints","thresholdPoints","nonBnbPools","bnbPools","nonMasterPools","fetchPoolsAllowance","allowances","fetchUserBalances","tokenBalancesRaw","bnbBalance","tokenBalances","poolTokenBalances","bnbBalanceJson","bnbBalances","uniq","fetchUserStakeBalances","userInfo","fetchUserPendingRewards","cakeVaultV2","getCakeVaultAddress","cakeFlexibleSideVaultV2","getCakeFlexibleSideVaultAddress","cakeContract","getCakeContract","fetchPublicVaultData","cakeVaultAddress","sharePrice","shares","totalLockedAmount","totalCakeInVault","totalSharesAsBigNumber","totalLockedAmountAsBigNumber","sharePriceAsBigNumber","cakeVaultAbi","totalShares","pricePerFullShare","fetchPublicFlexibleSideVaultData","fetchVaultFees","performanceFee","withdrawalFee","withdrawalFeePeriod","fetchPublicIfoData","shouldShowBlockCountdown","blocksUntilStart","blocksRemaining","hasPoolStarted","blocksToDisplay","getIfoCreditAddressContract","credit","getUserCredit","flexibleSideVaultContract","getCakeFlexibleSideVaultV2Contract","fetchVaultUser","userContractResponse","currentPerformanceFee","currentOverdueFee","userShares","lastDepositedTime","lastUserActionTime","cakeAtLastUserAction","userBoostedShare","locked","lockEndTime","lockStartTime","lockedAmount","fetchFlexibleSideVaultUser","initialPoolVaultState","fees","userData","creditStartBlock","initialIfoState","userDataLoaded","cakeVault","cakeFlexibleSideVault","fetchPoolsUserDataAsync","stakingTokenBalances","stakedBalances","pendingRewards","allowance","stakingTokenBalance","stakedBalance","pendingReward","updateUserAllowance","updateUserBalance","updateUserStakedBalance","updateUserPendingReward","fetchCakeVaultPublicData","fetchCakeFlexibleSideVaultPublicData","fetchCakeVaultFees","fetchCakeFlexibleSideVaultFees","fetchCakeVaultUserData","fetchIfoPublicDataAsync","fetchCakeFlexibleSideVaultUserData","PoolsSlice","setPoolPublicData","poolIndex","setPoolUserData","setPoolsPublicData","livePoolsData","livePoolData","setIfoUserCreditData","userPoolData","pairDataById","derivedPairDataById","replaceSwapState","inputCurrencyId","outputCurrencyId","selectCurrency","otherField","switchCurrencies","setRecipient","updatePairData","pairData","pairId","timeWindow","updateDerivedPairData","LS_ORDERS","hashOrder","order","hashOrderSet","lsKey","saveOrders","removeOrders","orderHashSet","orderInLS","removeOrder","addTransaction","approval","summary","claim","txs","saveOrder","clearAllTransactions","confirmedTime","submissionHash","creationHash","pendingKey","confirmedOrder","createdTxHash","ordersKey","ordersToSave","confirmOrderSubmission","cancellationHash","cancelHash","cancelledTxHash","confirmOrderCancellation","currentTimestamp","pairKey","token0Address","token1Address","userExpertMode","userSingleHopOnly","userDeadline","audioPlay","isExchangeChartDisplayed","isSubgraphHealthIndicatorDisplayed","userChartViewMode","ChartViewMode","userFarmStakedOnly","FarmStakedOnly","userPoolStakedOnly","userPoolsViewMode","ViewMode","userFarmsViewMode","userPredictionAcceptedRisk","userLimitOrderAcceptedWarning","userPredictionChartDisclaimerShow","userPredictionChainlinkChartDisclaimerShow","userExpertModeAcknowledgementShow","userUsernameVisibility","userZapDisabled","watchlistTokens","watchlistPools","hideTimestampPhishingWarningBanner","lastUpdateVersionTimestamp","updateUserExpertMode","updateUserSlippageTolerance","updateUserDeadline","updateUserSingleHopOnly","addSerializedToken","serializedToken","removeSerializedToken","addSerializedPair","serializedPair","removeSerializedPair","tokenAAddress","tokenBAddress","muteAudio","unmuteAudio","updateUserFarmStakedOnly","updateUserPoolStakedOnly","updateUserPoolsViewMode","updateUserFarmsViewMode","updateUserPredictionAcceptedRisk","userAcceptedRisk","updateUserLimitOrderAcceptedWarning","updateUserPredictionChartDisclaimerShow","userShowDisclaimer","updateUserPredictionChainlinkChartDisclaimerShow","updateUserExpertModeAcknowledgementShow","updateUserUsernameVisibility","updateGasPrice","addWatchlistToken","tokenWatchlist","newTokens","addWatchlistPool","poolsWatchlist","newPools","hidePhishingWarningBanner","setIsExchangeChartDisplayed","setChartViewMode","setZapDisabled","setSubgraphHealthIndicatorDisplayed","replaceLimitOrdersState","setRateType","INPUT","OUTPUT","PRICE","Rate","MUL","DIV","basisField","inputValue","outputValue","rateType","migrations","persistConfig","currentVersion","inboundVersion","migrationKeys","ver","versionKey","createMigrate","ListsConfig","IndexedDBStorage","persistedReducer","combineReducers","poolsReducer","infoReducer","nftMarket","nftMarketReducer","limitOrders","mint","burn","makeStore","ignoredActions","initializeStore","_store","useDispatch","boostrappedCb","_pStore","enhancer","rehydrateAction","purge","purgeResult","flushResult","pause","persist","manualPersist","persistStore","sortByListPriority","urlA","urlB","selectorActiveUrls","selectorByUrls","activeListUrlsSelector","combineTokenMapsWithDefault","defaultTokenMap","listToTokenMap","DEFAULT_TOKEN_LIST","combineMaps","combineTokenMaps","allTokens","currentUrl","EMPTY_LIST","inactiveUrlSelector","combinedTokenMapFromInActiveUrlsSelector","inactiveUrl","combinedTokenMapFromUnsupportedUrlsSelector","UNSUPPORTED_TOKEN_LIST","combinedTokenMapFromWarningUrlsSelector","WARNING_TOKEN_LIST","listCache","uniqBy","tokenInfo","tagId","WrappedTokenInfo","groupedTokenMap","tokenAddressMap","tokenInfoList","map1","map2","useInactiveListUrls","useCombinedActiveList","useCombinedInactiveList","useIsListActive","ADDRESS_REGEX","LOWER_HEX_REGEX","pcs","isMethodArg","isValidMethodArgs","INVALID_RESULT","useCallsData","serializedCallKeys","callKeys","INVALID_CALL_STATE","syncing","LOADING_CALL_STATE","toCallState","callResult","latestBlockNumber","useSingleContractMultipleData","callInputs","addresses","onSwitchTokens","onCurrencySelection","onUserInput","logoURI","GAS_PRICE","fast","instant","defaultBase","fastBase","instantBase","BetPosition","PredictionStatus","PredictionSupportedSymbol","ETH","PredictionsChartView","TradingView","HistoryFilter","SnapshotCommand","ProposalType","ProposalState","TABLE","CARD","BASIC","TRADING_VIEW","serializeToken","deserializeToken","getTimezoneOffsetInMilliseconds","utcDate","setUTCFullYear","startOfDay","dirtyDate","setHours","MILLISECONDS_IN_DAY","differenceInCalendarDays","dirtyDateLeft","dirtyDateRight","startOfDayLeft","startOfDayRight","timestampLeft","timestampRight","compareLocalAsc","dateLeft","dateRight","toggleSetAudioMode","difference","setDate","isLastDayNotFull","differenceInDays","useExchangeChartManager","isChartDisplayed","isDisplayed","useExchangeChartViewManager","chartViewMode","zapEnabled","newIsDisplayed","useIsExpertMode","toggleSetExpertMode","newSingleHopOnly","showAcknowledgement","useAddUserToken","useRemoveUserAddedToken","useGasPrice","userGas","serializePair","usePairAdder","toV2LiquidityToken","useTrackedTokenPairs","pinnedPairs","generatedPairs","savedSerializedPairs","userPairs","forChain","combinedList","keyed","serializedTokensMap","selectUserTokens","getTradingCompetitionAddressMoD","getICakeAddress","cakeAbi","tradingCompetitionMoDAbi","cakeFlexibleSideVaultV2Abi","getMulticallContract","MultiCallAbi","iCakeAbi","clipboard","permissions","writeText","queryCommandSupported","ele","execCommand","minPrecision","maxPrecision","minimumFractionDigits","maximumFractionDigits","displayDecimals","EthersBigNumber","chainIdOverride","calculateGasMargin","isTokenOnList","defaultTokens","multi","itf","tryAggregate","BSC_PROD_NODE","NEXT_PUBLIC_NODE_PRODUCTION","unserializedTokens","startLength","endLength","bscMain","bscTestnet","defaultWagmiConfig","createWeb3Modal","enableAnalytics","NETWORK_CONFIG","scanURL","externalProvider","switchError","chainName","blockExplorerUrls","registerToken","tokenSymbol","tokenDecimals","tokenLogo","canRegisterToken","wrappedCurrencyAmount","unwrappedToken","maxKeys","stringifyPrimitive","__nccwpck_require__","ab","__dirname","useDebugValue","getSnapshot","inst","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queueIndex","cleanUpNextTick","drainQueue","runClearTimeout","Item","browser","argv","cwd","chdir","umask","canPromise","QRCode","CanvasRenderer","SvgRenderer","renderCanvas","renderFunc","canvas","argsNum","isLastArgCb","getContext","toCanvas","toDataURL","renderToDataURL","getSymbolSize","getRowColCoords","posCount","intervals","positions","getPositions","coords","posLength","Mode","ALPHA_NUM_CHARS","AlphanumericData","getBitsLength","bitBuffer","BitBuffer","bufIndex","putBit","getLengthInBits","BitMatrix","reservedBit","row","col","reserved","isReserved","encodeUtf8","ByteData","BYTE","ECLevel","EC_BLOCKS_TABLE","EC_CODEWORDS_TABLE","getBlocksCount","errorCorrectionLevel","getTotalCodewordsCount","Utils","G15_BCH","getBCHDigit","getEncodedBits","EXP_TABLE","LOG_TABLE","KanjiData","KANJI","toSJIS","Patterns","PATTERN000","PATTERN001","PATTERN010","PATTERN011","PATTERN100","PATTERN101","PATTERN110","PATTERN111","PenaltyScores","getMaskAt","maskPattern","getPenaltyN1","sameCountCol","sameCountRow","lastCol","lastRow","getPenaltyN2","getPenaltyN3","bitsCol","bitsRow","getPenaltyN4","darkCount","modulesCount","applyMask","getBestMask","setupFormatFunc","numPatterns","bestPattern","lowerPenalty","penalty","VersionCheck","Regex","ccBits","MIXED","getCharCountIndicator","getBestModeForData","dataStr","testNumeric","testAlphanumeric","testKanji","NumericData","remainingNum","GF","coeff","divident","divisor","generateECPolynomial","degree","poly","AlignmentPattern","FinderPattern","MaskPattern","ECCode","ReedSolomonEncoder","Version","FormatInfo","Segments","setupFormatInfo","matrix","createData","segments","dataTotalCodewordsBits","getSymbolTotalCodewords","remainingByte","totalCodewords","ecTotalCodewords","dataTotalCodewords","ecTotalBlocks","blocksInGroup1","totalCodewordsInGroup1","dataCodewordsInGroup1","dataCodewordsInGroup2","ecCount","dcData","ecData","maxDataSize","dataSize","createCodewords","createSymbol","fromArray","estimatedVersion","rawSegments","rawSplit","getBestVersionForData","bestVersion","dataBits","moduleCount","setupFinderPattern","setupTimingPattern","setupAlignmentPattern","setupVersionInfo","inc","bitIndex","byteIndex","setupData","toSJISFunc","setToSJISFunction","Polynomial","genPoly","initialize","paddedData","buff","kanji","BYTE_KANJI","TEST_KANJI","TEST_NUMERIC","TEST_ALPHANUMERIC","getStringByteLength","unescape","getSegments","regex","getSegmentsFromString","numSegs","alphaNumSegs","byteSegs","kanjiSegs","isKanjiModeEnabled","getSegmentBitsLength","buildSingleSegment","modesHint","bestMode","seg","segs","buildNodes","prevNodeIds","nodeGroup","currentNodeIds","lastCount","prevNodeId","buildGraph","optimizedSegs","prevSeg","mergeSegments","toSJISFunction","CODEWORDS_COUNT","digit","G18_BCH","getReservedBitsCount","getTotalBitsFromDataArray","totalBits","reservedBits","getCapacity","usableBits","ecl","getBestVersionForMixedData","getBestVersionForDataLength","qrData","canvasEl","getCanvasElement","getImageWidth","createImageData","qrToImageData","clearRect","clearCanvas","putImageData","rendererOpts","getColorAttrib","attrib","svgCmd","cmd","qrcodesize","bg","moveBy","newRow","lineLength","qrToPath","svgTag","hex2rgba","hexCode","qrSize","imgData","qr","symbolSize","scaledMargin","palette","posDst","pxColor","hasElementType","hasMap","hasSet","hasArrayBuffer","it","$$typeof","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isForwardRef","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","getWindow","ownerDocument","defaultView","isHTMLElement","HTMLElement","isShadowRoot","ShadowRoot","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","getBoundingClientRect","includeScale","isFixedStrategy","clientRect","scaleX","scaleY","offsetHeight","visualViewport","addVisualOffsets","offsetTop","getWindowScroll","win","pageXOffset","getNodeName","getDocumentElement","getWindowScrollBarX","isScrollParent","_getComputedStyle","overflowX","overflowY","getCompositeRect","elementOrVirtualElement","offsetParent","isFixed","isOffsetParentAnElement","offsetParentIsScaled","rect","isElementScaled","offsets","getNodeScroll","clientLeft","clientTop","getLayoutRect","getParentNode","assignedSlot","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","isFirefox","currentNode","perspective","contain","willChange","getContainingBlock","auto","basePlacements","viewport","variationPlacements","modifierPhases","visited","requires","requiresIfExists","dep","depModifier","DEFAULT_OPTIONS","areValidElements","popperGenerator","generatorOptions","_generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","defaultOptions","reference","orderedModifiers","modifiersData","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","contextElement","orderModifiers","merged","mergeByName","_ref$options","effect","cleanupFn","noopFn","forceUpdate","_state$elements","rects","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","passive","getBasePlacement","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mainAxis","unsetSides","mapToStyles","_Object$assign2","popperRect","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","_ref4","dpr","devicePixelRatio","roundOffsetsByDPR","_options$offset","invertDistance","skidding","distanceAndSkiddingToXY","_data$state$placement","popperOffsets","getOppositePlacement","matched","getOppositeVariationPlacement","rootNode","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","html","clientWidth","layoutViewport","getViewportRect","getInnerBoundingClientRect","winScroll","scrollHeight","getDocumentRect","getClippingRect","boundary","rootBoundary","mainClippingParents","clippingParents","clipperElement","getClippingParents","firstClippingParent","clippingRect","accRect","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","altContext","clippingClientRect","referenceClientRect","popperClientRect","elementClientRect","overflowOffsets","offsetData","within","_options$mainAxis","checkMainAxis","_options$altAxis","altAxis","checkAltAxis","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","referenceRect","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","minLen","maxLen","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_mainSide","_altSide","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","centerToReference","center","axisProp","centerOffset","_options$element","getSideOffsets","preventedOffsets","isAnySideFullyClipped","side","_options$scroll","_options$resize","resize","_ref5","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","initialStyles","_skip","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","oppositePlacement","getExpandedFallbackPlacements","placements","_options$allowedAutoP","allowedPlacements","overflows","computeAutoPlacement","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","isVertical","mainVariationSide","altVariationSide","checks","_loop","fittingPlacement","preventOverflow","referenceOverflow","popperAltOverflow","referenceClippingOffsets","popperEscapeOffsets","isReferenceHidden","hasPopperEscaped","useIsomorphicLayoutEffect","EMPTY_MODIFIERS","referenceElement","popperElement","prevOptions","optionsWithDefaults","_React$useState","updateStateModifier","popperOptions","newOptions","popperInstanceRef","popperInstance","createPopper","getBatch","ContextKey","gT","_gT$ContextKey","contextMap","realContext","createReduxContextHook","useSyncExternalStoreWithSelector","refEquality","createSelectorHook","useReduxContext","equalityFnOrOptions","equalityFn","stabilityCheck","noopCheck","getServerState","globalStabilityCheck","globalNoopCheck","wrappedSelector","selectedState","addNestedSub","nullListeners","parentSub","subscriptionsAmount","selfSubscribed","handleChangeWrapper","onStateChange","trySubscribe","isSubscribed","createListenerCollection","tryUnsubscribe","cleanupListener","notifyNestedSubs","getListeners","serverState","createStoreHook","createDispatchHook","newBatch","initializeConnect","hasValue","_getStorage","storageType","testKey","hasStorage","noopStorage","toPropertyKey","_objectSpread2","formatProdErrorMessage","$$observable","observable","ActionTypes","INIT","REPLACE","PROBE_UNKNOWN_ACTION","createStore","currentReducer","currentState","currentListeners","nextListeners","isDispatching","ensureCanMutateNextListeners","replaceReducer","nextReducer","outerSubscribe","observeState","reducerKeys","finalReducers","shapeAssertionError","finalReducerKeys","assertReducerShape","hasChanged","previousStateForKey","nextStateForKey","compose","funcs","applyMiddleware","middlewares","_dispatch","middlewareAPI","NOT_FOUND","defaultEqualityCheck","defaultMemoize","equalityCheckOrOptions","providedOptions","equalityCheck","_providedOptions$equa","_providedOptions$maxS","resultEqualityCheck","createCacheKeyComparator","createSingletonCache","cacheIndex","createLruCache","matchingEntry","clearCache","getDependencies","dependencies","dependencyTypes","createSelectorCreator","memoizeOptionsFromArgs","_len2","_key2","_lastResult","_recomputations","directlyPassedOptions","memoizeOptions","resultFunc","_directlyPassedOption","_directlyPassedOption2","finalMemoizeOptions","memoizedResultFunc","lastResult","recomputations","resetRecomputations","objA","objB","compareContext","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","separator","separatorIndex","ca","da","ea","fa","Y","ha","ia","ka","aa","ba","la","ma","na","oa","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","lineHeight","orphans","tabSize","widows","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","reactPropsRegex","isPropValid","styledComponentId","REACT_APP_SC_ATTR","SC_ATTR","SC_DISABLE_SPEEDY","REACT_APP_SC_DISABLE_SPEEDY","indexOfGroup","insertRules","insertRule","clearGroup","deleteRule","getGroup","getRule","registerName","textContent","childNodes","hasAttribute","nextSibling","insertBefore","sheet","styleSheets","ownerNode","cssRules","rules","isServer","useCSSOMInjection","gs","server","querySelectorAll","registerId","reconstructWithOptions","allocateGSInstance","hasNameForId","clearNames","clearRules","clearTag","te","ne","oe","staticRulesId","isStatic","baseHash","baseStyle","generateAndInjectStyles","se","ae","plugins","ce","le","Consumer","de","he","pe","fe","me","stylisPlugins","disableCSSOMInjection","disableVendorPrefixes","inject","ve","ge","Se","we","Ee","be","isReactComponent","isCss","Ne","Ae","Oe","Re","De","je","Te","ke","Ve","Be","ze","Me","Le","Fe","Ye","parentComponentId","shouldForwardProp","componentStyle","foldedComponentIds","$as","withComponent","_foldedDefaultProps","qe","He","createStyles","removeStyles","renderStyles","$e","We","_emitSheetCSS","getStyleTags","getStyleElement","collectStyles","interleaveWithNodeStream","Xe","merge","_assign","defaults","createMediaQuery","def","undef","createParser","shouldSort","isCacheDisabled","disableStyledSystemCache","sx","media","parseResponsiveStyle","parseResponsiveObject","sensitivity","propNames","_createParser","_props","_assign2","_assign3","_ref$transform","defaultScale","system","isNumber","verticalAlign","fontFamily","letterSpacing","fontStyle","alignContent","justifyItems","flexBasis","justifySelf","alignSelf","grid","gridGap","gridColumnGap","gridRowGap","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","borderWidth","borderStyle","borderTop","borderRight","borderBottom","borderLeft","borderX","borderY","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRightWidth","borderRightColor","borderRightStyle","backgroundRepeat","bgImage","bgSize","bgPosition","bgRepeat","getMargin","absolute","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","my","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","textShadow","defaultBreakpoints","fontSizes","aliases","multiples","gap","columnGap","rowGap","borderTopWidth","borderTopColor","borderTopStyle","outlineColor","positiveOrNegative","_extends2","responsive","scaleName","dirs","_ref$prop","_ref$variants","fmt","g1","g2","nd","intd","intp","fracp","dsep","gsep","gsize","sgsize","fgsep","fgsize","tfmt","cfmt","decimalSeparator","secondaryGroupSize","fractionGroupSeparator","fractionGroupSize","__decorate","decorators","decorate","__param","paramIndex","__metadata","metadataKey","metadataValue","ar","__spreadArrays","jl","__asyncGenerator","resume","fulfill","settle","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","__classPrivateFieldGet","privateMap","__classPrivateFieldSet","_arrayLikeToArray","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_createClass","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","hasInstance","_objectSpreadProps","_slicedToArray","_taggedTemplateLiteral","strings","_unsupportedIterableToArray","wrapNativeSuper","http","multicall3","webSocket","ensUniversalResolver","options_","shimDisconnect","unsupported","isChainUnsupported","shimDisconnectKey","detectedName","isApexWallet","isAvalanche","isBackpack","isBifrost","isBitKeep","isBitski","isBlockWallet","isBraveWallet","isCoinbaseWallet","isDawn","isDefiant","isEnkrypt","isExodus","isFrame","isFrontier","isGamestop","isHaqqWallet","isHyperPay","isImToken","isHaloWallet","isKuCoinWallet","isMathWallet","isNovaWallet","isOkxWallet","isOKExWallet","isOneInchIOSWallet","isOneInchAndroidWallet","isOpera","isPhantom","isRabby","isRainbow","isStatus","isTalisman","isTally","isTokenPocket","isTokenary","isTrust","isTrustWallet","isTTWallet","isXDEFI","isZerion","nameSet","unknownCount","getInjectedName","onAccountsChanged","onChainChanged","onDisconnect","switchChain","isUserRejectedRequestError","connectorId","originalError","getBlockExplorerUrls","error2","defineChain","formatters","serializers","__publicField","__accessCheck","__privateGet","getter","__privateAdd","__privateSet","__privateMethod","Connector","blockExplorer","setStorage","ChainNotConfiguredForConnectorError","ConnectorNotFoundError","isNullUniversalResolverError","callType","walk","encodedLabelToLabelhash","isHex","labels","hashFromEncodedLabel","toBytes","labelhash","packetToBytes","packet","encoded","EXECUTION_REVERTED_ERROR_CODE","getContractError","docsPath","functionName","shortMessage","readContract","callRequest","getAction","EnsAvatarInvalidMetadataError","metaMessages","EnsAvatarInvalidNftUriError","EnsAvatarUriResolutionError","EnsAvatarUnsupportedNamespaceError","namespace","networkRegex","ipfsHashRegex","base64Regex","dataURIRegex","getGateway","custom","defaultGateway","resolveAvatarUri","gatewayUrls","isEncoded","isOnChain","ipfsGateway","arweaveGateway","arweave","networkRegexMatch","subpath","subtarget","isIPNS","isIPFS","replacedUri","parsedUri","getJsonImage","image_url","image_data","parseAvatarUri","resolvedURI","isImage","isImageUri","parseAvatarRecord","record","uri_","asset_namespace","tokenID","eip_namespace","chainID","erc_namespace","parseNftUri","nftUri","getNftTokenUri","resolvedNftUri","encodedJson","uriTokenId","padStart","getMetadataAvatarUri","parseNftAvatarUri","getEnsText","universalResolverAddress","universalResolverAddress_","getChainContractAddress","createFilterRequestScope","requestMap","onResponse","method_","FilterTypeNotSupportedError","encodeEventTopics","abiItem","getAbiItem","formatAbiItem","getEventSelector","indexedInputs","args_","encodeArg","encodeAbiParameters","createContractEventFilter","getRequest","createEventFilter","events_","createPendingTransactionFilter","promiseCache","responseCache","withCache","cacheKey","cacheTime","buildCache","created","blockNumberHex","strict_","argTopics","isUnnamed","decodeTopic","nonIndexedInputs","decodedData","decodeAbiParameters","formatLog","getContractEvents","getFeeHistory","rewardPercentiles","feeHistory","gasUsedRatio","oldestBlock","reward","formatFeeHistory","getFilterChanges","_client","getProof","blockTag_","proof","storageProof","formatProof","statuses","formatTransactionReceipt","transactionReceipt","uninstallFilter","verifyHash","signatureHex","encodeDeployData","a_","b_","equalBytes","verifyMessage","to_","messageBytes","prefixBytes","hashMessage","hashTypedData","domain_","types_","encodedTypes","encodedValues","hashType","encodeField","encodedHashType","unsortedDeps","findTypeDependencies","deps","primaryType_","parsedType","typeValuePairs","listenersCache","cleanupCache","callbackCount","observerId","callbacks","callbackId","unwatch","cleanup","fns","emitOnBegin","initialWaitTime","unpoll","initialWait","watch","watchBlockNumber","emitMissed","onBlockNumber","poll_","prevBlockNumber","unsubscribe_","onData","subscribeBlockNumber","publicActions","createBlockFilter","estimateContractGas","parseAccount","getBlockTransactionCount","getBytecode","getEnsAddress","functionData","getEnsAvatar","getEnsName","reverseNode","getEnsResolver","estimateFeesPerGas","getFilterLogs","estimateMaxPriorityFeePerGas","slot","getTransactionConfirmations","transactionBlockNumber","allowFailure","batchSize","batchSize_","multicallAddress","multicallAddress_","currentChunk","currentChunkSize","aggregate3Results","allSettled","aggregate3Result","prepareTransactionRequest","sendRawTransaction","simulateContract","dataSuffix","verifyTypedData","waitForTransactionReceipt","onReplaced","replacedTransaction","retrying","_unobserve","_unwatch","blockNumber_","withRetry","retryCount","shouldRetry","replacementTransaction","err_","watchBlocks","onBlock","includeTransactions_","enablePolling","prevBlock","subscribeBlocks","watchContractEvent","onLogs","pollContractEvent","subscribeContractEvent","watchEvent","subscribeEvent","watchPendingTransactions","onTransactions","subscribePendingTransactions","createPublicClient","createClient","transports_","rank","retryDelay","transports","rankOptions","onTransports","sampleCount","weights","stability","stabilityWeight","latency","latencyWeight","samples","rankTransports_","transport_","maxLatency","scores","latencies","latencyScore","successes","stabilityScore","rankTransports","UrlRequiredError","getNativeWebSocket","withTimeout","errorInstance","timeoutId","controller","socketsCache","getSocket","schedule","createBatchScheduler","requests","onMessage","isSubscription","onClose","socket_","signal_","details","CLOSED","CLOSING","id_","webSocketAsync","subscribeWithSelector","origSubscribe","optListener","currentSlice","nextSlice","previousSlice","fireImmediately","createJSONStorage","getStorage","str2","reviver","replacer","toThenable","_onRejected","_onFulfilled","baseOptions","partialize","persistedState","hasHydrated","hydrationListeners","finishHydrationListeners","thenableSerialize","errorInSync","serializedValue","savedSetState","configResult","stateFromStorage","hydrate","postRehydrationCallback","onRehydrateStorage","storageValue","deserializedStorageValue","_a2","clearStorage","onHydrate","onFinishHydration","oldImpl","skipHydration","newImpl","createStoreImpl","createState","shallow$1","keyA","FENCED","unsafe_atob","read_sorted","read_sorted_arrays","read_array_while","read_mapped","quote_cp","hex_cp","codePointAt","str_from_cps","compare_arrays","S0","L0","V0","T0","T_COUNT","N_COUNT","V_COUNT","unpack_cc","packed","unpack_cp","SHIFTED_RANK","EXCLUSIONS","DECOMP","RECOMP","is_hangul","compose_pair","recomp","decomposed","init$1","check_order","cc","s_index","v_index","t_index","mapped","prev_cc","nfd","prev_cp","composed","composed_from_decomposed","STOP_CH","Array_from","group_has_cp","Emoji","is_emoji","CM","NSM","ESCAPE","NFC_CHECK","GROUPS","WHOLE_VALID","WHOLE_MAP","EMOJI_LIST","read_sorted_array","read_sorted_set","unrestricted","read_chunked","wholes","recs","rec","union","complement","add_to_union","br","read_trie","quoted_cp","should_escape","bidi_qq","safe_str_from_cps","quoter","nf","ef","tokens_from_str","token_count","norm","check_leading_underscore","check_label_extension","error_placement","check_fenced","error_group_member","error_disallowed","determine_group","check_group","maker","shared","check_whole","flatten","quoted","gg","configureChains","defaultChains","httpUrls","wsUrls","configExists","apiConfig","publicClient","activeChain","chainHttpUrls","retryCount_","timeout_","shouldSplitBatch","webSocketPublicClient","chainWsUrls","ChainNotConfiguredError","ConnectorAlreadyConnectedError","ConfigChainsNotFound","SwitchChainNotSupportedError","deepEqual","findAndReplace","cacheRef","cachedString","getUnit","unit","getReferenceKey","cutoff","getCutoff","indent","circularReplacer","hasReplacer","hasCircularReplacer","thisCutoff","valueCutoff","createReplacer","value_","value2","createStorage","deserialize2","serialize2","defaultState","_isAutoConnecting","_lastUsedConnector","_addEffects","addEffects_fn","storeKey","createConfig","config_","autoConnect","connectors","publicClients","webSocketPublicClients","_error","connectors_","getPublicClient","getWebSocketPublicClient","lastUsedChainId","updater","clearState","setConnectors","publicClient_","setPublicClient","webSocketPublicClient_","setWebSocketPublicClient","setLastUsedConnector","lastUsedConnector","getConfig","config2","activeConnector","prevConnector","erc20ABI_bytes32","getWalletClient","watchPublicClient","watchWalletClient","chainId_","readContracts","contractsByChainId","contracts2","multicallResults","resultIndexes","fetchBalance","fetchContractBalance","erc20Config","isConnected","isConnecting","isDisconnected","isReconnecting","activeChains","switchNetwork","watchAccount","watchNetwork","fetchEnsAvatar","fetchEnsName","DateUtil","getYear","getRelativeDateFromNow","proxyStateMap","refSet","buildProxyFunction","objectIs","newProxy","canProxy","defaultHandlePromise","snapCache","createSnapshot","handlePromise","snap","target2","ensureVersion","preventExtensions","proxyCache","versionHolder","proxyFunction","initialObject","notifyUpdate","nextVersion","checkVersion","createPropListener","newOp","propProxyStates","removePropListener","baseObject","proxyObject","deleted","hasPrevValue","nextValue","childProxyState","propProxyState","addPropListener","proxyState","nextCheckVersion","propVersion","prevRemove","defaultProxyFunction","notifyInSync","isListenerActive","subscribeKey","SECURE_SITE","ConstantsUtil","FOUR_MINUTES_MS","TEN_SEC_MS","ONE_SEC_MS","SECURE_SITE_DASHBOARD","SECURE_SITE_FAVICON","RESTRICTED_TIMEZONES","CONNECTOR_RDNS_MAP","coinbaseWallet","CoreHelperUtil","isAndroid","ua","isIos","isClient","isPairingExpired","isAllowedRetry","lastRetry","copyToClopboard","getPairingExpiry","getPlainAddress","caipAddress","milliseconds","isHttpUrl","formatNativeUrl","appUrl","wcUri","formatUniversalUrl","safeAppUrl","replaceAll","openHref","imagePromise","formatBalance","formattedBalance","isRestrictedRegion","timeZone","Intl","DateTimeFormat","resolvedOptions","capTimeZone","getApiUrl","getBlockchainApiUrl","getAnalyticsUrl","getUUID","randomUUID","issues","AccountController","setIsConnected","setCaipAddress","setBalance","balanceSymbol","setProfileName","profileName","setProfileImage","profileImage","setAddressExplorerUrl","explorerUrl","addressExplorerUrl","resetAccount","FetchUtil","createUrl","WC_DEEPLINK","W3M_RECENT","W3M_CONNECTED_WALLET_IMAGE_URL","W3M_CONNECTED_CONNECTOR","StorageUtil","setWalletConnectDeepLink","getWalletConnectDeepLink","deepLink","deleteWalletConnectDeepLink","setWeb3ModalRecent","wallet","recentWallets","getRecentWallets","recent","setConnectedWalletImageUrl","getConnectedWalletImageUrl","setConnectedConnector","connectorType","getConnectedConnector","walletImages","networkImages","connectorImages","tokenImages","AssetController","subscribeNetworkImages","setWalletImage","setNetworkImage","setConnectorImage","setTokenImage","sdkType","sdkVersion","OptionsController","setProjectId","setIncludeWalletIds","includeWalletIds","setExcludeWalletIds","excludeWalletIds","setFeaturedWalletIds","featuredWalletIds","setTokens","setTermsConditionsUrl","termsConditionsUrl","setPrivacyPolicyUrl","privacyPolicyUrl","setCustomWallets","customWallets","setEnableAnalytics","setSdkVersion","ConnectorController","addConnector","emailConnector","optionsState","syncDappData","getEmailConnector","getAnnouncedConnectorRdns","rdns","getConnectors","selectedNetworkId","PublicStateController","supportsAllNetworks","isDefaultCaipNetwork","NetworkController","_getClient","setClient","setCaipNetwork","caipNetwork","setDefaultCaipNetwork","setRequestedCaipNetworks","requestedNetworks","requestedCaipNetworks","getApprovedCaipNetworksData","approvedCaipNetworkIds","switchCaipNetwork","resetNetwork","featured","recommended","wallets","ApiController","_getApiHeaders","imageId","createObjectURL","_fetchNetworkImage","_fetchConnectorImage","include","images","image_id","_fetchWalletImage","recommendedImages","recentImages","prefetchPromise","fetchFeaturedWallets","fetchRecommendedWallets","fetchNetworkImages","fetchConnectorImages","EventsController","hostname","_sendAnalyticsEvent","RouterController","at","goBack","goBackToIndex","historyIndex","ModalController","setLoading","BlockchainApiController","fetchIdentity","caipChainId","fetchTransactions","SnackController","showSuccess","showError","transactionsByYear","TransactionsController","accountAddress","nonSpamTransactions","filterSpamTransactions","filteredTransactions","groupTransactionsByYear","transactionsMap","grouped","minedAt","transfers","transfer","nft_info","is_spam","resetTransactions","wcError","buffering","ConnectionController","connectWalletConnect","wcPromise","wcPairingExpiry","connectExternal","checkInstalled","resetWcConnection","wcLinking","recentWallet","setWcLinking","setWcError","setRecentWallet","setBuffering","isSiweEnabled","SIWEController","getNonce","setNonce","createMessage","setMessage","signIn","signOut","onSignOut","onSignIn","setSIWEClient","themeMode","themeVariables","ThemeController","setThemeMode","setThemeVariables","AssetUtil","getWalletImage","getNetworkImage","getConnectorImage","RouterUtil","goBackOrCloseModal","navigateAfterNetworkSwitch","networkSelectIndex","SCROLL_LOCK","W3mModal","initializeTheming","onOpen","isEnabled","newAccountState","onNewAccountState","disconnectedCallback","onRemoveKeyboardListener","onOverlayClick","defaultThemeMode","UiHelperUtil","onScrollUnlock","finished","onScrollLock","onAddKeyboardListener","styleTag","dataset","shadowRoot","newCaipAddress","onSiweNavigation","customElement","themeTag","darkModeTag","lightModeTag","createRootStyles","setColorTheme","resetStyles","elementStyles","colorStyles","classOrDescriptor","clazz","customElements","define","legacyCustomElement","finisher","standardCustomElement","WuiCard","allWalletsSvg","appStoreSvg","appleSvg","arrowBottomSvg","arrowLeftSvg","arrowRightSvg","arrowTopSvg","browserSvg","checkmarkSvg","chevronBottomSvg","chevronLeftSvg","chevronRightSvg","chevronTopSvg","chromeStoreSvg","clockSvg","closeSvg","coinPlaceholderSvg","compassSvg","copySvg","cursorSvg","desktopSvg","disconnectSvg","discordSvg","etherscanSvg","extensionSvg","externalLinkSvg","facebookSvg","filtersSvg","githubSvg","googleSvg","helpCircleSvg","infoCircleSvg","mailSvg","mobileSvg","networkPlaceholderSvg","nftPlaceholderSvg","offSvg","playStoreSvg","qrCodeIcon","refreshSvg","searchSvg","swapHorizontalSvg","swapHorizontalBoldSvg","swapVerticalSvg","telegramSvg","twitchSvg","twitterSvg","twitterIconSvg","verifySvg","verifyFilledSvg","walletPlaceholderSvg","walletSvg","walletConnectSvg","warningCircleSvg","svgOptions","allWallets","appStore","chromeStore","apple","arrowBottom","arrowLeft","arrowRight","arrowTop","checkmark","chevronBottom","chevronLeft","chevronRight","chevronTop","clock","compass","coinPlaceholder","desktop","discord","extension","externalLink","facebook","github","google","helpCircle","infoCircle","mail","mobile","networkPlaceholder","nftPlaceholder","playStore","qrCode","swapHorizontal","swapHorizontalBold","swapVertical","telegram","twitch","twitter","twitterIcon","verifyFilled","walletConnect","walletPlaceholder","warningCircle","WuiIcon","WuiImage","WuiLoadingHexagon","WuiLoadingSpinner","WuiLoadingThumbnail","radius","svgLoaderTemplate","radiusFactor","dashArrayStart","dashArrayEnd","dashOffset","WuiShimmer","nt","WuiText","align","daoSvg","defiSvg","defiAltSvg","ethSvg","layersSvg","lockSvg","loginSvg","networkSvg","nftSvg","nounSvg","profileSvg","systemSvg","dao","defi","defiAlt","eth","layers","lock","login","noun","profile","WuiVisual","getSpacingStyles","getFormattedDate","day","getHostName","getTruncateString","charsStart","charsEnd","generateAvatarColors","baseColor","rgbColor","hexToRgb","masterBorderRadius","getPropertyValue","edge","gradientCircle","tintedColor","tintColor","rgb","tint","character","getColorTheme","WuiFlex","WuiAvatar","imageSrc","visualTemplate","cssColors","WuiIconBox","iconColor","iconSize","bgMix","isGray","isOpaque","isColorChange","bgValueVariable","WuiAccountButton","networkSrc","isProfileName","balanceTemplate","networkElement","WuiWalletImage","installed","badgeSize","walletIcon","templateVisual","WuiAllWalletsImage","isPlaceholders","walletName","WuiButton","fullWidth","hasIconLeft","hasIconRight","textVariant","loadingTemplate","handleSlotLeftChange","handleSlotRightChange","WuiCardSelectLoader","shimmerTemplate","networkLgSvg","WuiNetworkImage","selected","WuiCardSelect","imageTemplate","WuiChip","WuiConnectButton","WuiCtaButton","buttonLabel","WuiInputText","inputElementRef","sizeClass","templateIcon","enterKeyHint","dispatchInputChangeEvent","bubbles","WuiEmailInput","templateError","WuiIconLink","WuiInputElement","WuiInputNumeric","WuiLink","WuiListItem","chevron","iconVariant","chevronTemplate","TransactionTypePastTense","WuiTransactionVisual","secondImage","firstImage","isLeftNFT","leftRadius","rightRadius","firstImageType","getStatusColor","getDirectionIcon","onlyDirectionIcon","WuiTransactionListItem","templateDescription","templateSecondDescription","descriptions","WuiTransactionListItemLoader","WuiTag","WuiListWallet","showAllWallets","templateAllWallets","templateWalletImage","templateStatus","tagLabel","tagVariant","WuiLogo","logo","WuiLogoSelect","WuiNetworkButton","WuiOtp","otp","numerics","shouldInputBeEnabled","handleKeyDown","inputElement","getInputElement","currentCaretPos","selectionStart","setSelectionRange","focusInputField","updateInput","nextIndex","firstUpdated","numericElements","handleInput","inputType","handlePaste","inputString","nextNumeric","nextInput","isAdjecentDots","cy","otherCy","cellSize","QrCodeUtil","logoSize","dotColor","dots","getMatrix","qrList","dotSize","clearArenaSize","matrixMiddleStart","matrixMiddleEnd","circles","cx","circlesToConnect","cys","newCys","WuiQrCode","templateSvg","WuiSearchBar","inputComponentRef","clearValue","WuiSnackbar","WuiTabs","tabs","onTabChange","activeTab","localTabWidth","isDense","tab","onTabClick","animateTabs","initialAnimation","passiveBtn","activeBtn","passiveBtnText","activeBtnText","activeBtnBounds","activeBtnTextBounds","WuiTooltip","WuiVisualThumbnail","borderRadiusFull","WuiNoticeCard","WuiListAccordion","textTitle","overflowedContent","toggled","enableAccordion","scrollElement","scrollHeightElement","heightElement","requestUpdate","WuiListContent","textValue","templateContent","WuiListWalletTransaction","networkCurreny","networkImageUrl","receiverAddress","templateNetworkVisual","WuiGrid","WuiSeparator","plusTypes","minusTypes","TransactionUtil","getTransactionGroupTitle","getTransactionImages","secondTransfer","isAllNFT","haveMultipleTransfers","getTransactionImage","getTransactionTransferTokenType","getTransactionImageURL","imageURL","isNFT","isFungible","fungible_info","preview","getTransactionDescriptions","operationType","haveTransfer","firstTransfer","firstDescription","getTransferDescription","secondDescription","sentFrom","sentTo","getFungibleTransferDescription","getQuantityFixedValue","W3mAccountButton","balanceVal","networkImage","showBalance","W3mButton","loadingLabel","isAccount","W3mConnectButton","W3mNetworkButton","W3mRouter","resizeObserver","prevHeight","prevHistoryLength","onViewChange","ResizeObserver","contentRect","getWrapper","viewTemplate","newView","xOut","xIn","W3mAccountView","usubscribe","disconecting","onCopyAddress","explorerBtnTemplate","emailCardTemplate","emailBtnTemplate","isAllowedNetworkSwitch","onNetworks","onGoToUpgradeView","getEmail","onGoToUpdateEmail","onExplorer","isMultiNetwork","isValidNetwork","W3mAllWalletsView","onDebouncedSearch","isSearch","onInputChange","qrButtonTemplate","onWalletConnectQr","W3mConnectView","walletConnectConnectorTemplate","recentTemplate","announcedTemplate","injectedTemplate","featuredTemplate","customTemplate","recommendedTemplate","connectorsTemplate","allWalletsTemplate","onConnector","filterOutDuplicateWallets","onConnectWallet","announced","announcedRdns","rawCount","roundedCount","onAllWallets","eip6963","overrideLength","maxRecommended","recentIds","rdnsIds","W3mConnectingWidget","secondaryBtnLabel","secondaryBtnIcon","secondaryLabel","onConnect","onRender","onAutoConnect","isWalletConnect","isRetrying","showRetry","onRetry","onShowRetry","subLabel","loaderTemplate","onTryAgain","onCopyUri","retryButton","borderRadiusMaster","platformMap","INJECTED","ANNOUNCED","W3mConnectingExternalView","onConnectProxy","W3mConnectingSiweView","dappName","isSigning","onCancel","onSign","W3mConnectingWcView","platforms","initializeConnection","determinePlatforms","headerTemplate","platformTemplate","finalizeConnection","mobile_link","desktop_link","webapp_link","injectedIds","injected_id","browserIds","isBrowser","isMobileWc","isWebWc","isBrowserInstalled","isBrowserWc","isDesktopWc","onSelectPlatform","container","W3mDownloadsView","chromeTemplate","iosTemplate","androidTemplate","homepageTemplate","chrome_store","onChromeStore","app_store","onAppStore","play_store","onPlayStore","homepage","onHomePage","W3mGetWalletView","recommendedWalletsTemplate","W3mNetworkSwitchView","onSwitchNetwork","W3mNetworksView","networksTemplate","onNetworkHelp","approvedIds","approvedIndexMap","indexA","indexB","PAGINATOR_ID","W3mTransactionsView","paginationObserver","createPaginationObserver","setPaginationObserver","templateTransactionsByYear","templateLoading","templateEmpty","sortedYearKeys","isLastGroup","yearInt","groupTitle","templateTransactions","templateRenderTransaction","isLastTransaction","getTransactionListItemProps","isLastTransfer","lastItem","W3mWhatIsANetworkView","W3mWhatIsAWalletView","onGetWallet","W3mFrameConstants","SECURE_SITE_SDK","APP_EVENT_KEY","FRAME_EVENT_KEY","RPC_METHOD_KEY","STORAGE_KEY","SESSION_TOKEN_KEY","EMAIL_LOGIN_USED_KEY","LAST_USED_CHAIN_KEY","LAST_EMAIL_LOGIN_TIME","EMAIL","APP_SWITCH_NETWORK","APP_CONNECT_EMAIL","APP_CONNECT_DEVICE","APP_CONNECT_OTP","APP_GET_USER","APP_SIGN_OUT","APP_IS_CONNECTED","APP_GET_CHAIN_ID","APP_RPC_REQUEST","APP_UPDATE_EMAIL","APP_AWAIT_UPDATE_EMAIL","APP_SYNC_THEME","APP_SYNC_DAPP_DATA","FRAME_SWITCH_NETWORK_ERROR","FRAME_SWITCH_NETWORK_SUCCESS","FRAME_CONNECT_EMAIL_ERROR","FRAME_CONNECT_EMAIL_SUCCESS","FRAME_CONNECT_DEVICE_ERROR","FRAME_CONNECT_DEVICE_SUCCESS","FRAME_CONNECT_OTP_SUCCESS","FRAME_CONNECT_OTP_ERROR","FRAME_GET_USER_SUCCESS","FRAME_GET_USER_ERROR","FRAME_SIGN_OUT_SUCCESS","FRAME_SIGN_OUT_ERROR","FRAME_IS_CONNECTED_SUCCESS","FRAME_IS_CONNECTED_ERROR","FRAME_GET_CHAIN_ID_SUCCESS","FRAME_GET_CHAIN_ID_ERROR","FRAME_RPC_REQUEST_SUCCESS","FRAME_RPC_REQUEST_ERROR","FRAME_SESSION_UPDATE","FRAME_UPDATE_EMAIL_SUCCESS","FRAME_UPDATE_EMAIL_ERROR","FRAME_AWAIT_UPDATE_EMAIL_SUCCESS","FRAME_AWAIT_UPDATE_EMAIL_ERROR","FRAME_SYNC_THEME_SUCCESS","FRAME_SYNC_THEME_ERROR","FRAME_SYNC_DAPP_DATA_SUCCESS","FRAME_SYNC_DAPP_DATA_ERROR","W3mFrameRpcConstants","util","objectUtil","assertEqual","assertIs","_arg","assertNever","_x","arrayToEnum","getValidEnumValues","validKeys","objectKeys","filtered","objectValues","checker","joinValues","jsonStringifyReplacer","mergeShapes","ZodParsedType","getParsedType","nan","null","unknown","ZodIssueCode","ZodError","addIssue","addIssues","subs","actualProto","_mapper","issue","fieldErrors","_errors","processError","unionErrors","returnTypeError","argumentsError","formErrors","errorMap","_ctx","invalid_type","invalid_literal","unrecognized_keys","invalid_union","invalid_union_discriminator","invalid_enum_value","invalid_arguments","invalid_return_type","invalid_date","invalid_string","validation","too_small","exact","inclusive","minimum","too_big","maximum","invalid_intersection_types","not_multiple_of","multipleOf","not_finite","defaultError","overrideErrorMap","getErrorMap","makeIssue","errorMaps","issueData","fullPath","fullIssue","maps","addIssueToContext","contextualErrorMap","schemaErrorMap","ParseStatus","dirty","syncPairs","mergeObjectSync","finalObject","alwaysSet","DIRTY","OK","isAborted","isAsync","errorUtil","errToObj","ParseInputLazyPath","_cachedPath","_path","handleResult","processCreateParams","invalid_type_error","required_error","iss","ZodType","spa","safeParseAsync","_def","safeParse","parseAsync","refine","refinement","superRefine","optional","nullable","nullish","describe","readonly","isNullable","isOptional","_getType","_getOrReturnCtx","_processInputParams","_parseSync","_parseAsync","maybeAsyncResult","getIssueProperties","_refinement","refinementData","ZodEffects","schema","typeName","ZodFirstPartyTypeKind","ZodOptional","ZodNullable","ZodArray","ZodPromise","option","ZodUnion","incoming","ZodIntersection","defaultValueFunc","ZodDefault","innerType","ZodBranded","catchValueFunc","ZodCatch","catchValue","This","ZodPipeline","ZodReadonly","cuidRegex","cuid2Regex","ulidRegex","uuidRegex","emailRegex","emojiRegex","ipv4Regex","ipv6Regex","ZodString","tooBig","tooSmall","lastIndex","ip","_regex","_addCheck","uuid","cuid","cuid2","ulid","datetime","minLength","nonempty","isDatetime","isEmail","isURL","isEmoji","isUUID","isCUID","isCUID2","isULID","isIP","floatSafeRemainder","valDecCount","stepDecCount","decCount","ZodNumber","setLimit","int","nonpositive","nonnegative","finite","safe","MIN_SAFE_INTEGER","minValue","maxValue","isInt","ZodBigInt","ZodBoolean","ZodDate","minDate","maxDate","ZodSymbol","ZodUndefined","ZodNull","ZodAny","_any","ZodUnknown","_unknown","ZodNever","never","ZodVoid","void","exactLength","mergeArray","deepPartialify","ZodObject","newShape","shape","fieldSchema","ZodTuple","_cached","nonstrict","passthrough","augment","_getCached","shapeKeys","extraKeys","catchall","unknownKeys","keyValidator","augmentation","merging","setKey","omit","deepPartial","newField","keyof","createZodEnum","strictCreate","lazycreate","childCtx","getDiscriminator","ZodLazy","ZodLiteral","ZodEnum","ZodNativeEnum","enum","ZodDiscriminatedUnion","discriminator","discriminatorValue","optionsMap","discriminatorValues","mergeValues","aType","bType","bKeys","sharedKeys","sharedValue","newArray","handleParsed","parsedLeft","parsedRight","itemIndex","schemas","ZodRecord","keySchema","keyType","valueSchema","mergeObjectAsync","third","ZodMap","finalMap","ZodSet","minSize","finalizeSet","parsedSet","ZodFunction","implement","makeArgsIssue","makeReturnsIssue","parsedArgs","parsedReturns","returnType","strictImplement","expectedValues","enumValues","Values","Enum","opt","nativeEnumValues","promisified","sourceType","checkCtx","fatal","processed","executeRefinement","createWithPreprocess","preprocess","removeDefault","newCtx","removeCatch","ZodNaN","BRAND","inResult","handleAsync","_fatal","late","stringType","numberType","nanType","bigIntType","booleanType","dateType","symbolType","undefinedType","nullType","anyType","unknownType","neverType","voidType","arrayType","objectType","strictObjectType","unionType","discriminatedUnionType","intersectionType","tupleType","recordType","mapType","setType","functionType","lazyType","literalType","enumType","nativeEnumType","promiseType","effectsType","optionalType","nullableType","preprocessType","pipelineType","NEVER","defaultErrorMap","setErrorMap","EMPTY_PATH","ZodTransformer","Schema","ZodSchema","any","discriminatedUnion","intersection","literal","nativeEnum","oboolean","onumber","ostring","pipeline","strictObject","tuple","quotelessJson","zError","zType","AppSwitchNetworkRequest","AppConnectEmailRequest","AppConnectOtpRequest","AppGetUserRequest","AppUpdateEmailRequest","AppSyncThemeRequest","AppSyncDappDataRequest","FrameConnectEmailResponse","FrameGetUserResponse","FrameIsConnectedResponse","FrameGetChainIdResponse","FrameSwitchNetworkResponse","FrameAwaitUpdateEmailResponse","RpcResponse","RpcPersonalSignRequest","RpcEthSendTransactionRequest","RpcEthAccountsRequest","RpcGetBalance","RpcEthEstimateGas","RpcEthGasPrice","RpcEthSignTypedDataV4","RpcEthGetTransactionByHash","RpcEthBlockNumber","RpcEthChainId","FrameSession","W3mFrameSchema","appEvent","frameEvent","W3mFrameStorage","EMAIL_MINIMUM_TIMEOUT","W3mFrameHelpers","checkIfAllowedToTriggerEmail","lastEmailLoginTime","cooldownSec","getTimeToNextEmailLogin","W3mFrame","isAppClient","iframe","rpcUrl","onFrameEvent","onAppEvent","postAppEvent","postFrameEvent","frameLoadPromise","frameLoadPromiseResolver","W3mFrameProvider","connectEmailResolver","connectDeviceResolver","connectOtpResolver","connectResolver","disconnectResolver","isConnectedResolver","getChainIdResolver","switchChainResolver","rpcRequestResolver","updateEmailResolver","awaitUpdateEmailResolver","syncThemeResolver","syncDappDataResolver","w3mFrame","onConnectEmailSuccess","onConnectEmailError","onConnectDeviceSuccess","onConnectDeviceError","onConnectOtpSuccess","onConnectOtpError","onConnectSuccess","onConnectError","onIsConnectedSuccess","onIsConnectedError","onGetChainIdSuccess","onGetChainIdError","onSignOutSuccess","onSignOutError","onSwitchChainSuccess","onSwitchChainError","onRpcRequestSuccess","onRpcRequestError","onSessionUpdate","onUpdateEmailSuccess","onUpdateEmailError","onAwaitUpdateEmailSuccess","onAwaitUpdateEmailError","onSyncThemeSuccess","onSyncThemeError","onSyncDappDataSuccess","onSyncDappDataError","getLoginEmailUsed","getLastUsedChainId","onRpcRequest","onRpcResponse","onIsConnected","setNewLastEmailLoginTime","setEmailLoginSuccess","setLastUsedChainId","deleteEmailLoginCache","W3mEmailVerifyOtpView","timeoutTimeLeft","startOTPTimeout","OTPTimeout","isResendDisabled","onOtpInputChange","onResendCode","connectOtp","connectEmail","W3mEmailVerifyDeviceView","listenForDeviceApproval","connectDevice","W3mApproveTransactionView","bodyObserver","onHideIframe","blueprint","renderRoot","dimensions","verticalPadding","onShowIframe","innerWidth","W3mUpgradeWalletView","W3mUpdateEmailWalletView","formRef","initialValue","onSubmitEmail","showSubmit","onEmailInputChange","updateEmail","W3mUpdateEmailWalletWaitingView","listenForEmailUpdateApproval","awaitUpdateEmail","markWalletsAsInstalled","installedConnectors","acum","sortedWallets","W3mAllWalletsList","initialFetch","walletsTemplate","paginationLoaderTemplate","gridEl","currentWallets","shimmerCount","loaderEl","explorerId","W3mAllWalletsSearch","prevQuery","onSearch","W3mConnectingHeader","platformTabs","onSelectPlatfrom","disconnectCallback","generateTabs","W3mConnectingWcBrowser","announcedConnector","injectedConnector","W3mConnectingWcDesktop","onRenderProxy","W3mConnectingWcMobile","onBuffering","W3mConnectingWcQrcode","qrCodeTemplate","copyTemplate","inactive","W3mConnectingSiwe","dappImageUrl","walletImageUrl","visuals","createAnimation","translation","W3mConnectingWcUnsupported","W3mConnectingWcWeb","headings","connectorName","Connect","Account","ConnectingExternal","ConnectingWalletConnect","ConnectingSiwe","Networks","SwitchNetwork","AllWallets","WhatIsANetwork","WhatIsAWallet","GetWallet","Downloads","EmailVerifyOtp","EmailVerifyDevice","ApproveTransaction","Transactions","UpgradeEmailWallet","UpdateEmailWallet","UpdateEmailWalletWaiting","W3mHeader","heading","showBack","onHistoryChange","getPadding","dynamicButtonTemplate","titleTemplate","separatorTemplate","onWalletHelp","isConnectHelp","isApproveTransaction","onGoBack","headingEl","preset","buttonEl","W3mHelpWidget","W3mLegalFooter","termsTemplate","andTemplate","privacyTemplate","W3mMobileDownloadLinks","isMultiple","shortName","presets","W3mSnackBar","W3mEmailLoginWidget","multipleConnectors","alphaWarningTemplate","onFocusEvent","submitButtonTemplate","isInitialized","WALLET_CONNECT_CONNECTOR_ID","INJECTED_CONNECTOR_ID","COINBASE_CONNECTOR_ID","SAFE_CONNECTOR_ID","LEDGER_CONNECTOR_ID","EIP6963_CONNECTOR_ID","EMAIL_CONNECTOR_ID","EIP155","ADD_CHAIN_METHOD","EIP6963_ANNOUNCE_EVENT","EIP6963_REQUEST_EVENT","VERSION","PresetsUtil","ConnectorExplorerIds","EIP155NetworkImageIds","ConnectorImageIds","ConnectorNamesMap","ConnectorTypesMap","WalletConnectRpcChainIds","HelpersUtil","caipNetworkIdToNumber","caipnetworkId","getCaipTokens","caipTokens","getCaipDefaultChain","Web3Modal","initPromise","getCaipNetwork","setSIWENonce","setSIWESession","setSIWEStatus","setSIWEMessage","initControllers","initOrContinue","getThemeMode","getThemeVariables","syncTheme","subscribeTheme","subscribeState","subscribeEvents","subscribeSIWEState","networkControllerClient","defaultChain","_sdkVersion","connectionControllerClient","siweControllerClient","siweClient","insertAdjacentElement","siweConfig","w3mOptions","walletChoice","namespaces","nsMethods","nsChains","onUri","setEip6963Wallet","eip6963Connectors","signOutOnDisconnect","hasSyncedConnectedAccount","syncRequestedNetworks","syncConnectors","syncEmailConnector","listenEIP6963Connector","listenEmailConnector","syncAccount","syncNetwork","chainImages","syncProfile","syncBalance","w3mConnectors","eip6963EventHandler","isLoginEmailUsed","_EIP6963Connector_defaultProvider","_EIP6963Connector_eip6963Wallet","connectedRdnsKey","EIP6963Connector","eip6963Wallet","connectedEIP6963Rdns","CoinbaseWalletConnector","reloadOnDisconnect","CoinbaseWalletSDK","walletExtensionChainId","walletExtension","chain2","jsonRpcUrl","makeWeb3Provider","createWalletClient","ht","Et","vt","Nt","Ot","Ze","_initProviderPromise","_createProvider","createProvider_fn","_initProvider","initProvider_fn","_isChainsStale","isChainsStale_fn","_setupListeners","setupListeners_fn","_removeListeners","removeListeners_fn","_setRequestedChainsIds","setRequestedChainsIds_fn","_getRequestedChainsIds","getRequestedChainsIds_fn","_getNamespaceChainsIds","getNamespaceChainsIds_fn","_getNamespaceMethods","getNamespaceMethods_fn","REQUESTED_CHAINS_KEY","ADD_ETH_CHAIN_METHOD","isNewChainsStale","pairingTopic","targetChainId","isChainsStale","optionalChains","optionalChain","id2","namespaceChains","namespaceMethods","requestedChains","EthereumProvider","OPTIONAL_EVENTS","OPTIONAL_METHODS","showQrModal","qrModalOptions","relayUrl","optionalMethods","optionalEvents","rpcMap","connectorChains","onDisplayUri","chainIds","EmailConnector","RPC_URL","baseHttpUrl","enableInjected","enableCoinbase","enableEIP6963","enableEmail","enableWalletConnect","web3modal","isNumeric","mathceil","bignumberError","tooManyDigits","LOG_BASE","POWS_TEN","SQRT_BASE","MAX","bitFloor","coeffToString","intCheck","toFixedPoint","configObject","convertBase","parseNumeric","ROUNDING_MODE","TO_EXP_NEG","TO_EXP_POS","MIN_EXP","MAX_EXP","CRYPTO","MODULO_MODE","POW_PRECISION","FORMAT","alphabetHasNormalDecimalDigits","caseChanged","isNum","maxOrMin","normalise","ni","pows10","EUCLID","RANGE","pow2_53","random53bitInt","toBaseOut","baseIn","baseOut","arrL","callerIsToString","xlo","xhi","klo","khi","yc0","basePrefix","dotAfter","dotBefore","isInfinityOrNaN","whitespaceOrPlus","exponentiatedBy","isModExp","nIsBig","nIsNeg","nIsOdd","integerValue","isEqualTo","isGreaterThan","isGreaterThanOrEqualTo","isLessThan","isLessThanOrEqualTo","multipliedBy","xcL","ycL","ylo","yhi","zc","sqrtBase","shiftedBy","rep","intPart","fractionPart","intDigits","toFraction","n0","n1","isAnimationControls","isKeyframesTarget","SuppressedError","safeMin","findSpring","bounce","mass","derivative","dampingRatio","undampedFreq","exponentialDecay","calcAngularFreq","initialGuess","approximateRoot","stiffness","damping","durationKeys","physicsKeys","isSpringType","spring","isResolvedFromDuration","springOptions","derived","getSpringOptions","resolveSpring","resolveVelocity","createSpring","initialVelocity","initialDelta","undampedAngularFreq","angularFreq","dampedAngularFreq","freqForT","sinh","cosh","isBelowVelocityThreshold","isBelowDisplacementThreshold","flipTarget","needsInterpolation","_t","hueToRgb","hslaToRgba","hue","saturation","lightness","green","mixLinearColor","fromExpo","toExpo","colorTypes","rgba","hsla","getColorType","notAnimatable","mixColor","fromColorType","toColorType","fromColor","toColor","blended","getMixer","mixComplex","mixArray","numValues","blendValue","fromThis","mixObject","analyse","numNumbers","numRGB","numHSL","originStats","targetStats","mixNumber","createMixers","customMixer","mixers","mixerFactory","numMixers","mixer","easingFunction","interpolate","isClamp","inputLength","interpolator","fastInterpolate","lastInputIndex","mixerIndex","foundMixerIndex","progressInRange","slowInterpolate","defaultEasing","convertOffsetToTimes","defaultOffset","createInterpolator","modifyTarget","amplitude","ideal","loopElapsed","framesync","passTimestamp","autoplay","repeat","repeatMax","repeatType","repeatDelay","onStop","onRepeat","driverControls","interpolateFromNumber","repeatCount","computedDuration","isComplete","isForwardPlayback","animator","detectAnimationFromOptions","reverseElapsed","hasRepeatDelayElapsed","calcBezier","getSlope","kSampleStepSize","cubicBezier","mX1","mY1","mX2","mY2","sampleValues","getTForX","aX","intervalStart","currentSample","kSplineTableSize","guessForT","initialSlope","aGuessT","currentSlope","newtonRaphsonIterate","aA","aB","currentX","currentT","binarySubdivide","easingLookup","linear","easeIn","easeInOut","easeOut","circIn","circInOut","circOut","backIn","backInOut","backOut","anticipate","bounceIn","bounceInOut","bounceOut","easingDefinitionToFunction","isAnimatable","underDampedSpring","criticallyDampedSpring","linearTween","defaultTransitions","rotateZ","instantAnimationState","legacyRepeatWarning","convertTransitionToAnimationOptions","yoyo","flip","loop","isEasingArray","getPopmotionAnimationOptions","hydrateKeyframes","when","delayChildren","staggerChildren","staggerDirection","isTransitionDefined","valueKey","transitionFactory","getAnimation","valueTransition","getValueTransition","isTargetAnimatable","getZeroUnit","isOriginAnimatable","isOutOfBounds","boundaryNearest","startSpring","checkBoundary","finalTarget","potentialUnitType","delayTimer","controls","getDelayFromTransition","useIsMounted","isMounted","PresenceChild","presenceAffectsLayout","presenceChildren","newChildrenMap","childId","PresenceContext","getChildKey","exitBeforeEnter","forcedRenderCount","setForcedRenderCount","forceRender","useForceUpdate","forceRenderLayoutGroup","filteredChildren","onlyElements","childrenToRender","exiting","presentChildren","allChildren","isInitialRender","updateChildLookup","presentKeys","targetKeys","numPresent","insertionIndex","removeIndex","presentChild","usePresence","isLazyBundle","loadedRenderer","renderer","loadedFeatures","LazyContext","reducedMotion","MotionContext","useVisualElementContext","defaultPagePoint","pageX","pageY","pointFromTouch","pointType","changedTouches","pointFromMouse","extractEventInfo","wrapHandler","shouldFilterPrimaryPointer","eventHandler","isMouseEvent","MouseEvent","button","addDomEvent","useDomEvent","mouseEventNames","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","pointerenter","pointerleave","touchEventNames","getPointerEventName","onpointerdown","ontouchstart","onmousedown","addPointerEvent","usePointerEvent","createLock","globalHorizontalLock","globalVerticalLock","getGlobalLock","openHorizontal_1","openVertical_1","isDragActive","openGestureLock","PointerEvent","pointerType","isTouchEvent","presenceContext","createDefinition","featureDefinitions","hover","tap","inView","loadFeatures","projectionNodeConstructor","createHoverEvent","isNodeOrChild","parentElement","observerCallbacks","fireObserverCallback","fireAllObserverCallbacks","observeIntersection","rootInteresectionObserver","lookupRoot","rootObservers","initIntersectionObserver","thresholdNames","useIntersectionObserver","shouldObserve","isInView","hasEnteredView","onViewportEnter","onViewportLeave","useMissingIntersectionObserver","gestureAnimations","whileInView","onTap","onTapStart","onTapCancel","whileTap","hasPressListeners","isPressing","cancelPointerEndListeners","eventOptions","removePointerEndListener","checkPointerEnd","onPointerUp","onPointerCancel","whileFocus","onHoverStart","onHoverEnd","whileHover","isForcedMotionValue","makeRenderlessComponent","hook","convertBoundingBoxToBox","convertBoxToBoundingBox","transformBoxPoints","topLeft","bottomRight","scalePoint","applyPointDelta","applyAxisDelta","applyBoxDelta","applyTreeDeltas","treePath","isSharedTransition","treeLength","transformBox","translateAxis","transformAxis","axisOrigin","globalProjectionState","hasAnimatedSinceResize","hasEverUpdated","scaleCorrectors","addScaleCorrector","correctors","isIdentityScale","hasScale","hasTransform","hasTranslate","measurePageBox","viewportBox","BoundingBoxDimension","treeType","build","getBaseTarget","makeTargetAnimatable","renderInstance","readValueFromInstance","removeValueFromRenderState","sortNodePosition","scrapeMotionValuesFromProps","presenceId","blockInitialAnimation","visualState","removeFromVariantTree","renderState","lifecycles","managers","propSubscriptions","clearAllListeners","manager","updatePropListeners","propListener","createLifecycles","valueSubscriptions","prevMotionValues","baseTarget","triggerBuild","bindToMotionValue","removeOnChange","latestValue","removeOnRenderRequest","onRenderRequest","initialMotionValues","isControllingVariants","isVariantNode","variantChildren","manuallyAnimateOnMount","newInstance","addVariantChild","setProps","closestVariantNode","getClosestVariantNode","getLayoutId","getLatestValues","setVisibility","canMutate","addValue","removeValue","forEachValue","setBaseTarget","newProps","existingValue","hasAnimated","updateMotionValuesFromProps","getVariant","getVariantContext","startAtParent","context_1","numVariantProps","variantProps","positionalKeys","isPositionalKey","setAndResetVelocity","isNumOrPxType","getPosFromMatrix","getTranslateFromMatrix","pos2","pos3","_bbox","matrix3d","transformKeys","nonTranslationalTransformKeys","positionalValues","checkAndConvertChangedValueTypes","transitionEnd","targetPositionalKeys","removedTransformValues","hasAttemptedToRemoveTransformValues","changedValueTypeKeys","toType","fromType","numKeyframes","removedTransforms","removeNonTranslationalTransform","scrollY_1","convertedTarget","changedKeys","originBbox","elementComputedStyle","targetBbox","convertChangedValueTypes","scrollTo","unitConversion","hasPositionalKey","htmlConfig","domElement","defaultType","computedStyle","compareDocumentPosition","restoreTransform","mutableState","vars","transformValues","parseDomVariant","htmlVisualElement","svgVisualElement","_element","createDomVisualElement","enableHardwareAcceleration","featureNames","numFeatures","prefersReducedMotion","hasDetected","useReducedMotion","motionMediaQuery_1","setReducedMotionPreferences","initPrefersReducedMotion","useVisualElement","createVisualElement","lazyContext","reducedMotionPreference","useReducedMotionConfig","visualElementRef","animateChanges","notifyUnmount","useCreateMotionContext","inherit","getCurrentTreeVariants","variantLabelsAsDependency","VisualElementHandler","updateProps","createMotionComponent","preloadedFeatures","useRender","useVisualState","externalRef","layoutGroupId","useLayoutId","projectionId","ProjectionNodeConstructor","useProjection","useFeatures","useMotionRef","createMotionProxy","customMotionComponentConfig","componentCache","_target","CAMEL_CASE_PATTERN","camelToDash","createHtmlRenderState","copyRawValuesOnly","useStyle","useInitialMotionValues","useHTMLProps","htmlProps","draggable","WebkitUserSelect","WebkitTouchCallout","touchAction","validMotionProps","isValidMotionProp","isValidProp","shouldForward","createSvgRenderState","useSVGProps","visualProps","rawStyles","createUseRender","forwardMotionProps","filteredProps","isDom","filterProps","elementProps","makeState","createRenderState","makeLatestValues","makeUseVisualState","scrapeMotionValues","motionValues","initialAnimationIsBlocked","variantToSet","valueTarget","svgMotionConfig","getBBox","htmlMotionConfig","createDomMotionConfig","baseConfig","isCSSVariable","cssVariableRegex","getVariableValue","parseCSSVariable","resolveCSSVariables","lowercaseSVGElements","isSVGComponent","getAnimatableNone","defaultValueType","defaultValueTypes","WebkitFilter","getDefaultValueType","dimensionValueTypes","vw","findDimensionValueType","numberValueTypes","scaleZ","skew","skewX","skewY","translateX","translateY","translateZ","transformPerspective","originZ","numOctaves","testValueType","translateAlias","getValueAsType","buildHTMLStyles","hasTransformOrigin","transformIsNone","valueAsType","transformIsDefault","allowTransformNone","transformString","transformHasZ","numTransformKeys","buildTransform","buildTransformOrigin","renderHTML","newValues","transformAxes","transformProps","sortTransformProps","operationKey","axesKey","transformPropSet","isTransformProp","transformOriginProps","isTransformOriginProp","dashKeys","camelKeys","buildSVGAttrs","attrX","attrY","pathLength","pathSpacing","pathOffset","pxOriginX","pxOriginY","calcSVGTransformOrigin","useDashCase","buildSVGPath","camelCaseAttributes","renderSVG","_styleProp","shallowCompare","prevLength","animateVariant","transitionOverride","animateTarget","getChildAnimations","forwardDelay","maxStaggerDuration","generateStaggerDuration","sortByTreeOrder","notifyAnimationComplete","animateChildren","animationTypeState","shouldBlockAnimation","protectedKeys","needsAnimating","shouldBlock","variantPriorityOrder","reversePriorityOrder","numAnimationTypes","animateList","notifyAnimationStart","resolvedDefinition","animateVisualElement","createAnimationState","createTypeState","allAnimatedKeys","buildResolvedTypeValues","changedActiveType","removedKeys","encounteredKeys","removedVariantIndex","_loop_1","typeState","propIsVariant","activeDelta","isInherited","prevProp","variantDidChange","checkVariantsDidChange","shouldAnimateType","definitionList","resolvedValues","prevResolvedValues","allKeys","markToAnimate","fallbackAnimation_1","fallbackTarget","shouldAnimate","isAnimated","setAnimateFunction","makeAnimator","isZeroValueString","valueTypes","findValueType","setMotionValue","setTarget","checkTargetForNewValues","newValueKeys","numNewValues","targetValue","getOriginFromTransition","getOrigin","AnimationType","isVariantLabels","isVariantLabel","resolveVariantFromProps","currentValues","resolveVariant","getCurrent","checkIfControllingVariants","whileDrag","checkIfVariantNode","addUniqueItem","isRefObject","isCustomValue","toValue","resolveFinalValueInKeyframes","SubscriptionManager","numSubscriptions","getSize","secondsToMilliseconds","useConstant","incrementId","useId","useUnmountEffect","MotionValue","updateSubscribers","velocityUpdateSubscribers","renderSubscribers","canTrackVelocity","updateAndNotify","scheduleVelocityCheck","velocityCheck","clearListeners","passiveEffect","getPrevious","clearAnimation","isMotionValue","resolveMotionValue","unwrappedValue","defaultTimestep","getCurrentTime","onNextFrame","useDefaultElapsed","runNextFrame","isProcessing","stepsOrder","steps","toRun","toRunNextFrame","numToRun","flushNextFrame","toKeepAlive","keepAlive","addToCurrentFrame","frameData","createRenderStep","sync","startLoop","cancelSync","flushSync","processStep","stepId","processFrame","getFrameData","devAssert","formatValue","seenValues","previouslySeenValues","isJSONable","jsonValue","formatArray","getObjectTag","formatObject","formatObjectValue","Location","startToken","endToken","QueryDocumentKeys","Name","Document","OperationDefinition","VariableDefinition","Variable","SelectionSet","Argument","FragmentSpread","InlineFragment","FragmentDefinition","IntValue","FloatValue","StringValue","BooleanValue","NullValue","EnumValue","ListValue","ObjectValue","ObjectField","Directive","NamedType","ListType","NonNullType","SchemaDefinition","OperationTypeDefinition","ScalarTypeDefinition","ObjectTypeDefinition","FieldDefinition","InputValueDefinition","InterfaceTypeDefinition","UnionTypeDefinition","EnumTypeDefinition","EnumValueDefinition","InputObjectTypeDefinition","DirectiveDefinition","SchemaExtension","ScalarTypeExtension","ObjectTypeExtension","InterfaceTypeExtension","UnionTypeExtension","EnumTypeExtension","InputObjectTypeExtension","kindValues","isNode","maybeKind","OperationTypeNode","dedentBlockStringLines","lines","_firstNonEmptyLine2","commonIndent","firstNonEmptyLine","lastNonEmptyLine","_firstNonEmptyLine","leadingWhitespace","printBlockString","escapedValue","isSingleLine","forceLeadingNewLine","hasTrailingTripleQuotes","hasTrailingQuote","hasTrailingSlash","forceTrailingNewline","printAsMultipleLines","minimize","skipLeadingNewLine","isWhiteSpace","isDigit","isLetter","isNameStart","isNameContinue","Kind","LineRegExp","lastLineStart","matchAll","printLocation","printSourceLocation","sourceLocation","firstLineColumnOffset","locationOffset","lineIndex","lineOffset","lineNum","columnOffset","columnNum","locationStr","locationLine","subLineIndex","subLineColumnNum","subLines","printPrefixedLines","subLine","existingLines","padLen","GraphQLError","rawArgs","_this$nodes","_nodeLocations$","firstArg","toNormalizedOptions","undefinedIfEmpty","nodeLocations","locations","originalExtensions","formattedError","syntaxError","DirectiveLocation","TokenKind","Lexer","startOfFileToken","SOF","lastToken","lineStart","lookahead","EOF","nextToken","readNextToken","COMMENT","isUnicodeScalarValue","isSupplementaryCodePoint","isLeadingSurrogate","isTrailingSurrogate","printCodePointAt","lexer","char","createToken","bodyLength","readComment","BANG","DOLLAR","AMP","PAREN_L","PAREN_R","SPREAD","COLON","EQUALS","AT","BRACKET_L","BRACKET_R","BRACE_L","PIPE","BRACE_R","readBlockString","readString","readNumber","readName","firstCode","isFloat","readDigits","FLOAT","INT","chunkStart","STRING","escape","readEscapedUnicodeVariableWidth","readEscapedUnicodeFixedWidth","readEscapedCharacter","readHexDigit","read16BitHexCode","trailingCode","currentLine","blockLines","BLOCK_STRING","instanceOf","NODE_ENV","_value$constructor","stringifiedValue","Source","Parser","parseDocument","expectToken","parseValueLiteral","parseConstValue","parseConstValueLiteral","parseType","parseTypeReference","sourceObj","isSource","_lexer","_tokenCounter","parseName","many","parseDefinition","peek","parseOperationDefinition","peekDescription","keywordToken","parseSchemaDefinition","parseScalarTypeDefinition","parseObjectTypeDefinition","parseInterfaceTypeDefinition","parseUnionTypeDefinition","parseEnumTypeDefinition","parseInputObjectTypeDefinition","parseDirectiveDefinition","parseFragmentDefinition","parseTypeSystemExtension","unexpected","variableDefinitions","directives","selectionSet","parseSelectionSet","parseOperationType","parseVariableDefinitions","parseDirectives","operationToken","optionalMany","parseVariableDefinition","variable","parseVariable","expectOptionalToken","parseConstDirectives","selections","parseSelection","parseFragment","parseField","nameOrAlias","alias","parseArguments","isConst","parseConstArgument","parseArgument","hasTypeCondition","expectOptionalKeyword","parseFragmentName","typeCondition","parseNamedType","expectKeyword","allowLegacyFragmentVariables","parseList","parseObject","advanceLexer","parseStringLiteral","varName","parseObjectField","parseDirective","parseDescription","operationTypes","parseOperationTypeDefinition","interfaces","parseImplementsInterfaces","parseFieldsDefinition","delimitedMany","parseFieldDefinition","parseArgumentDefs","parseInputValueDef","parseUnionMemberTypes","parseEnumValuesDefinition","parseEnumValueDefinition","parseEnumValueName","getTokenDesc","parseInputFieldsDefinition","parseSchemaExtension","parseScalarTypeExtension","parseObjectTypeExtension","parseInterfaceTypeExtension","parseUnionTypeExtension","parseEnumTypeExtension","parseInputObjectTypeExtension","repeatable","parseDirectiveLocations","parseDirectiveLocation","noLocation","getTokenKindDesc","atToken","openKind","parseFn","closeKind","delimiterKind","maxTokens","isPunctuatorTokenKind","escapedRegExp","escapedReplacer","escapeSequences","BREAK","visitor","visitorKeys","enterLeaveMap","getEnterLeaveForKind","inArray","edits","ancestors","isEdited","editOffset","editKey","editValue","arrayKey","_enterLeaveMap$get","_enterLeaveMap$get2","visitFn","leave","_node$kind","kindVisitor","ast","printDocASTReducer","varDefs","argsLine","isBlockString","hasMultilineItems","maybeArray","_maybeArray$filter$jo","maybeString","_maybeArray$some","converter","defaultAttributes","expires","stringifiedAttributes","attributeName","cookie","cookies","jar","withAttributes","withConverter","reflect","litPropertyMetadata","createProperty","_$AN","_$AO","_$AM","_$AH","_$AP","_$AQ","_$AT","_$AU","reconnected","disconnected","setValue","_$Ct","_$AI","_$Ci","ct","ShadyCSS","nativeShadow","CSSStyleSheet","_$cssResult$","styleSheet","replaceSync","adoptedStyleSheets","litNonce","trustedTypes","emptyScript","reactiveElementPolyfillSupport","toAttribute","fromAttribute","_$Ei","observedAttributes","_$Eh","elementProperties","noAccessor","getPropertyDescriptor","_$Eu","finalizeStyles","_$Ep","isUpdatePending","hasUpdated","_$Em","_$Ev","_$ES","enableUpdating","_$AL","_$E_","addController","_$EO","hostConnected","removeController","createRenderRoot","attachShadow","shadowRootOptions","connectedCallback","hostDisconnected","attributeChangedCallback","_$AK","_$EC","getPropertyOptions","_$ET","_$Ej","scheduleUpdate","performUpdate","shouldUpdate","hostUpdate","_$EU","_$AE","hostUpdated","updateComplete","getUpdateComplete","ReactiveElement","reactiveElementVersions","createPolicy","createHTML","createComment","_$litType$","createTreeWalker","firstChild","replaceWith","nextNode","hasAttributes","getAttributeNames","innerHTML","_$Co","_$Cl","_$litDirective$","_$AS","_$AV","_$AD","creationScope","importNode","_$Cv","_$AA","_$AB","startNode","endNode","_$AR","_$AC","setConnected","toggleAttribute","litHtmlPolyfillSupport","litHtmlVersions","renderOptions","_$Do","renderBefore","_$litPart$","_$litElement$","litElementHydrateSupport","LitElement","litElementPolyfillSupport","litElementVersions","ATTRIBUTE","CHILD","PROPERTY","BOOLEAN_ATTRIBUTE","EVENT","ELEMENT","reverseEasing","mirrorEasing","createBackIn","acos","backEasing","createAnticipate","combineFunctions","transformers","toFromDifference","velocityPerSecond","frameDuration","alpha$1","clampRgbUnit","rgbUnit","isColorString","testProp","splitColor","aName","bName","cName","maxDefaults","applyDefaultFilter","functionRegex","colorToken","numberToken","numColors","numbers","tokenised","createTransformer","convertNumbersToZero","createUnitType","degrees","percent","progressPercentage","sanitize","floatRegex","colorRegex","singleColorRegex","OBJECT","isUndefined","mergeObjects","STR_UNDEFINED","hasWindow","stableHash","isDate","online","hasWin","hasDoc","onWindowEvent","onDocumentEvent","offWindowEvent","offDocumentEvent","isOnline","defaultConfigOptions","initFocus","initReconnect","onOnline","onOffline","IS_SERVER","rAF","navigatorConnection","slowConnection","saveData","SWRGlobalState","broadcastState","revalidate","broadcast","EVENT_REVALIDATORS","STATE_UPDATERS","FETCH","revalidators","updaters","__timestamp","getTimestamp","internalMutate","populateCache","rollbackOnError","customOptimisticData","keyInfo","MUTATION","beforeMutationTs","hasCustomOptimisticData","rollbackData","optimisticData","revalidateAllKeys","initCache","releaseFocus_1","releaseReconnect_1","onLoadingSlow","onErrorRetry","maxRetryCount","errorRetryCount","currentRetryCount","errorRetryInterval","onDiscarded","revalidateOnFocus","revalidateOnReconnect","revalidateIfStale","shouldRetryOnError","focusThrottleInterval","dedupingInterval","loadingTimeout","currentData","isPaused","mergeConfigs","f1","f2","SWRConfigContext","subscribeCallback","keyedRevalidators","WITH_DEDUPE","dedupe","extendedConfig","cacheContext","fallbackData","revalidateOnMount","refreshWhenHidden","refreshWhenOffline","fnArgs","initialMountedRef","unmountedRef","keyRef","fetcherRef","configRef","patchFetchInfo","cached","isInitialMount","shouldRevalidate","rerender","stateRef","stateDependenciesRef","shouldRerender","useStateWithDeps","stateDependencies","revalidateOpts","currentFetcher","startAt","shouldStartNewRequest","isCurrentKeyMounted","cleanupState","finishRequestAndUpdateState","mutationInfo","requestInfo","boundMutate","keyChanged","softRevalidate","nextFocusRevalidatedAt","unsubUpdate","updatedData","updatedError","updatedIsValidating","unsubEvents","execute","fallbackConfig","uses","withMiddleware","arrays","decoder","asUint8Array","BASE_MAP","LEADER","FACTOR","iFACTOR","psz","zeroes","b256","it3","it4","vch","pbegin","pend","b58","it1","it2","Encoder","baseEncode","Decoder","baseDecode","prefixCodePoint","ComposedDecoder","decoders","Codec","baseX","rfc4648","bitsPerChar","codes","written","TextDecoder","TextEncoder","base2","base8","base10","base16","base16upper","base32upper","base32pad","base32padupper","base32hex","base32hexupper","base32hexpad","base32hexpadupper","base32z","base36upper","base58flickr","base64pad","base64url","base64urlpad","alphabetBytesToChars","alphabetCharsToBytes","base256emoji","byts","byt","encode_1","oldOffset","N1","N2","N3","N4","N5","N6","N7","N8","N9","encodingLength","encodeTo","sizeOffset","digestOffset","Hasher","subtle","textEncoder","textDecoder","bases","createCodec","ascii","utf8","latin1","binary","aggregate3Signature","account_","assertRequest","chainFormat","request_","shouldPerformMulticall","scheduleMulticall","getRevertErrorData","offchainLookup","offchainLookupSignature","getNodeError","getCallError","internal_estimateFeesPerGas","block_","baseFeeMultiplier","EstimateGasExecutionError","prettyArgs","formatGwei","getEstimateGasError","internal_estimateMaxPriorityFeePerGas","defaultPriorityFee","maxPriorityFeePerGasHex","chainIdHex","getTransactionType","gasPrice_","serializedTransaction","extendFn","combined","assertCurrentChain","currentChainId","getTransactionError","walletActions","addChain","deployContract","getAddresses","getPermissions","requestAddresses","requestPermissions","message_","signTypedData","typedData","watchAsset","writeContract","defaultRetryCount","multicall3Abi","universalResolverErrors","universalResolverResolveAbi","universalResolverReverseAbi","textResolverAbi","addressResolverAbi","universalSignatureValidatorAbi","internalType","panicReasons","solidityError","solidityPanic","etherUnits","gwei","gweiUnits","weiUnits","AbiConstructorNotFoundError","AbiConstructorParamsNotFoundError","AbiDecodingDataSizeTooSmallError","includeName","AbiDecodingZeroDataError","AbiEncodingArrayLengthMismatchError","expectedLength","givenLength","AbiEncodingBytesSizeMismatchError","expectedSize","AbiEncodingLengthMismatchError","AbiErrorSignatureNotFoundError","AbiEventSignatureEmptyTopicsError","AbiEventSignatureNotFoundError","AbiEventNotFoundError","AbiFunctionNotFoundError","AbiFunctionOutputsNotFoundError","AbiItemAmbiguityError","BytesSizeMismatchError","givenSize","DecodeLogDataMismatch","DecodeLogTopicsMismatch","InvalidAbiEncodingTypeError","InvalidAbiDecodingTypeError","InvalidArrayError","InvalidDefinitionTypeError","AccountNotFoundError","docsSlug","InvalidAddressError","BaseError","BlockNotFoundError","identifier","ChainDoesNotSupportContract","ChainMismatchError","ChainNotFoundError","ClientChainNotConfiguredError","formatAbiItemWithArgs","includeFunctionName","CallExecutionError","ContractFunctionExecutionError","formattedArgs","functionWithParams","ContractFunctionRevertedError","errorWithParams","ContractFunctionZeroDataError","RawContractError","SliceOffsetOutOfBoundsError","SizeExceedsPaddingSizeError","targetSize","IntegerOutOfRangeError","InvalidHexBooleanError","SizeOverflowError","BaseFeeScalarError","Eip1559FeesNotSupportedError","MaxFeePerGasTooLowError","ExecutionRevertedError","FeeCapTooHighError","FeeCapTooLowError","NonceTooHighError","NonceTooLowError","NonceMaxValueError","InsufficientFundsError","IntrinsicGasTooHighError","IntrinsicGasTooLowError","TransactionTypeNotSupportedError","TipAboveFeeCapError","UnknownNodeError","HttpRequestError","WebSocketRequestError","RpcRequestError","TimeoutError","RpcError","ProviderRpcError","ParseRpcError","InvalidRequestRpcError","MethodNotFoundRpcError","InvalidParamsRpcError","InternalRpcError","InvalidInputRpcError","ResourceNotFoundRpcError","ResourceUnavailableRpcError","TransactionRejectedRpcError","MethodNotSupportedRpcError","LimitExceededRpcError","JsonRpcVersionUnsupportedError","UnauthorizedProviderError","UnsupportedProviderMethodError","ProviderDisconnectedError","ChainDisconnectedError","SwitchChainError","UnknownRpcError","prettyPrint","padEnd","FeeConflictError","InvalidSerializableTransactionError","TransactionExecutionError","TransactionNotFoundError","TransactionReceiptNotFoundError","WaitForTransactionReceiptTimeoutError","getVersion","decodedValues","decodeParam","decodeParams","arrayComponents","decodedChild","hasDynamicChild","dynamicChild","decodeArray","hasUnnamedChild","decodeTuple","decodeString","decodeBytes","decodeNumber","decodeAddress","decodeBool","preparedParams","prepareParam","prepareParams","encodeParams","getArrayComponents","preparedParam","encodeArray","param_","encodeTuple","encodeAddress","encodeBool","encodeNumber","paramSize","bytesSize","partsLength","staticSize","staticParams","dynamicParams","dynamicSize","formatAbiParams","formatAbiParam","isSelector","abiItems","matchedAbiItem","abiParameter","isArgOfType","ambiguousTypes","getAmbiguousTypes","argType","abiParameterType","sourceParameters","targetParameters","parameterIndex","sourceParameter","targetParameter","checksumAddress","address_","hexAddress","addressRegex","isDeterministicError","buildRequest","concatHex","concatBytes","hexOrBytes","padHex","paddedBytes","padBytes","hex_","assertStartOffset","assertEndOffset","sliceHex","sliceBytes","sliceLength","hexToBigInt","hexToBool","hexToNumber","hexToString","hexToBytes","numberToBytes","boolToBytes","stringToBytes","charCodeMap","charCodeToBase16","hexString","nibbleLeft","nibbleRight","hexes","_v","numberToHex","stringToHex","boolToHex","bytesToHex","executionRevertedError","formatBlock","totalDifficulty","extract_","formatTransaction","transaction_","typeHex","yParity","rpcTransactionType","legacy","eip2930","eip1559","formatTransactionRequest","getFunctionSignature","getEventSignature","getFunctionSelector","tupleRegex","formatAbiParameter","formatAbiParameters","abiParameters","fn_","normalizeSignature","lengths","exists","checkFinished","destroyed","outputLen","U32_MASK64","_32n","fromBig","lst","Al","rotlSH","rotlSL","rotlBH","rotlBL","u8a","SHA3_PI","SHA3_ROTL","_SHA3_IOTA","_0n","_1n","_2n","_7n","_256n","_0x71n","SHA3_IOTA_H","SHA3_IOTA_L","rotlH","rotlL","_cloneInto","blockLen","enableXOF","rounds","posOut","state32","keccak","idx1","idx0","B0","B1","Th","Tl","curH","curL","keccakP","take","writeInto","bufferOut","xofInto","xof","digestInto","hashCons","hashC","wrapConstructor","keccak_256","schedulerCache","scheduler","getScheduler","pendingPromise","setScheduler","delay_","attemptRetry","bytesRegex","integerRegex","validateTypedData","validateData","struct","type_","integerMatch","size_","bytesMatch","getTypesForEIP712Domain","integer","createSyncStoragePersister","throttleTime","trySave","persistedClient","persistClient","errorCount","restoreClient","cacheString","removeClient","isValidTimeout","timeUntilStale","staleTime","parseQueryArgs","arg1","arg2","arg3","isQueryKey","queryKey","queryFn","parseFilterArgs","matchQuery","fetchStatus","stale","queryHash","hashQueryKeyByOptions","partialMatchKey","isStale","matchMutation","mutation","fetching","mutationKey","hashQueryKey","queryKeyHashFn","partialDeepEqual","isPlainArray","aSize","bItems","bSize","equalItems","shallowEqualObjects","hasObjectPrototype","prot","sleep","scheduleMicrotask","replaceData","prevData","isDataEqual","structuralSharing","defaultLogger","notifyManager","notifyFn","batchNotifyFn","originalQueue","batchCalls","setNotifyFunction","setBatchNotifyFunction","createNotifyManager","Subscribable","onSubscribe","onUnsubscribe","focusManager","setup","onFocus","setEventListener","_this$cleanup","_this$cleanup2","focused","setFocused","isFocused","onlineEvents","onlineManager","setOnline","onLine","defaultRetryDelay","failureCount","canFetch","networkMode","revert","silent","isCancelledError","createRetryer","continueFn","promiseResolve","promiseReject","isRetryCancelled","isResolved","outerResolve","outerReject","shouldPause","continueResolve","canContinue","onPause","onContinue","promiseOrValue","_config$retry","_config$retryDelay","onFail","cancelOptions","continue","cancelRetry","continueRetry","Removable","clearGcTimeout","scheduleGc","gcTimeout","optionalRemove","updateCacheTime","newCacheTime","Query","abortSignalConsumed","initialData","hasData","initialDataUpdatedAt","dataUpdateCount","dataUpdatedAt","errorUpdateCount","errorUpdatedAt","fetchFailureCount","fetchFailureReason","fetchMeta","isInvalidated","getDefaultState","manual","setStateOptions","_this$retryer","retryer","getObserversCount","getCurrentResult","isStaleByTime","_this$retryer2","shouldFetchOnWindowFocus","refetch","cancelRefetch","_this$retryer3","shouldFetchOnReconnect","addObserver","removeObserver","invalidate","_this$options$behavio","_context$fetchOptions","_this$retryer4","getAbortController","queryFnContext","pageParam","addSignalProperty","fetchFn","_context$fetchOptions2","behavior","onFetch","revertState","_this$cache$config$on","_this$cache$config","_this$cache$config$on2","_this$cache$config2","onSettled","isFetchingOptimistic","_this$cache$config$on3","_this$cache$config3","_this$cache$config$on4","_this$cache$config4","_action$meta","_action$dataUpdatedAt","onQueryUpdate","QueryCache","queriesMap","_options$queryHash","getLogger","defaultQueryOptions","getQueryDefaults","queryInMap","findAll","mutationId","mutationCache","failureReason","_this$retryer$continu","executeMutation","_this$options$retry","mutationFn","restored","_this$mutationCache$c3","_this$mutationCache$c4","_this$options$onSucce","_this$options2","_this$mutationCache$c5","_this$mutationCache$c6","_this$options$onSettl","_this$options3","_this$mutationCache$c","_this$mutationCache$c2","_this$options$onMutat","_this$options","onMutate","_this$mutationCache$c7","_this$mutationCache$c8","_this$options$onError","_this$options4","_this$mutationCache$c9","_this$mutationCache$c10","_this$options$onSettl2","_this$options5","onMutationUpdate","MutationCache","mutations","defaultMutationOptions","getMutationDefaults","resumePausedMutations","_this$resuming","resuming","pausedMutations","infiniteQueryBehavior","_context$fetchOptions3","_context$fetchOptions4","_context$state$data","_context$state$data2","refetchPage","fetchMore","isFetchingNextPage","isFetchingPreviousPage","oldPages","pages","oldPageParams","pageParams","newPageParams","buildNewPages","fetchPage","_context$signal","_context$signal2","queryFnResult","getNextPageParam","getPreviousPageParam","QueryClient","queryCache","queryDefaults","mutationDefaults","mountCount","unsubscribeFocus","unsubscribeOnline","_this$unsubscribeFocu","_this$unsubscribeOnli","isMutating","getQueryData","_this$queryCache$find","ensureQueryData","parsedOptions","cachedData","fetchQuery","getQueriesData","queryKeyOrFilters","getQueryCache","setQueryData","functionalUpdate","defaultedOptions","setQueriesData","getQueryState","_this$queryCache$find2","removeQueries","resetQueries","refetchFilters","refetchQueries","cancelQueries","invalidateQueries","_filters$refetchType","refetchType","_options$cancelRefetc","throwOnError","prefetchQuery","fetchInfiniteQuery","prefetchInfiniteQuery","getMutationCache","getDefaultOptions","setDefaultOptions","setQueryDefaults","firstMatchingDefaults","setMutationDefaults","_defaulted","refetchOnReconnect","useErrorBoundary","defaultShouldDehydrateMutation","defaultShouldDehydrateQuery","dehydrate","dehydrateMutations","shouldDehydrateMutation","dehydrateMutation","dehydrateQueries","shouldDehydrateQuery","dehydrateQuery","cacheableEventTypes","isCacheableEventType","persistQueryClientSave","queryClient","persister","buster","dehydrateOptions","clientState","persistQueryClient","persistQueryClientUnsubscribe","hasUnsubscribed","restorePromise","hydrateOptions","expired","busted","dehydratedState","dehydratedMutation","_options$defaultOptio","_options$defaultOptio2","_ignored","dehydratedQueryState","persistQueryClientRestore","unsubscribeQueryCache","unusbscribeMutationCache","persistQueryClientSubscribe","defaultContext","QueryClientSharingContext","getQueryClientContext","contextSharing","ReactQueryClientContext","useQueryClient","QueryClientProvider","IsRestoringContext","createValue","isReset","clearReset","QueryErrorResetBoundaryContext","QueryObserver","trackedProps","selectError","bindMethods","shouldFetchOnMount","executeFetch","updateTimers","shouldFetchOn","refetchOnWindowFocus","clearStaleTimeout","clearRefetchInterval","notifyOptions","updateQuery","shouldFetchOptionally","updateResult","updateStaleTimeout","nextRefetchInterval","computeRefetchInterval","currentRefetchInterval","updateRefetchInterval","getOptimisticResult","createResult","optimisticResult","keepPreviousData","placeholderData","isPlaceholderData","shouldAssignObserverCurrentProperties","currentResult","currentResultOptions","currentResultState","trackResult","trackedResult","getCurrentQuery","fetchOptimistic","_fetchOptions$cancelR","staleTimeoutId","_this$options$refetch","refetchInterval","nextInterval","refetchIntervalId","refetchIntervalInBackground","prevResult","prevResultState","prevResultOptions","queryChange","queryInitialState","currentQueryInitialState","prevQueryResult","previousQueryResult","isPreviousData","_optimisticResults","fetchOnMount","fetchOptionally","selectFn","selectResult","isInitialLoading","isFetched","isFetchedAfterMount","isRefetching","isLoadingError","isRefetchError","nextResult","defaultNotifyOptions","notifyOnChangeProps","notifyOnChangePropsValue","includedProps","typedKey","retryOnMount","shouldLoadOnMount","refetchOnMount","queryClientContext","useConfig","useSyncExternalStore2","queryKey17","useBaseQuery","Observer","isRestoring","errorResetBoundary","onStoreChange","_useErrorBoundary","isIdle","useQuery","baseQuery","internal","useQueryClient2","usePublicClient","entity","useChainId","walletClientQuery","isPlainObject2","useSyncExternalStoreWithTracked","getServerSnapshot","isEqual","trackedKeys","previousAccountRef","previousAccount","isReconnected"],"sourceRoot":""}